[Bug bootstrap/47902] New: Bootstrap failure: libiberty/regex.c: error: two or more data types in declaration specifiers

skunk at iskunk dot org gcc-bugzilla@gcc.gnu.org
Sat Feb 26 09:18:00 GMT 2011


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: unassigned@gcc.gnu.org
        ReportedBy: skunk@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.



More information about the Gcc-bugs mailing list