This is the mail archive of the
java-discuss@sourceware.cygnus.com
mailing list for the Java project.
jc1 segfaults compiling volano
- To: java-discuss@sourceware.cygnus.com
- Subject: jc1 segfaults compiling volano
- From: Bryce McKinlay <bryce@albatross.co.nz>
- Date: Tue, 22 Jun 1999 18:16:35 +1200
As part of my ongoing effort to get the "volano" benchmark
(ftp://ftp.volano.com/vmark2_1_2_0.class) to work on gcj (Volano
consists of some rather nasty obfuscated classes), I have encountered
two seperate segfaults trying to compile the "volano" benchmark :
These are with:
GNU Java version gcc-2.96 19990621 (experimental) (i686-pc-linux-gnu)
compiled by GNU C version egcs-2.91.66 19990314/Linux (egcs-1.1.2
release).
The first one (COM/volano/NTService.class):
(gdb) run COM/volano/NTService.class -quiet -g1 -version -o
/tmp/ccdlQRPp.s
Starting program:
/usr/local/egcs/lib/gcc-lib/i686-pc-linux-gnu/gcc-2.96/jc1
COM/volano/NTService.class -quiet -g1 -version -o /tmp/ccdlQRPp.s
GNU Java version gcc-2.96 19990621 (experimental) (i686-pc-linux-gnu)
compiled by GNU C version egcs-2.91.66 19990314/Linux (egcs-1.1.2
release).
COM/volano/NTService.java:0: Cannot find file for class
com.ms.service.Service.
COM/volano/NTService.java:0: Cannot find file for class
com.ms.service.Service.
Program received signal SIGSEGV, Segmentation fault.
0x805b107 in class_depth (clas=0x820dc18) at
../../../gcc/java/class.c:266
266 clas = TYPE_BINFO_BASETYPE (clas, 0);
(gdb) bt
#0 0x805b107 in class_depth (clas=0x820dc18) at
../../../gcc/java/class.c:266
#1 0x8060b7e in can_widen_reference_to (source_type=0x820dd78,
target_type=0x820db80) at ../../../gcc/java/expr.c:380
#2 0x8060a87 in pop_type_0 (type=0x820da1c) at
../../../gcc/java/expr.c:308
#3 0x8060abd in pop_type (type=0x820da1c) at
../../../gcc/java/expr.c:328
#4 0x8068e56 in verify_jvm_instructions (jcf=0x81e3f00,
byte_ops=0x820cce8 "*·", length=138) at
../../../gcc/java/verify.c:881
#5 0x80632f9 in expand_byte_code (jcf=0x81e3f00, method=0x820ecc0)
at ../../../gcc/java/expr.c:2149
#6 0x806c4fa in parse_class_file () at
../../../gcc/java/jcf-parse.c:726
#7 0x806c920 in yyparse () at ../../../gcc/java/jcf-parse.c:886
#8 0x8075422 in compile_file (name=0xbffff9de
"COM/volano/NTService.class")
at ../../gcc/toplev.c:3265
#9 0x8078287 in main (argc=7, argv=0xbffff874) at
../../gcc/toplev.c:5441
#10 0x40031cb3 in __libc_start_main (main=0x80773c8 <main>, argc=7,
argv=0xbffff874, init=0x8049004 <_init>, fini=0x819127c <_fini>,
rtld_fini=0x4000a350 <_dl_fini>, stack_end=0xbffff86c)
at ../sysdeps/generic/libc-start.c:78
Of course, we don't need NTService.class, so I replaced it with the
following stub, which gcj seems to accept:
package COM.volano;
public class NTService
{
public static void \u01ad (String a, String b) {}
public boolean handleStop() {return true;}
public boolean handleShutdown() {return true;}
}
Unfortunatly, we get another segfault further down the track, in
COM/volano/mbi.class:
(gdb) run COM/volano/mbi.class -g1 -version -o /tmp/ccrq582R.s
Program received signal SIGSEGV, Segmentation fault.
load_type_state (label=0x824fe60) at ../../../gcc/java/expr.c:1801
1801 int cur_length = TREE_VEC_LENGTH (vec);
(gdb) bt
#0 load_type_state (label=0x824fe60) at ../../../gcc/java/expr.c:1801
#1 0x8064f06 in process_jvm_instruction (PC=130,
byte_ops=0x82162f2 "¸\001\016L§", length=180)
at ../../../gcc/java/javaop.def:310
#2 0x8063494 in expand_byte_code (jcf=0x81e3f00, method=0x8214458)
at ../../../gcc/java/expr.c:2217
#3 0x806c4fa in parse_class_file () at
../../../gcc/java/jcf-parse.c:726
#4 0x806c920 in yyparse () at ../../../gcc/java/jcf-parse.c:886
#5 0x8075422 in compile_file (name=0xbffff9eb "COM/volano/mbi.class")
at ../../gcc/toplev.c:3265
#6 0x8078287 in main (argc=6, argv=0xbffff884) at
../../gcc/toplev.c:5441
#7 0x40031cb3 in __libc_start_main (main=0x80773c8 <main>, argc=6,
argv=0xbffff884, init=0x8049004 <_init>, fini=0x819127c <_fini>,
rtld_fini=0x4000a350 <_dl_fini>, stack_end=0xbffff87c)
at ../sysdeps/generic/libc-start.c:78
regards
[ bryce ]