GCJ Porting for RTEMS Status Report

Jie Liu lj8175 at gmail.com
Sun Jun 12 17:15:41 UTC 2011


First, let us look at an HelloWorld example with exception and thread,
the HelloWorld.java is:
public class HelloWorld{
   public static void main(String args[]){
      ThreadTest t=new ThreadTest();
      Thread t1=new Thread(t);
      System.out.println("GCJ For RTEMS in Java!---in HelloWorld.java");
        System.out.println(args[100]+"for raise an exception");
      }catch(Exception e){
        System.out.println(e.getMessage()+"---in an Exception");
class ThreadTest extends Thread{
  public void run(){
    System.out.println("ThreadTest from HelloWorld!---in a new thread");

Compiling it using cross gcj and linking with rtems system, we get a
HelloWorld.exe. And then, run it on qemu as:
qemu -m 512 -boot a -cpu 486 -fda /home/rtems/qemu/pc386_fda -hda
fat:/home/rtems/qemu/hd -monitor null -nographic -serial stdio

The output is:
Initialized console on port COM1 9600-8-N-1
GCJ For RTEMS in Java!---in HelloWorld.java
100---in an Exception
ThreadTest from HelloWorld!---in a new thread
EXECUTIVE SHUTDOWN! Any key to reboot...

Is this interesting?

In the last few months, I have
--Porting bdwgc to RTEMS/I386
--Use RTEMS’s pthread for GCJ Porting
--Fix many many problems in compiling, linking and running
--Have a cross gdb environment for source code level debug
and next step I will
-- Start focusing on running the testsuite and fix encountered problem
-- Move to other architectures and repeat this progress
--Submitting patches to related community

If you are interested in, welcome! Do not hesitate to contact me. :)

Best Regards,

More information about the users mailing list