http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47902
Summary: Bootstrap failure: libiberty/regex.c: error: two or more data types in declaration specifiers Product: gcc Version: 4.5.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap AssignedTo: unassig...@gcc.gnu.org ReportedBy: sk...@iskunk.org Host: powerpc-ibm-aix4.3.2.0 Target: powerpc-ibm-aix4.3.2.0 Build: powerpc-ibm-aix4.3.2.0 Bootstrapping on this AIX system bombs out with /tmp/gcc-4.5.2-build/./prev-gcc/xgcc -B/tmp/gcc-4.5.2-build/./prev-gcc/ -B/opt/tg/powerpc-ibm-aix4.3.2.0/bin/ -B/opt/tg/powerpc-ibm-aix4.3.2.0/bin/ -B/opt/tg/powerpc-ibm-aix4.3.2.0/lib/ -isystem /opt/tg/powerpc-ibm-aix4.3.2.0/include -isystem /opt/tg/powerpc-ibm-aix4.3.2.0/sys-include -c -DHAVE_CONFIG_H -g -O2 -I. -I/home/src/gcc-4.5.2/libiberty/../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic /home/src/gcc-4.5.2/libiberty/regex.c -o regex.o In file included from /tmp/gcc-4.5.2-build/./prev-gcc/include-fixed/sys/wait.h:49:0, from /tmp/gcc-4.5.2-build/./prev-gcc/include-fixed/stdlib.h:233, from /home/src/gcc-4.5.2/libiberty/regex.c:128: /tmp/gcc-4.5.2-build/./prev-gcc/include-fixed/sys/types.h:212:23: error: two or more data types in declaration specifiers make[3]: *** [regex.o] Error 1 make[3]: Leaving directory `/tmp/gcc-4.5.2-build/libiberty' make[2]: *** [all-stage2-libiberty] Error 2 make[2]: Leaving directory `/tmp/gcc-4.5.2-build' make[1]: *** [stage2-bubble] Error 2 make[1]: Leaving directory `/tmp/gcc-4.5.2-build' make: *** [bootstrap-lean] Error 2 The cited portion of include-fixed/sys/types.h looks like this: --------8<-------- typedef uint_t uid_t; /* user ID */ typedef uint_t gid_t; /* group ID */ typedef __ptr32 mid_t; /* module ID */ typedef int32long64_t pid_t; /* process ID */ <--- LINE 212 typedef int32long64_t tid_t; /* thread ID */ typedef char slab_t[12]; /* security label */ typedef long mtyp_t; /* ipc message type */ -------->8-------- If I change up the compiler invocation from -c to -E, that same portion looks like this: --------8<-------- typedef uint_t uid_t; typedef uint_t gid_t; typedef __ptr32 mid_t; typedef int32long64_t int; <--- HMMM typedef int32long64_t tid_t; typedef char slab_t[12]; typedef long mtyp_t; -------->8-------- Interestingly enough... > grep pid_t /tmp/gcc-4.5.2-build/libiberty/config.h #define pid_t int If I stick in an "#undef pid_t" right before the offending line, regex.c compiles successfully.