gcj static crosscompiling raises issues with boehm-gc
Andrew Haley
aph@redhat.com
Wed Oct 6 16:07:00 GMT 2010
On 10/06/2010 04:44 PM, Andreas Frisch wrote:
>> This looks completely broken: it seems to be trying to statically link
>> gainst libgcj. Try it without -non_shared.
>> Hi Andrew, thanks for your prompt help!
> linking statically against libgcj is what i actually intend to do to save a
> lot of space on the embedded device with very limited capacity.
That is really hard to get working. It can be done, but you
should at least get dynamic linking working first.
> other than that, if i omit the -non_shared parameter, then it doesn't seem to
> find the aacskeys.so which is a run-time include of in one of the java files
> where it does a System.loadLibrary("aacskeys");
It'll be fibn as long as it's in the load path. You might be better
using a full path to the library.
> the resulting error message is the infamous
> /dream/oe1.6/dm8000/build/tmp/cross/mipsel/lib/gcc/mipsel-oe-
> linux/4.4.4/../../../../mipsel-oe-linux/bin/ld: warning: cannot find entry
> symbol __start; defaulting to 0000000000406960
Are you forgetting to compile with -jni ?
-fjni
With gcj there are two options for writing native methods:
CNI and JNI. By default gcj assumes you are using CNI.
If you are compiling a class with native methods, and
these methods are implemented using JNI, then you must use
"-fjni". This option causes gcj to generate stubs which
will invoke the underlying JNI methods.
Andrew.
More information about the Java
mailing list