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]

Re: jc1 segfaults compiling volano


> Date: Tue, 22 Jun 1999 18:16:35 +1200
> From: Bryce McKinlay <bryce@albatross.co.nz>
> 
> 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.

Sigh.  I'm beginning to wonder if the bytecode compiler should just
give up after failing to find a class.  After all, the compilation is
bound to fail, so what's the point of trying to continue?  I know that
the C++ and C compilers continue checking syntax and try to recover
(sometimes successfully) but I don't know if it makes any sense to do
so with a bytecode compiler.  Comments welcome.

> 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);

This is weird.  I'll have a look.

Andrew.

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