This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libgcj/28190] New: [4.2 Regression] libjava bootstrap failure on IRIX 6.5: stdint.h misdetection


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]