Bootstrapping on AIX 4.2.1 (yeah, I know it's old) fails because of some missing declarations (FILHDR and SYMENT, they're in filehdr.h syms.h respectively). I got it to build by adding those includes to gcc/collect2.c (I'll attach the trivial patch, it's probably not the right thing but it works for me). $ /home/dtucker/gcc-3.4.0/configure --enable-languages=c --disable-nls --with-included-gettext --enable-threads=aix && make bootstrap [snip build] gcc -g -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long -DHAVE_CONFIG_H -I. -I. -I/home/dtucker/gcc-3.4.0/gcc -I/home/dtucker/gcc-3.4.0/gcc/. -I/home/dtucker/gcc-3.4.0/gcc/../include \ -DTARGET_MACHINE=\"powerpc-ibm-aix4.2.1.0\" \ -c /home/dtucker/gcc-3.4.0/gcc/collect2.c -o collect2.o In file included from /home/dtucker/gcc-3.4.0/gcc/collect2.c:102: /usr/include/ldfcn.h:50: error: parse error before "FILHDR" /usr/include/ldfcn.h:52: error: parse error before '}' token /home/dtucker/gcc-3.4.0/gcc/collect2.c:2645: error: parse error before "SYMENT" /home/dtucker/gcc-3.4.0/gcc/collect2.c:2645: warning: function declaration isn't a prototype /home/dtucker/gcc-3.4.0/gcc/collect2.c: In function `scan_prog_file': /home/dtucker/gcc-3.4.0/gcc/collect2.c:2684: error: dereferencing pointer to incomplete type /home/dtucker/gcc-3.4.0/gcc/collect2.c:2684: error: `U802WRMAGIC' undeclared (first use in this function) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2684: error: (Each undeclared identifier is reported only once /home/dtucker/gcc-3.4.0/gcc/collect2.c:2684: error: for each function it appears in.) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2684: error: dereferencing pointer to incomplete type /home/dtucker/gcc-3.4.0/gcc/collect2.c:2684: error: `U802ROMAGIC' undeclared (first use in this function) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2684: error: dereferencing pointer to incomplete type /home/dtucker/gcc-3.4.0/gcc/collect2.c:2684: error: `U802TOCMAGIC' undeclared (first use in this function) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2684: error: dereferencing pointer to incomplete type /home/dtucker/gcc-3.4.0/gcc/collect2.c:2684: error: dereferencing pointer to incomplete type /home/dtucker/gcc-3.4.0/gcc/collect2.c:2684: error: dereferencing pointer to incomplete type /home/dtucker/gcc-3.4.0/gcc/collect2.c:2687: error: dereferencing pointer to incomplete type /home/dtucker/gcc-3.4.0/gcc/collect2.c:2687: error: dereferencing pointer to incomplete type /home/dtucker/gcc-3.4.0/gcc/collect2.c:2689: error: dereferencing pointer to incomplete type /home/dtucker/gcc-3.4.0/gcc/collect2.c:2694: error: dereferencing pointer to incomplete type /home/dtucker/gcc-3.4.0/gcc/collect2.c:2694: error: `F_SHROBJ' undeclared (first use in this function) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2699: error: `SYMENT' undeclared (first use in this function) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2699: error: parse error before "symbol" /home/dtucker/gcc-3.4.0/gcc/collect2.c:2701: warning: implicit declaration of function `ldtbread' /home/dtucker/gcc-3.4.0/gcc/collect2.c:2701: error: `symbol' undeclared (first use in this function) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2705: error: `C_EXT' undeclared (first use in this function) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2705: error: `N_UNDEF' undeclared (first use in this function) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2705: error: `N_TMASK' undeclared (first use in this function) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2705: error: `DT_NON' undeclared (first use in this function) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2705: error: `N_BTSHFT' undeclared (first use in this function) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2705: error: `DT_FCN' undeclared (first use in this function) /home/dtucker/gcc-3.4.0/gcc/collect2.c:2799: error: dereferencing pointer to incomplete type /home/dtucker/gcc-3.4.0/gcc/collect2.c:2810: warning: implicit declaration of function `ldclose'
Created attachment 6196 [details] Add includes for filehdr.h and syms.h
collect2.c includes a.out.h for OBJECT_FORMAT_COFF. I no longer have access to AIX 4.2.1, but current AIX /usr/include/a.out.h includes xcoff.h, which includes filehdr.h and syms.h.
this is still broken in both gcc 3.4.5 and gcc 4.0.2 on aix 4.2.1 (well, it is marked as wontfix, thus it was to be expected)