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 separately.
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 HelloWorld.java -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 HelloWorld.java -g1 -fbootclasspath=./:/usr/share/java/libgcj-4.4.2.jar -g1 -fsource=1.5 -ftarget=1.5 -fzip-dependency /tmp/ccTF9EKh.zip 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.