[kaffe] Build error while porting to ARM-LINUX

Heejune AHN heejune at snut.ac.kr
Sat May 15 05:16:01 PDT 2004


Hi, kaffe developer,


I am porting Kaffe on Xscale (ARM) based Linux board.
I had problems, one for graphic libraries, and the other for floating point operation in ARM

Here I ask help only for the "float-point" issue. 
I managed to set up, software floating point enable toolchain.
This is the version log for my arm-linux-gcc tool:
[root at heejune kaffevm]# arm-linux-gcc -v
> Reading specs from /usr/local/arm-linux/lib/gcc-lib/arm-linux/3.2.1/specs
> Configured with: ./configure --target=arm-linux --prefix=/usr/local/arm-linux --with-headers=/cross/src/cotulla/include --disable-shared --disable-threads --enable-languages=c --with-cpu=xscale --with-inhibit-libc --with-newlib --without-fp : (reconfigured) ./configure --target=arm-linux --prefix=/usr/local/arm-linux --with-headers=/cross/src/cotulla/include --disable-shared --disable-threads --enable-languages=c --with-cpu=xscale --with-inhibit-libc --with-newlib --without-fp : (reconfigured) ./configure --target=arm-linux --prefix=/usr/local/arm-linux
> --with-headers=/cross/src/cotulla/include --enable-languages=c,c++ --with-cpu=xscale --without-fp
> Thread model: posix
> gcc version 3.2.1

And I confirm it works using simple program.
The function works fine.
#include <stdio.h>
> int main(){
>         float f1,f2;
>         double d1, d2;
>
>         d1 = 1.0E+2;
>         d2 = 3.0E-1;
>
>         f1 = 3.4;
>         f2 = 4.7;
>
>         printf(" the float results = %e", f1*f2);
>         printf(" the double  results = %e", d1*d2);
>
> }



I checked according to JIM PICK's comments, thank you very much JIM.
And found the 2 in-line assemble codes is keeing make a trouble to me....^^;

My requests is to support a "C code" for the two in-line assembles.
Can we replace them with C codes? I donot care performance at the moment,
Cause, I am really want it first work correctly on my Board.


Thanks. 










--------------
Heejune AHN, Assistant Professor
Dept. CIE, Seoul National University of Technology 
mobile: +82-10-3065-5418
office  : +82-2-970-6543
http    :  cie.snut.ac.kr/ahn
----------------------------------     
----- Original Message ----- 
From: "Jim Pick" <jim at kaffe.org>
To: "안희준" <heejune at snut.ac.kr>
Sent: Friday, May 14, 2004 3:09 AM
Subject: Re: Build error while porting to ARM-LINUX


