This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug java/41375] New: Compiling native executable without -findirect-dispatch causes random SEGVs
- From: "yuri at tsoft dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Sep 2009 12:10:32 -0000
- Subject: [Bug java/41375] New: Compiling native executable without -findirect-dispatch causes random SEGVs
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
I have a simple Java class that doesn't directly depend on anything except for
java.lang.String, java.lang.reflect.Class and java.lang.reflect.Method.
It loads other classes (from jars in my case) by name and invoked them through
Class.forName()/Method.invoke() mechanism.
But it only works when -findirect-dispatch is specified. Without
-findirect-dispatch it crashes shortly into the run with the stack below.
-findirect-dispatch should only impact the way how currently compiled unit
links to other units. In case of the programs like mine (not dependent on
anything else directly) -findirect-dispatch should have no impact at all. It
should resolve classes and run them the same way, since in this scenario it's
clear what should be done to load other classes.
--- stack (debug info is not everywhere) ---
0x35ec31a7 in __error () from /lib/libthr.so.3
#1 0x35ec2d88 in __error () from /lib/libthr.so.3
#2 0x36005860 in ?? ()
#3 0x00000008 in ?? ()
#4 0x00000001 in ?? ()
#5 0x36005840 in ?? ()
#6 0x00000000 in ?? ()
#7 0x00000001 in ?? ()
#8 0x33c718d4 in ?? () from /libexec/ld-elf.so.1
#9 0x35ec16df in pthread_setcancelstate () from /lib/libthr.so.3
#10 0x35ec0f7d in pthread_cond_signal () from /lib/libthr.so.3
#11 0x347e57e8 in _Jv_CondWait (cv=0x35e5b78c, mu=0x35e5b780, millis=0,
nanos=0) at ../../../gcc-4.4.1/libjava/posix-threads.cc:212
#12 0x8c347cb0 in ?? ()
#13 0x35e5b78c in _ZL5mutex () from /usr/local/gcc/4.4.1-java/lib/libgcj.so.10
#14 0x35e5b780 in E () from /usr/local/gcc/4.4.1-java/lib/libgcj.so.10
#15 0x00000000 in ?? ()
#16 0x00000000 in ?? ()
#17 0x00000000 in ?? ()
#18 0x00000001 in ?? ()
#19 0x33c4e998 in dladdr () from /libexec/ld-elf.so.1
--
Summary: Compiling native executable without -findirect-dispatch
causes random SEGVs
Product: gcc
Version: 4.4.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: yuri at tsoft dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41375