Error linking under Cygwin: fork: can't reserve memory for stack XXX, Win32 error 487

Martin Egholm Nielsen martin@egholm-nielsen.dk
Thu Mar 3 19:40:00 GMT 2005


Hi,

>>>>However, as my application is growing in size (number of .o files) I
>>>>suddenly get the following fault message from collect2.exe when trying
>>>>to link them all together:
>>>>
>>>>$ powerpc-405-linux-gnu-gcj --main=foo.Main *.o
>>>>C:\cygwin\opt\crosstool\powerpc-405-linux-gnu\gcc-3.4.0-glibc-2.2.5\libexec\gcc\powerpc-405-linux-gnu\3.4.0\collect2.exe
>>>>(1740): *** fork: can't reserve memory for stack 0x40000 - 0x240000,
>>>>Win32 error 487 <REPEATED>

>>>    --stack <size>                     Set size of the initial stack
>>>    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>>Hum, these options are not available in my crosscompiler:
>>$ powerpc-405-linux-gnu-gcc -v --help 2>&1 | grep stack

> You would need to add it to the CFLAGS when _building_ the crossbinutils
> linker rather than to the command line when _using_ it, so that the compiled
> crossversion of collect2 runs with a bigger stack.
>   If indeed that is the underlying problem.

I suddenly ran into another problem today (after adding some more .o 
files) - bash reported that the argument line was too long. That is, the 
expansion of "*.o" was too large. Hence, I created a shell script that 
renamed all the .o files into incremental filenames: 1.o, 2.o, etc.
Then suddenly both problems vanished...
Weird?
Maybe the first problem was related to the fact that I almost ran into 
the "*.o" expansion-boundary?

BR,
  Martin


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/



More information about the Cygwin mailing list