This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


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

Problems with hard and soft FP for arm...


I'm having problems putting together a gcc toolchain for an xscale 
processor that doesn't have floating-point support.

I used crosstool-0.29, setting the 'eval' line of demo-arm-xscale.sh to be:

 eval `cat arm-xscale.dat gcc-3.3.2-glibc-2.3.2.dat` sh all.sh --notest

I changed arm-xscale.dat to read:

KERNELCONFIG=`pwd`/arm.config
TARGET=arm-linux
TARGET_CFLAGS="-O"
GCC_EXTRA_CONFIG="--with-float=soft --with-cpu=xscale --enable-cxx-flags=-mcpu=xscale"
GLIBC_EXTRA_CONFIG="--without-fp"

When it's all done typing 'arm-linux-gcc --verb' gives:

Reading specs from
/usr/local/arm-linux/bin/../lib/gcc-lib/arm-linux/3.3.2/specsConfigured with:
/home/ali/olo/crosstool-0.29/build/arm-linux/gcc-3.3.2-glibc-2.3.2/gcc-3.3.2/configure
--target=arm-linux --host=i686-host_pc-linux-gnu
--prefix=/usr/local/crosstool/arm-linux/gcc-3.3.2-glibc-2.3.2 --with-float=soft
--with-cpu=xscale --enable-cxx-flags=-mcpu=xscale
--with-headers=/usr/local/crosstool/arm-linux/gcc-3.3.2-glibc-2.3.2/arm-linux/include
--with-local-prefix=/usr/local/crosstool/arm-linux/gcc-3.3.2-glibc-2.3.2/arm-linux
--disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit
--enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long

But when I try to compile and link my software, I get a bunch of errors of
the form:

/usr/local/arm-linux/bin/../lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/bin/ld:
ERROR:
/usr/local/arm-linux/bin/../lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/lib/libc_nonshared.a(elf-init.oST)
uses hardware FP, whereas arm-linux-elf/vdc_basic_test.full uses software FP

File format not recognized: failed to merge target specific data of file
/usr/local/arm-linux/bin/../lib/gcc-lib/arm-linux/3.3.2/../../../../arm-linux/lib/libc_nonshared.a(elf-init.oST)
/

When I run 'arm-linux-objdump -p` on that .a file, I get:

elf-init.oST:     file format elf32-littlearm
private flags = 0: [APCS-32] [FPA float format]
 
Does that mean that it _didn't_ get built with software fp support?

Can anyone see what I'm doing wrong?

Ali

------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


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