linking libgcj.a

abhishek desai
Thu Jun 4 10:43:00 GMT 2009


I have a program mytest.c which is calling JNI_CreateJavaVM. I am
using gcc 3.4.6. During my compilation I am adding the libgcj.a
library to the compilation because I want the libgcj.a to be a part of
the main application. I am using the below command to compile.

gcc mytest.c libgcj.a -o mytest -ldl -lm -lpthread

This compiles correctly but the application crashes and I get a
coredump as below.

#0  0x0053b020 in GC_FirstDLOpenedLinkMap () at
#1  0x0053b0d4 in GC_register_dynamic_libraries () at
#2  0x00537478 in GC_cond_register_dynamic_libraries () at
#3  0x00537fe0 in GC_stopped_mark (stop_func=0x537b00 <GC_never_stop_func>)
    at /root/mipsel/buildroot-2009.02/toolchain_build_mipsel/gcc-3.4.6/boehm-gc/alloc.c:479
#4  0x00539014 in GC_try_to_collect_inner (stop_func=0x537b00
    at /root/mipsel/buildroot-2009.02/toolchain_build_mipsel/gcc-3.4.6/boehm-gc/alloc.c:364
#5  0x0053c1e0 in GC_init_inner () at
#6  0x0053c3f8 in GC_init () at
#7  0x0052d59c in GC_init_gcj_malloc (mp_index=0, mp=0x52ab30) at
#8  0x0052be98 in _Jv_InitGC () at
#9  0x00548310 in _Jv_CreateJavaVM () at
#10 0x004a39d0 in JNI_CreateJavaVM (vm=0x7ff8acfc, penv=0x7ff8acf8, args=0x0)
    at /root/mipsel/buildroot-2009.02/toolchain_build_mipsel/gcc-3.4.6/libjava/
#11 0x0049f820 in start ()
#12 0x0049fa38 in main ()

This works fine if the libgcj is loaded as a shared library. Can I not
link the libgcj.a into the application while compiling ?


More information about the Java mailing list