Hi Andrew, Having compiled gcj 4.1.2 with the options you quoted below, the application no longer crashes with SEGV but I am receiving a lot of java.lang.NullPointerException. I have tried to understand the conclusion of this thread (http://gcc.gnu.org/ml/java/2001-04/msg00400.html) which deals with that issue, but without success. Is this a natural behaviour? Or should there be a way to avoid them? Best Regards David Sayada. -----Original Message----- From: Andrew Haley [mailto:aph-gcc@xxxxxxxxxxxxxxxxxxx] Sent: Thursday, September 06, 2007 12:49 PM To: David Sayada Cc: classpath@xxxxxxx; 'Amnon David' Subject: RE: SIGSEGV issue David Sayada writes: > Hi Andrew, > > Opening your link, I have noticed that the fcheck-references is defined for > arm-elf CPU. Also the arm-elf family is compatible with the processor I am > working with (PXA270). Then I will build a new toolchain for arm-elf based > on gcc 4.1.2 and make new tests. This top-posting is very confusing. Please stop. This is what matters: arm*-linux* ) slow_pthread_self=no can_unwind_signal=no CHECKREFSPEC=-fcheck-references DIVIDESPEC=-fuse-divide-subroutine ;; > > What do you think? It might work. Andrew. > > Best Regards, > David Sayada. > > -----Original Message----- > From: Andrew Haley [mailto:aph-gcc@xxxxxxxxxxxxxxxxxxx] > Sent: Thursday, September 06, 2007 12:21 PM > To: David Sayada > Cc: classpath@xxxxxxx; 'Amnon David' > Subject: RE: SIGSEGV issue > > David Sayada writes: > > > > Reading specs from > > > /opt/crosstool/gcc-4.1.2-glibc-2.3.2/arm-unknown-linux-gnu/bin/../lib/gcc/ar > > > m-unknown-linux-gnu/4.1.2/../../../../arm-unknown-linux-gnu/lib/libgcj.spec > > rename spec lib to liborig > > Target: arm-unknown-linux-gnu > > Configured with: > > > /opt/test/crosstool-0.43/build/arm-unknown-linux-gnu/gcc-4.1.2-glibc-2.3.2/g > > cc-4.1.2/configure --target=arm-unknown-linux-gnu > > --host=i686-host_pc-linux-gnu > > --prefix=/opt/crosstool2/gcc-4.1.2-glibc-2.3.2/arm-unknown-linux-gnu > > > --with-headers=/opt/crosstool2/gcc-4.1.2-glibc-2.3.2/arm-unknown-linux-gnu/a > > rm-unknown-linux-gnu/include > > > --with-local-prefix=/opt/crosstool2/gcc-4.1.2-glibc-2.3.2/arm-unknown-linux- > > gnu/arm-unknown-linux-gnu --disable-nls --enable-threads=posix > > --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++,java > > --enable-shared --enable-c99 --enable-long-long > > Thread model: posix > > gcc version 4.1.2 > > > > The cross toolchain has been compiled with crosstool 0.43 from Dan Kegel. > > OK, it looks like the toolchain is totally misconfigured. My guess is > that this version of gcj on ARM doesn't work at all. > > You need -fcheck-references in that spec file, and the whole library > needs to be compiled with it. I have no idea whether gcj 4.1.2 ever > worked on ARM; I'm beginning to think not. > > Have a good look at > > http://gcc.gnu.org/svn/gcc/trunk/libjava/configure.host > > and make sure that the arm*-linux* sections are correct. > > This will help, but I suspect that gcj 4.1.2 will never work properly > on ARM. You need something much more recent. > > Andrew. > > > > > > # > # This spec file is read by gcj when linking. > # It is used to specify the standard libraries we need in order > # to link with libgcj. > # > %rename lib liborig > *lib: -lgcj -lm -lpthread -ldl %(libgcc) %(liborig) > > *jc1: -fuse-divide-subroutine -fuse-boehm-gc -fnon-call-exceptions > -fkeep-inline-functions >