[kaffe] kaffe compilation problem

Dalibor Topic robilad at kaffe.org
Fri Jan 2 12:45:02 PST 2004


Hi Phoebus,

林君翰 wrote:
> Hi
> 
> I tried to compile kaffe 1.1.3, but there is something wrong about that.
> 
> export CC=arm-linux-gcc
> export AR=arm-linux-ar
> export NM=arm-linux-nm
> export KAFFEH=/aaa/bin/kaffeh
> 
> ./configure --prefix=/bbb --build=i386-linux --host=arm-linux --without-x 
> --enable-pure-java-math --with-includes=/usr/local/arm-linux/include 
> --with-libraries=/usr/local/arm-linux/lib
> 
> arm-linux-gcc -DHAVE_CONFIG_H -I. -I. -I../../config -I../../include/kaffe 
> -I../../kaffe/kaffevm/systems/unix-jthreads -I../../kaffe/kaffevm/jit 
> -I../../kaffe/kaffevm/jit -I../../libltdl -DTRANSLATOR -I../../kaffe/jvmpi 
> -I../../kaffe/xprof -I../../include -DKVER=\"1.1.3\" 
> -I/DBPXA255/work/kaffe-1.1.3/./kaffe/kaffevm 
> -I/DBPXA255/work/kaffe-1.1.3/./kaffe/kaffevm/jit 
> -I/DBPXA255/work/kaffe-1.1.3/./kaffe/kaffevm/systems/unix-jthreads 
> -I../../config -I../../include -I/usr/local/arm-linux/include 
> -DKAFFE_VMDEBUG -g -O2 -Wall -Wstrict-prototypes -fsigned-char
> -MT support.lo -MD -MP -MF .deps/support.Tpo -c support.c  -fPIC -DPIC -o 
> .libs/support.o
> /tmp/cccojFSa.s: Assembler messages:
> /tmp/cccojFSa.s:2349: Error: selected processor does not support `stfd 
> f0,[r3,#0]'
> /tmp/cccojFSa.s:2359: Error: selected processor does not support `stfs 
> f0,[r3,#0]'
> make[3]: *** [support.lo] Error 1
> make[3]: Leaving directory `/DBPXA255/work/kaffe-1.1.3/kaffe/kaffevm'
> make[2]: *** [all-recursive] Error 1
> make[2]: Leaving directory `/DBPXA255/work/kaffe-1.1.3/kaffe/kaffevm'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/DBPXA255/work/kaffe-1.1.3/kaffe'
> make: *** [all-recursive] Error 1
> 
> what may be the reason for this.

Googling for the error message from the compiler (always a good
technique!) shows that the error comes from floating point instructions
not being supported by your processor.

The usual way to deal with that is to tell gcc to use a software
implementation of floating point instructions, -msoft-float for arm. But
 according to gcc docs, that won't work that well when you're
cross-compiling:

-msoft-float
    Generate output containing library calls for floating point.
Warning: the requisite libraries are not available for all ARM targets.
Normally the facilities of the machine's usual C compiler are used, but
this cannot be done directly in cross-compilation. You must make your
own arrangements to provide suitable library functions for
cross-compilation.

    -msoft-float changes the calling convention in the output file;
therefore, it is only useful if you compile all of a program with this
option. In particular, you need to compile libgcc.a, the library that
comes with GCC, with -msoft-float in order for this to work.

Taken from
http://gcc.gnu.org/onlinedocs/gcc-3.3.2/gcc/ARM-Options.html#ARM%20Options

The best way to proceed now is to figure out how to use -msoft-float on
your platform when you're cross-compiling. I can't help you with that,
unfortunately. But I'd be very interested in hearing if you succeed or fail.

cheers,
dalibor topic





More information about the kaffe mailing list