ecj1 in cross-compile

Andrew Haley aph@redhat.com
Thu Aug 14 16:11:00 GMT 2008


Daniel Andrzejewski wrote:
>> Hi Andrew,
>> Thank you for your reply. 
>> I'm going to try 'make check-target-libjava', but for now it looks like I
> found the solution to my compilation problem:
>> export CLASSPATH=.:/home/scratch/daniel/:/sw/java-jdk/ecj.jar
>> ~> /scratch/daniel> gcj --main=HelloWorld -o HelloWorld HelloWorld.java
> ~> /scratch/daniel> ./HelloWorld
> Hello World!

I have not the slightest idea why that should make any difference. After
all, your ecj1 script set the classpath. But I never understood what was
causing your problem anyway.
> Success! But ...
>> ~> /scratch/daniel> file HelloWorld
>> HelloWorld: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for
> GNU/Linux 2.4.1, dynamically linked (uses shared libs), not stripped
>> ~> /scratch/daniel> ldd HelloWorld
> libm.so.6 => /lib64/tls/libm.so.6 (0x00002b1b953be000)
> libpthread.so.0 => /lib64/tls/libpthread.so.0 (0x00002b1b95515000)
> librt.so.1 => /lib64/tls/librt.so.1 (0x00002b1b95629000)
> libz.so.1 => /lib64/libz.so.1 (0x00002b1b95732000)
> libdl.so.2 => /lib64/libdl.so.2 (0x00002b1b95845000)
> libc.so.6 => /lib64/tls/libc.so.6 (0x00002b1b95948000)
> /lib64/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
> (0x00002b1b952a7000)
>>> I really need to build gcc with static libraries, so my final result would
> look like this:
>> daniel@acai ~/mpi> ldd hello
> not a dynamic executable

That path is fraught with pain and disaster. Java is inherently a dynamic
language and many components use runtime class lookup, so statically
linking fails. However, after a lot of difficulties some people on this
list have successfully statically linked with gcj; perhaps they can help you.
Andrew.


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /