Since at least 20060503, libjava fails to bootstrap on IRIX 6.5.28: /vol/gccsrc/obj/gcc-4.2.0-20060616/6.5-gcc-java/./gcc/xgcc -shared-libgcc -B/vol/gccsrc/obj/gcc-4.2.0-20060616/6.5-gcc-java/./gcc -nostdinc++ -L/vol/gccsrc/obj/gcc-4.2.0-20060616/6.5-gcc-java/mips-sgi-irix6.5/32/libstdc++-v3/src -L/vol/gccsrc/obj/gcc-4.2.0-20060616/6.5-gcc-java/mips-sgi-irix6.5/32/libstdc++-v3/src/.libs -B/vol/gcc/mips-sgi-irix6.5/bin/ -B/vol/gcc/mips-sgi-irix6.5/lib/ -isystem /vol/gcc/mips-sgi-irix6.5/include -isystem /vol/gcc/mips-sgi-irix6.5/sys-include -mabi=32 -DHAVE_CONFIG_H -I. -I/vol/gcc/src/gcc-dist/libjava -I./include -I./gcj -I/vol/gcc/src/gcc-dist/libjava -Iinclude -I/vol/gcc/src/gcc-dist/libjava/include -I/vol/gcc/src/gcc-dist/libjava/classpath/include -Iclasspath/include -I/vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm -I/vol/gcc/src/gcc-dist/libjava/../boehm-gc/include -I../boehm-gc/include -I/vol/gcc/src/gcc-dist/libjava/libltdl -I/vol/gcc/src/gcc-dist/libjava/libltdl -I/vol/gcc/src/gcc-dist/libjava/.././libjava/../gcc -I/vol/gcc/src/g! cc-dist/libjava/../zlib -I/vol/gcc/src/gcc-dist/libjava/../libffi/include -I../libffi/include -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers -Wswitch-enum -D_FILE_OFFSET_BITS=64 -I/vol/X11/include -Wextra -Wall -D_GNU_SOURCE "-DPREFIX=\"/vol/gcc\"" "-DLIBDIR=\"/vol/gcc/lib\"" "-DJAVA_HOME=\"/vol/gcc\"" "-DBOOT_CLASS_PATH=\"/vol/gcc/share/java/libgcj-4.2.0.jar\"" "-DJAVA_EXT_DIRS=\"/vol/gcc/share/java/ext\"" "-DGCJ_ENDORSED_DIRS=\"/vol/gcc/share/java/gcj-endorsed\"" "-DGCJ_VERSIONED_LIBDIR=\"/vol/gcc/lib/gcj-4.2.0\"" "-DPATH_SEPARATOR=\":\"" "-DLIBGCJ_DEFAULT_DATABASE=\"/vol/gcc/lib/../lib/gcj-4.2.0/classmap.db\"" "-DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL=\"gcj-4.2.0/classmap.db\"" "-DTOOLEXECLIBDIR=\"/vol/gcc/lib/../lib\"" -g -O2 -mabi=32 -MT java/lang/natDouble.lo -MD -MP -MF java/lang/.deps/natDouble.Tpo -c /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc -DPIC -o java/lang/.libs/natDouble.o In file included from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: classpath/include/config-int.h:327:1: warning: "INT8_MIN" redefined In file included from /usr/include/inttypes.h:242, from classpath/include/config-int.h:23, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: /usr/include/stdint.h:64:1: warning: this is the location of the previous definition In file included from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: classpath/include/config-int.h:328:1: warning: "INT16_MIN" redefined In file included from /usr/include/inttypes.h:242, from classpath/include/config-int.h:23, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: /usr/include/stdint.h:65:1: warning: this is the location of the previous definition In file included from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: classpath/include/config-int.h:329:1: warning: "INT32_MIN" redefined In file included from /usr/include/inttypes.h:242, from classpath/include/config-int.h:23, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: /usr/include/stdint.h:66:1: warning: this is the location of the previous definition In file included from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: classpath/include/config-int.h:330:1: warning: "INT64_MIN" redefined In file included from /usr/include/inttypes.h:242, from classpath/include/config-int.h:23, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: /usr/include/stdint.h:67:1: warning: this is the location of the previous definition In file included from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: classpath/include/config-int.h:332:1: warning: "INT8_MAX" redefined In file included from /usr/include/inttypes.h:242, from classpath/include/config-int.h:23, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: /usr/include/stdint.h:69:1: warning: this is the location of the previous definition In file included from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: classpath/include/config-int.h:333:1: warning: "INT16_MAX" redefined In file included from /usr/include/inttypes.h:242, from classpath/include/config-int.h:23, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: /usr/include/stdint.h:70:1: warning: this is the location of the previous definition In file included from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: classpath/include/config-int.h:334:1: warning: "INT32_MAX" redefined In file included from /usr/include/inttypes.h:242, from classpath/include/config-int.h:23, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: /usr/include/stdint.h:71:1: warning: this is the location of the previous definition In file included from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: classpath/include/config-int.h:335:1: warning: "INT64_MAX" redefined In file included from /usr/include/inttypes.h:242, from classpath/include/config-int.h:23, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: /usr/include/stdint.h:72:1: warning: this is the location of the previous definition In file included from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: classpath/include/config-int.h:338:1: warning: "UINT8_MAX" redefined In file included from /usr/include/inttypes.h:242, from classpath/include/config-int.h:23, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: /usr/include/stdint.h:74:1: warning: this is the location of the previous definition In file included from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: classpath/include/config-int.h:339:1: warning: "UINT16_MAX" redefined In file included from /usr/include/inttypes.h:242, from classpath/include/config-int.h:23, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: /usr/include/stdint.h:75:1: warning: this is the location of the previous definition In file included from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: classpath/include/config-int.h:340:1: warning: "UINT32_MAX" redefined In file included from /usr/include/inttypes.h:242, from classpath/include/config-int.h:23, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: /usr/include/stdint.h:76:1: warning: this is the location of the previous definition In file included from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: classpath/include/config-int.h:341:1: warning: "UINT64_MAX" redefined In file included from /usr/include/inttypes.h:242, from classpath/include/config-int.h:23, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/mprec.h:33, from /vol/gcc/src/gcc-dist/libjava/classpath/native/fdlibm/fdlibm.h:29, from /vol/gcc/src/gcc-dist/libjava/java/lang/natDouble.cc:26: /usr/include/stdint.h:77:1: warning: this is the location of the previous definition classpath/include/config-int.h:241: error: conflicting declaration 'typedef int int_fast16_t' /usr/include/stdint.h:55: error: 'int_fast16_t' has a previous declaration as 'typedef short int int_fast16_t' classpath/include/config-int.h:248: error: conflicting declaration 'typedef unsigned int uint_fast16_t' /usr/include/stdint.h:56: error: 'uint_fast16_t' has a previous declaration as 'typedef short unsigned int uint_fast16_t' make[5]: *** [java/lang/natDouble.lo] Error 1 make[5]: *** Waiting for unfinished jobs....
It turns out that this happens for the following reason: the invokation of AX_CREATE_STDINT_H in libjava/classpath/configure.ac (from libjava/classpath/m4/ax_create_stdint_h.m4, unmodified from upstream http://cvs.sourceforge.net/viewcvs.py/ac-archive/ac-archive-5/guidod/) is run with CFLAGS etc. explicitly cleared. Since the IRIX 6.5 stdint.h contains this code: #ifndef __c99 #error This header file is to be used only for c99 mode compilations #else this test tails to detect int_least32_t in <stdint.h>. Later, natDouble.cc is compiled by g++ (which defines __c99 on IRIX), so the definitions from stdint.h are visible and produce both the redefinition warnings and the errors about conflicting typedefs. Environment: System: IRIX64 columba 6.5 07010238 IP27 host: mips-sgi-irix6.5 build: mips-sgi-irix6.5 target: mips-sgi-irix6.5 configured with: /vol/gcc/src/gcc-dist/configure --prefix=/vol/gcc --with-local-prefix=/vol/gcc --disable-nls --with-gnu-as --with-as=/vol/gcc/lib/gas-2.16.1 --enable-libgcj --with-gmp-dir=/vol/gnu/obj/gmp-4.1.3 --with-mpfr-dir=/vol/gnu/obj/gmp-4.1.3/mpfr --enable-languages=c,c++,fortran,java,objc,ada --disable-libmudflap How-To-Repeat: Bootstrap mainline as described above. ------- Comment #1 from ro at techfak dot uni-bielefeld dot de 2006-06-28 15:32 ------- Fix: If the configure test is run with -std=c99, it correctly detects that the IRIX 6.5 <stdint.h> is usable. Unfortunately, I've not yet found the proper way to both change the AX_CREATE_STDINT_H definition (best coordinated with upstream, should perhaps use the new Autoconf 2.60 AC_PROG_CC_C99 macro?) so the configure test yields correct results, and (with the hack of hardcoding CFLAGS=-std=c99 in the test) how to properly pass down -std=c99 on IRIX 6.5 everywhere it is needed. -- Summary: [4.2 Regression] libjava bootstrap failure on IRIX 6.5: stdint.h misdetection Product: gcc Version: unknown Status: UNCONFIRMED Severity: critical Priority: P2 Component: libgcj AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ro at techfak dot uni-bielefeld dot de GCC build triplet: mips-sgi-irix6.5 GCC host triplet: mips-sgi-irix6.5 GCC target triplet: mips-sgi-irix6.5 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28190