> Hi,
> 
> Floating point support is always fun, especially on platforms that must
> use software floating point emulation.
> 
> The file config/arm/sysdepCellMethod.h has inline assembly for ARM that
> uses floating point instructions.  Some ARM toolchains that support
> "hard floating point" will use those opcodes in the resulting binary,
> and so the binary will only work on ARM chips that have floating point
> (or with operating systems such as Linux that have support for trapping
> the floating point instructions, and emulating them in the kernel).
> Some ARM toolchains have support for "soft floating point" (eg. gcc
> -msoft-float), where the toolchain will replace the floating point
> instructions with fixed point libraries.
> 
> I haven't been played with soft float support and Kaffe, so I'm not sure
> if it works.  You could ask on the mailing list.  I have been able to
> run Kaffe on my ARM Linux box, which has floating point emulation in the
> kernel (so it was compiled with "hard" floating point support).
> 
> Kaffe does not have it's own floating point emulation support, so it's
> dependent on the toolchain and/or kernel for floating point emulation.
> 
> My guess is that your toolchain doesn't have floating point support, so
> you probably need to look closely at your toolchain.
> 
> Cheers,
> 
>  - Jim
> 
> 안희준 wrote:
> > Can you check this for us?
> > 
> > We are trying to build kaffe for ARM based Linux machine.
> > 
> > But here I found error which I cannot handle now.
> > 
> > The assembler complains  "THEY CANNOT SUPPORT FLOAT-POINT OPERATION IN 
> > ARM" ^^;
> > 
> >  
> > 
> > I wish kind understanding...
> > 
> > 
> > ===========================
> > aking all in kaffe
> > make[1]: 들어감 `/root/Kaffe/kaffe-arm-linux/kaffe' 디렉토리
> > Making all in kaffeh
> > make[2]: 들어감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffeh' 디렉토리
> > make[2]: Nothing to be done for `all'.
> > make[2]: 나감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffeh' 디렉토리
> > Making all in kaffevm
> > make[2]: 들어감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm' 디렉토리
> > Making all in jit
> > make[3]: 들어감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm/jit' 디렉토리
> > make[3]: Nothing to be done for `all'.
> > make[3]: 나감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm/jit' 디렉토리
> > Making all in systems
> > make[3]: 들어감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm/systems' 디렉토리
> > Making all in unix-jthreads
> > make[4]: 들어감 
> > `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm/systems/unix-jthreads' 디렉토리
> > make[4]: Nothing to be done for `all'.
> > make[4]: 나감 
> > `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm/systems/unix-jthreads'
> > 디렉토리
> > make[4]: 들어감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm/systems' 디렉토리
> > make[4]: Nothing to be done for `all-am'.
> > make[4]: 나감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm/systems' 디렉토리
> > make[3]: 나감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm/systems' 디렉토리
> > Making all in gcj
> > make[3]: 들어감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm/gcj' 디렉토리
> > make[3]: Nothing to be done for `all'.
> > make[3]: 나감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm/gcj' 디렉토리
> > make[3]: 들어감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm' 디렉토리
> > if /bin/sh ../../libtool --mode=compile arm-linux-gcc -DHAVE_CONFIG_H 
> > -I. -I../../../kaffe-1.1.4/kaffe/kaffevm -I../../config 
> > -I../../include/kaffe 
> > -I../../../kaffe-1.1.4/kaffe/kaffevm/systems/unix-jthreads 
> > -I../../kaffe/kaffevm/jit -I../../../kaffe-1.1.4/kaffe/kaffevm/jit 
> > -I../../../kaffe-1.1.4/libltdl -DTRANSLATOR 
> > -I../../../kaffe-1.1.4/kaffe/jvmpi -I../../../kaffe-1.1.4/kaffe/xprof 
> > -I../../include 
> > -I/root/Kaffe/kaffe-arm-linux/../kaffe-1.1.4/kaffe/kaffevm 
> > -I/root/Kaffe/kaffe-arm-linux/../kaffe-1.1.4/kaffe/kaffevm/jit 
> > -I/root/Kaffe/kaffe-arm-linux/../kaffe-1.1.4/kaffe/kaffevm/systems/unix-jthreads 
> > -I../../../kaffe-1.1.4/config -I../../../kaffe-1.1.4/include 
> > -DKAFFE_VMDEBUG -g -O2 -Wall -Wstrict-prototypes
> > -fsigned-char -MT support.lo -MD -MP -MF ".deps/support.Tpo" -c -o 
> > support.lo ../../../kaffe-1.1.4/kaffe/kaffevm/support.c; \
> > then mv -f ".deps/support.Tpo" ".deps/support.Plo"; else rm -f 
> > ".deps/support.Tpo"; exit 1; fi
> > arm-linux-gcc -DHAVE_CONFIG_H -I. -I../../../kaffe-1.1.4/kaffe/kaffevm 
> > -I../../config -I../../include/kaffe 
> > -I../../../kaffe-1.1.4/kaffe/kaffevm/systems/unix-jthreads 
> > -I../../kaffe/kaffevm/jit -I../../../kaffe-1.1.4/kaffe/kaffevm/jit 
> > -I../../../kaffe-1.1.4/libltdl -DTRANSLATOR 
> > -I../../../kaffe-1.1.4/kaffe/jvmpi -I../../../kaffe-1.1.4/kaffe/xprof 
> > -I../../include 
> > -I/root/Kaffe/kaffe-arm-linux/../kaffe-1.1.4/kaffe/kaffevm 
> > -I/root/Kaffe/kaffe-arm-linux/../kaffe-1.1.4/kaffe/kaffevm/jit 
> > -I/root/Kaffe/kaffe-arm-linux/../kaffe-1.1.4/kaffe/kaffevm/systems/unix-jthreads 
> > -I../../../kaffe-1.1.4/config -I../../../kaffe-1.1.4/include 
> > -DKAFFE_VMDEBUG -g -O2 -Wall -Wstrict-prototypes -fsigned-char -MT 
> > support.lo -MD -MP -MF .deps/support.Tpo -c 
> > ../../../kaffe-1.1.4/kaffe/kaffevm/support.c -fPIC -DPIC -o .libs/support.o
> > /tmp/cctnDIxg.s: Assembler messages:
> > /tmp/cctnDIxg.s:2347: Error: selected processor does not support `stfd 
> > f0,[r3,#0]'
> > /tmp/cctnDIxg.s:2357: Error: selected processor does not support `stfs 
> > f0,[r3,#0]'
> > make[3]: *** [support.lo] 오류 1
> > make[3]: 나감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm' 디렉토리
> > make[2]: *** [all-recursive] 오류 1
> > make[2]: 나감 `/root/Kaffe/kaffe-arm-linux/kaffe/kaffevm' 디렉토리
> > make[1]: *** [all-recursive] 오류 1
> > make[1]: 나감 `/root/Kaffe/kaffe-arm-linux/kaffe' 디렉토리
> > make: *** [all-recursive] 오류 1
> > [root at heejune kaffe-arm-linux]#
> > 
> > 
> > 
> > 
> > 
> > 
> > ----------------
> > Ahn, Heejune,   Assistant Professor, PhD
> > Dept. CIE of Seoul National University of Technology
> > mobile: +82-1-3065-5418
> > office  : +82-2-970-6543
> > www  :  cie.snut.ac.kr/ahn
> > ----------------------------------------------
> 


More information about the kaffe mailing list