rm -f collect2.exe gcc -DCROSS_COMPILE -DIN_GCC -g -O2 -DHAVE_CONFIG_H -o collect2.exe collect2.o tlink.o hash.o intl.o underscore.o version.o obstack.o -ladvapi32 ../libiberty/libiberty.a collect2.o: In function `handler': C:\MinGW\msys.0\src\gcc-2.95.3\gcc/collect2.c:527: undefined reference to `kill' collect2.o: In function `scan_prog_file': C:\MinGW\msys.0\src\gcc-2.95.3\gcc/collect2.c:2269: undefined reference to `pipe' C:\MinGW\msys.0\src\gcc-2.95.3\gcc/collect2.c:2292: undefined reference to `fork' collect2: ld returned 1 exit status make[1]: *** [collect2.exe] Error 1 make[1]: Leaving directory `/usr/src/gcc-2.95.3/gcc' make: *** [all-gcc] Error 2
Ugh, isn’t that annoying? Well it turns out from the mailing list…
The mingw32-hosted GCCs does not need ‘collect2.exe’ hence
set USE_COLLECT2= nothing (empty) in the <gcc_obj_dir>/gcc/Makefile
This needs to be fixed in GCC mainlne.
Regards.
Nitin.
And the other half….
fixincl.c:316: error: `SIGQUIT' undeclared (first use in this function) fixincl.c:316: error: (Each undeclared identifier is reported only once fixincl.c:316: error: for each function it appears in.) fixincl.c:323: error: `SIGALRM' undeclared (first use in this function) fixincl.c: In function `internal_fix': fixincl.c:808: warning: implicit declaration of function `pipe' fixincl.c:816: warning: implicit declaration of function `fork' fixincl.c:845: warning: implicit declaration of function `sleep' fixincl.c:860: warning: implicit declaration of function `fcntl' fixincl.c:860: error: `F_DUPFD' undeclared (first use in this function
Which is fixed by changing
STMP_FIXINC = stmp-fixinc
into
STMP_FIXINC =
Oops!