Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!think.com!mintaka!snorkelwacker.mit.edu!thunder.mcrcim.mcgill.edu!mouse From: mouse@thunder.mcrcim.mcgill.edu (der Mouse) Newsgroups: comp.unix.internals Subject: Re: Arg list too big Keywords: execve shell Too big Message-ID: <1991Mar15.094911.13334@thunder.mcrcim.mcgill.edu> Date: 15 Mar 91 09:49:11 GMT References: <805@essnj1.ESSNJAY.COM> Organization: McGill Research Centre for Intelligent Machines Lines: 25 In article <805@essnj1.ESSNJAY.COM>, smitty@essnj1.ESSNJAY.COM (Hibbard T. Smith JR) writes: > ../.././util/makedepend/makedepend -s "# DO NOT DELETE #" -I../../. -I. -- *.c > sh: ../.././util/makedepend/makedepend: arg list too long > I know that the exec system calls can only pass 5120 (10240) bytes. > This argument is only *.c when passed by the exec. The exec make does, yes. On the other hand, when sh goes to exec ../.././util/makedepend/makedepend, it has to pass the whole list of filenames to it. > When is the *.c expanded? Before or after it gets to the shell? I > thought the shell did the expansion, in which case the argument list > to the shell is only *.c. Right. Make passes the whole line to sh. sh then has to expand the *.c and pass the result to makedepend. I feel certain the complaint is produced at this point. der Mouse old: mcgill-vision!mouse new: mouse@larry.mcrcim.mcgill.edu