Ian Lance Taylor <[EMAIL PROTECTED]> writes:

|> I'm still surprised by something here.  The error message which
|> H.J. cites is from libiberty/pexecute.c.  That means that the exec
|> which should start the shell script is failing.  The case is precisely
|> identical from the point of view of gcc, and the shell script is never
|> actually executed.  That means that somewhere inside the kernel, when
|> it tries to execute the shell script, it is running out of memory.
|> 
|> Executing a shell script does use a bit more memory, but only just
|> enough for "/bin/sh" and the name of the script to execute.  If that
|> is pushing H.J. over the memory limit, then he must have been
|> extremely close to that limit to start with.

It's not only this but also some additional --rpath options, which can
carry along long file names.  Those are only passed when the lt-ld-new
binary is linked, which could account for the push beyond the limit.

|> For that matter, I actually didn't think that the Linux kernel had an
|> argument size limit.

It has.  It is defined by MAX_ARG_PAGES (== 32, ie. 128kB w/4KB pages).
And remember that this includes the environment as well.

Andreas.

-- 
Andreas Schwab                                  "And now for something
SuSE Labs                                        completely different."
[EMAIL PROTECTED]
SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg

Reply via email to