This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libjava issues with arm-linux-gcj from arm-linux-gcc 3.3.2


Nathan M wrote:
I would caution that it is possible that gcj/libgcj will not run very
well on your platform.  The non-existence of libjava/sysdeps/arm
indicates to me that not very much hacking has been done to make
arm-linux run very well.


Is this issue resolved in 3.4.x and 4.0.1?  Or is this issue
independent of the gcc/gcj version?


In the past 3 years or so, I do not recall seeing much if any work being done on the ARM port. But it could have happened and I missed it. I really have no knowledge of the state of the ARM port. My ramblings are based on my experiences with the MIPS port.


Given all of this I think that the use of SIGSEGV for detection of NullPointerExceptions probably is not implemented. The compiler will be generating a lot of explicit checks for NULLs. Some of the more esoteric parts of java.lang.reflect will probably not work nor will the gij bytecode interpreter.

Other than those things, most other things may work.


If the state of the mips port in 3.3.x is any indication it might work,
but many things that work on x86 were non-functional.  I can see that
ffi closures are still not implemented, so many things in
java.lang.reflect will not work.

Many bugs in the java runtime have been fixed since 3.3.x, so as long as
you are building your own gcj toolchain, you might want to think about
using 3.4.4 or 4.0.1 instead.


Ok, so you're suggesting that apps. compiled with arm-linux-gcj may
suffer in terms of performance as well as the possibility that they
won't work properly at all.  You mention several issues above, are you
suggesting using 3.4.x or 4.0.1 would avert these?  If so, should I
expect those newer toolchains to work properly with my arm-linux
headers (which are most likely ancient in comparison)?  As long as I
compile apps. statically with gcj, I assume there wouldn't be any
dependency conflicts with my target either?  If you don't think those
are issues, I minus well use the latest compiler (4.0.1), right?

The only headers needed to build GCC (including gcj/libgcj) are the C library headers (and indirectly possibly the kernel headers). So if you have all of those, you can pretty much build any compiler version you want to.


We are using 3.4.3, but I have tested 4.0.1 and both seem to be fine on MIPS. If you are going to use any networking or HTTP connection classes in your application I would recommend 4.0.1.

David Daney.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]