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


Hello, Dan, Hi, Steve!

Thanks so far!
I guess I understood that the e500 doesn't have FP-Regs...
and that this problem has to do with it. :-)

I have tried to run all.sh first without --nounpack and/or
--builduserland but there is no way to get it going.
And to reproduce the errors, I guess --nounpack should be fine?

But well... isn't that the glibc-2.3.3-spe-patch (from Kumar)?
-----8<--------------------------------------------------------------------
Hmm... The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff -uNr crosstool-0.28-rc37.orig/patches/glibc-2.3.3-spe/glibc-2.3.3-spe.patch crosstool-0.28-rc37/patches/glibc-2.3.3-spe/glibc-2.3.3-spe.patch
|--- crosstool-0.28-rc37.orig/patches/glibc-2.3.3-spe/glibc-2.3.3-spe.patch 1970-01-01 01:00:00.000000000 +0100
|+++ crosstool-0.28-rc37/patches/glibc-2.3.3-spe/glibc-2.3.3-spe.patch 2004-12-16 18:43:24.000000000 +0000
--------------------------
Patching file glibc-2.3.3-spe.patch using Plan A...
Hunk #1 succeeded at 1.
-----8<--------------------------------------------------------------------


Did I miss something? Did Kumar miss something?
How can I make sure that
binutils-2.15
gcc-3.4.3
glibc-2.3.3
linux-2.6.9
glibc-linuxthreads-2.3.3
is okay?

Actually, all the things worked once on an old intel platform
(i586, 166MHz, Kernel 2.6.10, CRUX Linux) but I only got
x86 compilers for e500 out of it after a night...

I cannot get the crosstools running neither on my PowerMac
(G4, 2.6.10, CRUX Linux) nor on the final target itself
(MPC8540, 2.6.10, ELDK3.1 (/lib/cpp fails sanity
check for unknown reason))

I am sorry if there is some confusing information, I am working
on the three platforms in parallel to see which way is the
easiest one... but now I am stuck with trail & error and I don't
know yet where is the best place to dig in the dirt (and read more code).

Does it matter that I am running 2.6.10 and the crosstool uses
the 2.6.9 sources? I guess not!?

Well, I am about to re-start from the beginning... again.
I'll try to do a >>logworld.log

When will the FAQ's become reachable again?

Best greets,

Clemens Koller
_______________________________
R&D Imaging Devices
Anagramm GmbH
Rupert-Mayer-Str. 45/1
81379 Muenchen
Germany

http://www.anagramm.de
Phone: +49-89-741518-50
Fax: +49-89-741518-19



Dan Kegel wrote:

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



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