[distcc] execvp problem

Corrado Giacomini Corrado.Giacomini at trema.com
Fri Oct 25 07:48:00 GMT 2002


Hi all,

I am using distcc to distribute the compilation of a large software 
application,
the local machine is a spars-sun-solaris2.7 machine.

The problem I am facing is that at the exec.c/dcc_execvp(char **argv) 
fails returning
E2BIG error Arg list to long while is linking all the objects files into 
a shared library.

I arranged to figure out how big is the argument list I am passing to 
the execvp system
call and I have found that is 4834 bytes in size.
I have tried to minimized my environment settings but I have got the 
same problem.

The limts.h on my Sun machine (which boot 32bit) is setting  MAX_ARGS as 
follow

#define _ARG_MAX32      1048320 /* max length of args to exec 32-bit 
program */
#define _ARG_MAX64      2096640 /* max length of args to exec 64-bit 
program */
#define ARG_MAX         _ARG_MAX64      /* max length of arguments to 
exec */
#define ARG_MAX         _ARG_MAX32      /* max length of arguments to 
exec */
#define _POSIX_ARG_MAX  4096


It seams that the POSIX ARGV is taken into account because.

My question are:

How I can figure out which of the above limits are effectively set on my 
system ?

would be feasible to rewrite the function mentioned above in order to 
use, just for example
the system call system() ?

-Corrado











More information about the distcc mailing list