Bug 29509 - gcj MetalLookAndFeel.java causes gcj to SIGILL on PPC Linux
Summary: gcj MetalLookAndFeel.java causes gcj to SIGILL on PPC Linux
Status: RESOLVED WORKSFORME
Alias: None
Product: gcc
Classification: Unclassified
Component: bootstrap (show other bugs)
Version: 4.1.1
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-10-18 21:41 UTC by Bill Trost
Modified: 2007-01-28 23:35 UTC (History)
2 users (show)

See Also:
Host: ppc-redhat-linux
Target: ppc-redhat-linux
Build: ppc-redhat-linux
Known to work:
Known to fail:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bill Trost 2006-10-18 21:41:14 UTC
Attached is the "make" output. I haven't had any luck getting a core dump -- "ulimit -c 0" can't be changed, no matter what I try. Any suggestions welcome.

/eng/users/billt/gcc-4.1.1/host-powerpc-unknown-linux-gnu/gcc/gcj -B/eng/users/billt/gcc-4.1.1/powerpc-unknown-linux-gnu/nof/libjava/ -B/eng/users/billt/gcc-4.1.1/host-powerpc-unknown-linux-gnu/gcc/ -Wno-deprecated --encoding=UTF-8 --bootclasspath '' --classpath ..:/eng/users/billt/gcc-4.1.1/libjava:/eng/users/billt/gcc-4.1.1/powerpc-unknown-linux-gnu/nof/libjava:../../../../.././libjava/classpath:../../../../.././libjava/classpath/external/w3c_dom:../../../../.././libjava/classpath/external/sax:.: -C -d . -MD -MF lists/javax-swing-plaf.deps -MT lists/javax-swing-plaf.stamp -MP @lists/javax-swing-plaf.list
../../../../.././libjava/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java: In class 'javax.swing.plaf.metal.MetalLookAndFeel':
../../../../.././libjava/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java: In method 'javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(javax.swing.UIDefaults)':
../../../../.././libjava/classpath/javax/swing/plaf/metal/MetalLookAndFeel.java:775: internal compiler error: Illegal instruction
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.
make[7]: *** [lists/javax-swing-plaf.stamp] Error 1
make[7]: Leaving directory `/eng/users/billt/gcc-4.1.1/powerpc-unknown-linux-gnu/nof/libjava/classpath/lib'
make[6]: *** [compile-classes] Error 2
make[6]: Leaving directory `/eng/users/billt/gcc-4.1.1/powerpc-unknown-linux-gnu/nof/libjava/classpath/lib'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/eng/users/billt/gcc-4.1.1/powerpc-unknown-linux-gnu/nof/libjava/classpath'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/eng/users/billt/gcc-4.1.1/powerpc-unknown-linux-gnu/nof/libjava'
make[3]: *** [multi-do] Error 1
make[3]: Leaving directory `/eng/users/billt/gcc-4.1.1/powerpc-unknown-linux-gnu/libjava'
make[2]: *** [all-multi] Error 2
make[2]: Leaving directory `/eng/users/billt/gcc-4.1.1/powerpc-unknown-linux-gnu/libjava'
make[1]: *** [all-target-libjava] Error 2
make[1]: Leaving directory `/eng/users/billt/gcc-4.1.1'
make: *** [all] Error 2
$ gcc -v
Reading specs from /usr/lib/gcc-lib/ppc-redhat-linux/2.95.3/specs
gcc version 2.95.3 20010315 (release)
Comment 1 Andrew Pinski 2006-10-18 21:44:15 UTC
Can you try building with "make bootstrap" instead of make?
If that works, then 2.95.3 has a bug which is miscompiling 4.1.1.
Comment 2 Bill Trost 2006-10-19 17:01:15 UTC
"make bootstrap" produces a different error; I'll try building just the C compiler next (even if gcj is what I'm really after).

/tmp/gcc-4.1.1/820/./gcc/xgcc -shared-libgcc -B/tmp/gcc-4.1.1/820/./gcc -nostdinc++ -L/tmp/gcc-4.1.1/820/powerpc-unknown-linux-gnu/nof/libstdc++-v3/src -L/tmp/gcc-4.1.1/820/powerpc-unknown-linux-gnu/nof/libstdc++-v3/src/.libs -B/usr/local/gcc411/powerpc-unknown-linux-gnu/bin/ -B/usr/local/gcc411/powerpc-unknown-linux-gnu/lib/ -isystem /usr/local/gcc411/powerpc-unknown-linux-gnu/include -isystem /usr/local/gcc411/powerpc-unknown-linux-gnu/sys-include -msoft-float -fPIC -mstrict-align -DHAVE_CONFIG_H -I. -I../../../../libjava -I./include -I./gcj -I../../../../libjava -Iinclude -I../../../../libjava/include -I../../../../libjava/classpath/include -I../../../../libjava/classpath/native/fdlibm -I../../../../libjava/../boehm-gc/include -I../boehm-gc/include -I../../../../libjava/libltdl -I../../../../libjava/libltdl -I../../../../libjava/.././libjava/../gcc -I../../../../libjava/../zlib -I../../../../libjava/../libffi/include -I../libffi/include -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers -Wswitch-enum -D_FILE_OFFSET_BITS=64 -Wextra -Wall -D_GNU_SOURCE -DPREFIX=\"/usr/local/gcc411\" -DLIBDIR=\"/usr/local/gcc411/lib\" -DJAVA_HOME=\"/usr/local/gcc411\" -DBOOT_CLASS_PATH=\"/usr/local/gcc411/share/java/libgcj-4.1.1.jar\" -DJAVA_EXT_DIRS=\"/usr/local/gcc411/share/java/ext\" -DGCJ_ENDORSED_DIRS=\"/usr/local/gcc411/share/java/gcj-endorsed\" -DLIBGCJ_DEFAULT_DATABASE=\"/usr/local/gcc411/lib/nof/gcj-4.1.1/classmap.db\" -DLIBGCJ_DEFAULT_DATABASE_PATH_TAIL=\"gcj-4.1.1/classmap.db\" -DTOOLEXECLIBDIR=\"/usr/local/gcc411/lib/nof\" -g -O2 -D_GNU_SOURCE -msoft-float -fPIC -mstrict-align -MT interpret.lo -MD -MP -MF .deps/interpret.Tpo -c ../../../../libjava/interpret.cc  -fPIC -DPIC -o .libs/interpret.o
../../../../libjava/java/lang/Class.h: In member function 'java::lang::Class* java::lang::Class::getComponentType()':
../../../../libjava/java/lang/Class.h:354: warning: dereferencing type-punned pointer will break strict-aliasing rules
../../../../libjava/interpret.cc: In static member function 'static void _Jv_InterpMethod::run(void*, ffi_raw*, _Jv_InterpMethod*)':
../../../../libjava/interpret.cc:808: warning: dereferencing type-punned pointer will break strict-aliasing rules
/tmp/ccr05ku5.s: Assembler messages:
/tmp/ccr05ku5.s:27467: Error: bignum invalid
make[6]: *** [interpret.lo] Error 1
make[6]: Leaving directory `/tmp/gcc-4.1.1/820/powerpc-unknown-linux-gnu/nof/libjava'
Comment 3 Andrew Pinski 2006-10-19 17:14:00 UTC
(In reply to comment #2)
> "make bootstrap" produces a different error; I'll try building just the C
> compiler next (even if gcj is what I'm really after).

After that finishes, you should bootstrap the compiler with the newer compiler and that might actually fix the issue.

If that does not work, try using compiling 3.3.6 first and then 4.1.1.
What is most likely happening now is 2.95.3 is miscompiling badly the newly compiled 4.1.1 so you get these errors.
Comment 4 Bill Trost 2006-10-25 16:13:46 UTC
No luck using gcc 4.1.1 as the bootstrap compiler: I used the existing compiler to build and install just the C compiler, which worked fine. "make bootstrap" failed to build gcj using 4.1.1 as the C compiler. I then built and installed the 4.1.1 versions of C and C++, and used *those* to "make bootstrap", but still end up crashing when using "make bootstrap" build gcj (as well as the C and C++ compilers):

make[7]: Entering directory `/tmp/gcc-4.1.1/820/powerpc-unknown-linux-gnu/nof/libjava/classpath/lib'
true
top_builddir=.. top_srcdir=../../../../../../libjava/classpath /bin/sh ./gen-classlist.sh standard
Adding java source files from srcdir '../../../../../../libjava/classpath'.
Adding java source files from VM directory /tmp/gcc-4.1.1/libjava
Adding java source files from VM directory /tmp/gcc-4.1.1/820/powerpc-unknown-linux-gnu/nof/libjava
Adding generated files in builddir '..'.
make -f ../../../../../../libjava/classpath/lib/Makefile.gcj \
  GCJ='/tmp/gcc-4.1.1/820/gcc/gcj -B/tmp/gcc-4.1.1/820/powerpc-unknown-linux-gnu/nof/libjava/ -B/tmp/gcc-4.1.1/820/gcc/' \
  compile_classpath='..:/tmp/gcc-4.1.1/libjava:/tmp/gcc-4.1.1/820/powerpc-unknown-linux-gnu/nof/libjava:../../../../../../libjava/classpath:../../../../../../libjava/classpath/external/w3c_dom:../../../../../../libjava/classpath/external/sax:.:' \
  top_srcdir=../../../../../../libjava/classpath
make[7]: *** [compile-classes] Illegal instruction
make[7]: Leaving directory `/tmp/gcc-4.1.1/820/powerpc-unknown-linux-gnu/nof/libjava/classpath/lib'
Comment 5 Andrew Pinski 2007-01-28 23:35:11 UTC
make[7]: *** [compile-classes] Illegal instruction

At this point I am going to consider this a problem in the hardware you are using as one, this works for me with the trunk and also the 4.1 branch on good known hardware.

So closing as works for me.