This is the mail archive of the java-discuss@sourceware.cygnus.com mailing list for the Java project.


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

jc1 segfaults compiling volano


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 ]



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