[Bug libgcj/57074] New: gcc-4.8.0 libgcj regression on 32bit Power architecture
rsa at us dot ibm.com
gcc-bugzilla@gcc.gnu.org
Thu Apr 25 19:46:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57074
Bug #: 57074
Summary: gcc-4.8.0 libgcj regression on 32bit Power
architecture
Classification: Unclassified
Product: gcc
Version: 4.8.1
Status: UNCONFIRMED
Severity: critical
Priority: P3
Component: libgcj
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: rsa@us.ibm.com
GCC Revision 186687 has been identified as causing a regression in PowerC
32-bit libgcj:
http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=186687
I've verified that this fails with upstream GCC:
ryanarn@bns:~> /home/bergner/gcc/install/gcc-fsf-4_8-java32/bin//gkeytool
-import -alias `basename 99.pem .pem` -keystore cacerts -storepass '' -file
99.pem
Exception in thread "main" java.lang.NoClassDefFoundError:
gnu.classpath.tools.keytool.Main
at java.lang.Class.initializeClass(libgcj.so.14)
Caused by: java.lang.IllegalMonitorStateException: current thread not owner
at java.lang.Object.notifyAll(libgcj.so.14)
at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.14)
at java.lang.ClassLoader.loadClass(libgcj.so.14)
at java.lang.ClassLoader.loadClass(libgcj.so.14)
at java.lang.Class.initializeClass(libgcj.so.14)
If this wasn't failing it would be reporting:
ryanarn@bns:~> ryanarn@bns:~>
/home/bergner/gcc/install/gcc-fsf-4_8-java/bin/gkeytool -import -alias
`basename 99.pem .pem` -keystore cacerts -storepass '' -file 99.pem
keytool error: java.security.InvalidParameterException: File object [99.pem]
MUST be an existing readable file
/home/bergner/gcc/install/gcc-fsf-4_8-java/bin/gkeytool -import -alias
`basename 99.pem .pem` -keystore cacerts -storepass '' -file 99.pem
keytool error: java.security.InvalidParameterException: File object [99.pem]
MUST be an existing readable file
I'm able to trap on the catch, but trying to capture the throw or identify the
state of the GCJ locking mechanisms when the problem happens has proven
problematic. Turning on logging and lock debugging might help, but there's a
lot going on in the state initialization. Here's a back trace:
Breakpoint 8, _Jv_Linker::wait_for_state (klass=klass@entry=0x10020018
<gnu::classpath::tools::keytool::Main::class$>,
state=state@entry=9) at ../../../libjava/link.cc:2086
2086 throw exc;
$8 = "In the wait_for_state catch."
klass: 0x10020018
(gdb) bt
#0 _Jv_Linker::wait_for_state (klass=klass@entry=0x10020018
<gnu::classpath::tools::keytool::Main::class$>, state=state@entry=9)
at ../../../libjava/link.cc:2086
#1 0x0e2c2aec in java::lang::Class::initializeClass (this=0x10020018
<gnu::classpath::tools::keytool::Main::class$>)
at ../../../libjava/java/lang/natClass.cc:728
#2 0x0e2c39b4 in _Jv_InitClass (klass=<optimized out>) at
../../../libjava/java/lang/Class.h:742
#3 0x0fe3eabc in gnu.classpath.tools.keytool.Main.main(java.lang.String[])void
(args=@f7d4ad50)
at
../../../../../libjava/classpath/tools/gnu/classpath/tools/keytool/Main.java:137
#4 0x0e2b63c0 in gnu::java::lang::MainThread::call_main
(this=this@entry=0xf7ce7f60)
at ../../../libjava/gnu/java/lang/natMainThread.cc:54
#5 0x0e33f3dc in gnu.java.lang.MainThread.run()void (this=@f7ce7f60)
at
/usr/src/debug/gcc-4.8.0-20130412/libjava/gnu/java/lang/MainThread.java:106
#6 0x0e2cce88 in _Jv_ThreadRun (thread=0xf7ce7f60) at
../../../libjava/java/lang/natThread.cc:335
#7 0x0e26e6fc in _Jv_RunMain (vm_args=vm_args@entry=0x0, klass=<optimized
out>, name=name@entry=0x0, argc=<optimized out>,
argv=<optimized out>, is_jar=<optimized out>) at
../../../libjava/prims.cc:1790
#8 0x0e26e944 in _Jv_RunMain (klass=<optimized out>, name=name@entry=0x0,
argc=<optimized out>, argv=<optimized out>,
is_jar=is_jar@entry=false) at ../../../libjava/prims.cc:1815
#9 0x0e26e9a0 in JvRunMain (klass=<optimized out>, argc=<optimized out>,
argv=<optimized out>) at ../../../libjava/prims.cc:1821
#10 0x0d1c17f4 in generic_start_main (main=0x100004c0 <main>, argc=10,
ubp_av=0xfffef6f4, auxvec=0xfffef774, init=<optimized out>,
rtld_fini=<optimized out>, stack_end=<optimized out>, fini=<optimized out>)
at ../csu/libc-start.c:258
#11 0x0d1c1990 in __libc_start_main (argc=<optimized out>, ubp_av=<optimized
out>, ubp_ev=<optimized out>, auxvec=<optimized out>,
rtld_fini=<optimized out>, stinfo=<optimized out>,
stack_on_entry=<optimized out>)
at ../sysdeps/unix/sysv/linux/powerpc/libc-start.c:91
#12 0x00000000 in ?? ()
More information about the Gcc-bugs
mailing list