static linking

Daniel Andrzejewski andrzeje@cs.utk.edu
Thu Aug 14 18:59:00 GMT 2008


Hi all,

I have a problem with gcj. I have read couple threads here, but I still have no idea how to fix my 
problem. Usually people say that this is hard but doable, but they don't give much directions.

I'm trying to do it for a system where there's no shared libraries, so I must not even dynamically 
link libc.

I successfully build gcc 4.3.0 with --disable-shared option. I can successfully compile a java 
program, but the executable is still dynamically linked.

/scratch/daniel> ldd ./HelloWorld
         libz.so.1 => /lib64/libz.so.1 (0x00002adcd28dd000)
         libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x00002adcd29f0000)
         libc.so.6 => /lib64/tls/libc.so.6 (0x00002adcd2b04000)
         libm.so.6 => /lib64/tls/libm.so.6 (0x00002adcd2d26000)
         libdl.so.2 => /lib64/libdl.so.2 (0x00002adcd2e7d000)
         librt.so.1 => /lib64/tls/librt.so.1 (0x00002adcd2f80000)
         /lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2 (0x00002adcd27c6000)

When I use -static flag while compiling I get some warnings, but the executable gets compiled.

/scratch/daniel> gcj --main=HelloWorld -o HelloWorld -static HelloWorld.java 

...
warnings
...
/scratch/daniel> file HelloWorld
HelloWorld: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.4.1, statically 
linked, not stripped


And the problem is at the runtime:

/scratch/daniel> ./HelloWorld
Aborted


Has anyone solved this issue yet?

Thank you for you response.

Daniel Andrzejewski

-- 
Daniel Andrzejewski
student IT Administrator
Elec Engr & Comp Science
University of Tennessee
(865) 974 - 4388 (work)

"Investment in knowledge always pays the best interest" Benjamin Franklin
--



More information about the Java mailing list