ARM and libffi...
Scott Bambrough
scottb@netwinder.org
Thu May 11 10:46:00 GMT 2000
I've been attempting to build libgcj on a NetWinder using the mainline
compiler. I've come across a few things:
1) There is a bug in libffi/src/arm/sysv.S. The author uses two stfs
instructions to save a double to memory. The correct instruction to use is
stfd. All the current code acheives is to convert what is in f0 to a single and
save it twice. I sent a patch to the patches list.
2) libgcj is multilibbed on my NetWinder. It attempts to build a softfloat
version as well. The build currently dies when compiling libffi/src/arm/sysv.S
due to the floating point instructions in the assembler. I can provide a
softfloat friendly version of this file, but I can't figure out how to integrate
it into the build. Can someone help me out there?
3) I came across the following paragraph in the readme.
ARM - System V ABI
------------------
The ARM port was performed on a NetWinder running ARM Linux ELF
(2.0.31) and gcc 2.8.1. config.sub still does not recognize the
machine name sa110-unknown-linux-gnu (currently returned by
NetWinder). In the mean time the package can be configured by running
'configure arm-linux'.
Current NetWinders no longer have this problem. The latest config.sub and
config.guess from the GNU site should return armv4l-unknown-linux-gnu when using
binutils 2.9.5.xx or armv4l-linux-gnuoldld when using binutils 2.9.1.xx. In
general they should return:
arm[arch][endianness]-*-[opsys]-gnu[oldld]
arch is usually [3,4].
1,2 are valid as well, but I've never seen such a beast.
5 will probably appear when arch5 machines become available.
endianness is [l,b]
opsys is linux, netbsd, ecos etc..
oldld appears if the 2.9.1 linker is detected
--
Scott Bambrough - Software Engineer
REBEL.COM http://www.rebel.com
NetWinder http://www.netwinder.org
More information about the Java
mailing list