NullPointerException throwed when running GCJ

David Daney
Tue Dec 28 17:36:00 GMT 2010

Adding java@... as this is where java questions are handled.

On 12/28/2010 07:05 AM, majia gm wrote:
> Hi, everyone.
> I'm porting GCJ to a non-mainstream platform, which is a RISC machine
> with some similarity to ARM.
> The GCC I'm using is version 4.4.2. I start the porting from ARM's code.

There is quite a bit of work involved in getting libgcj running on a new 
target.  One thing that is obvious from your stack trace is that the 
stack unwinding code is not decoding the instruction pointer properly. 
That would be one place to start.

Unfortunatly, there isn't really one specific thing we can point you to. 
  You will probably have to step through things with GDB and make sure 
that are the target specific code is doing the right thing.

The boehm-gc may need porting as well.  Actually I might start with 
boehm-gc, I think it has its own test suite, so it can be debugged 

Then look at all the target specific code for a known working target 
(arm, mips, x86, etc...) and try to verify that your target code 
functions correctly.

Good Luck,
David Daney

> When running the GCJ on the target platform, it mentioned that the ECJ
> is needed. I don't know whether GCJ can live without ECJ, so I
> donwload the latest ECJ jar file and recompiled.
> When running GCJ to compile a JAVA source file, I got the following error.
> [root@localhost pxx]# gcj -C -v
> Using built-in specs.
> Target: unicore32-linux
> Configured with: /home/vhome/FengYi/pxx/mydir/gcc-4.4.2/configure
> --host=unicore32-linux --target=unicore32-linux --prefix=/usr
> --build=i686-redhat-linux-gnu --enable-clocale=gnu --enable-shared
> --enable-threads=posix --enable-__cxa_atexit --enable-languages=java
> --with-gnu-ld --disable-libstdcxx-pch --disable-multilib
> --with-pkgversion=UC4_1.0_gama_20101228
> Thread model: posix
> gcc version 4.4.2 (UC4_1.0_gama_20101228)
> COLLECT_GCC_OPTIONS='-fsaw-java-file' '-C' '-v'
> '-fbootclasspath=./:/usr/share/java/libgcj-4.4.2.jar' '-g1'
> '-fsyntax-only' '-femit-class-files' '-S' '-o' 'NONE' '-shared-libgcc'
>   /usr/libexec/gcc/unicore32-linux/4.4.2/ecj1 -g1
> -fbootclasspath=./:/usr/share/java/libgcj-4.4.2.jar -g1 -fsource=1.5
> -ftarget=1.5 -fzip-dependency /tmp/
> Exception in thread "main" java.lang.ExceptionInInitializerError
>     at 0x1(Unknown Source)
>     at 0x3(Unknown Source)
>     at 0x5(Unknown Source)
>     at 0x5(Unknown Source)
>     at 0x5(Unknown Source)
>     at 0x5(Unknown Source)
>     at 0x5(Unknown Source)
>     at 0xffffffffffffffff(Unknown Source)
>     at 0x2(Unknown Source)
>     at 0xffffffffffffffff(Unknown Source)
>     at 0xffffffffffffffff(Unknown Source)
> Caused by: java.lang.NullPointerException
>     at 0x1(Unknown Source)
>     at 0x5(Unknown Source)
>     at 0x4(Unknown Source)
>     ...9 more
> Could anyone give me some hints on how could this happen?
> I really appreciate you patience.

More information about the Java mailing list