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]

Re: powerpc-linux-gnuspe MPC8540/e500 float error


Clemens Koller wrote:
I am new to this list - so this is maybe a newbie question:
I have a PowerMac running Linux 2.6.10 and I want to
cross-compile for a Freescale MPC8540 PPC (Book E, e500, SPE)
machine.
Well, I finally need a compiler suite for this e500 architecture
which generates code for the e500...

Therefore I used Kumar Gala's patches

http://gate.crashing.org/~galak/crosstool-0.28-rc37-e500.patch.bz2
http://gate.crashing.org/~galak/crosstool-0.28-extra-patches.patch.bz2

for the latest crosstool-0.28-rc37
and did a demo-e500-ck.sh:
-----8<---------------------------------------------------------
eval `cat powerpc-e500.dat gcc-3.4.3-e500-glibc-2.3.3-spe.dat`  sh all.sh -nounpack --builduserland --testlinux --notest

(For the curious, Kumar's powerpc-e500.dat is:


TARGET=powerpc-linux-gnuspe
TARGET_CFLAGS="-O"
GLIBC_ADDON_OPTIONS="=linuxthreads,spe"
KERNELCONFIG=`pwd`/powerpc-e500.config
)

-----8<---------------------------------------------------------

But I got the following result (beside an error due to a missing
add-on directory 'spe' I had to create manually):
../sysdeps/powerpc/fpu/s_isnan.c: In function `__isnan':
../sysdeps/powerpc/fpu/s_isnan.c:44: error: can't find a register in class `FLOAT_REGS' while reloading `asm'
../sysdeps/powerpc/fpu/s_isnan.c:47: error: can't find a register in class `FLOAT_REGS' while reloading `asm'
make[2]: *** [/home/clemens/cross/crosstool-0.28-rc37/build/powerpc-linux-gnuspe/
gcc-3.4.3-glibc-2.3.3/build-glibc/math/s_isnan.o] Error 1
-----8<---------------------------------------------------------

http://www.freescale.com/files/32bit/doc/app_note/AN2490.pdf says that processor doesn't support the floading point registers fp0-fp31. Evidently Kumar handled that by patching glibc-2.3.2.

I bet the problem was that you were trying to build glibc-2.3.3, but
you don't have that patched for your processor.  Try building
glibc-2.3.2 instead, or finding glibc-2.3.3 patches for the e500,
or forward-porting them yourself.
- Dan

--
Trying to get a job as a c++ developer?  See http://kegel.com/academy/getting-hired.html

------
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]