[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Debian powerpc binary compatibility?



* Sergei Poselenov | 2010-09-22 15:49:39 [+0400]:

>Hi Sebastian,
Hi Sergei,

>I'm sorry I'm a bit slow in understanding - could you please answer my
>further questions?
hehe, let's see.

>> Because the ABI is different. All you need to the same output as with
>> the tripplet you have to specify
>>   -mcpu=mpc8540 -misel -mfloat-gprs=double
>> So with the tripplet you set all this flags as default (unless I
>> forgot a switch). -mfloat-gprs changes the ABI from hardfloat to
>
>Probably also -mabi=spe?
Right, I missed that one.

>I hope I understand now.
>You mean I can't build an application in the
>following way:
>
>powerpc-linux-gcc -o t.o -c t.c -mcpu=mpc8540 -misel -mfloat-gprs=double
>-mabi=spe 
>powerpc-linux-gcc -o t t.o
>
>In the first step, I built an object with ABI=spe, on the second - I'm
>linking the object with libc.so, which is built with the "default"
>powerpc ABI.
>I can't do this, the objects (.o and libc.so and startup modules
>(crt..)) are incompatible, right?
Right.

>Not sure I understood. I mean the bug list for the powerpcspe
>http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=powerpcspe;users=debian-powerpcspe@breakpoint.cc
>port is full of patches which essentially add the new powerpcspe
>configuration target to a lot of packages.
>I mean - if you use the traditional "powerpc-linux-gnu" target for
>you port with the e500v2 GCC options enabled by one or other way - you
>don't need to bother with the new "gnuspe" target support in a lot of
>packages.
>Why the decision to use the gnuspe target?
Because you can't distinguish between the e500v2 binaries (with SPE
floating point) and the "normal" powerpc binaries with classic FPU and
AltiVec. The name is _<debian_name>.deb. You can't run those on the
"traditional" powerpc so have to ensure you don't mix it up. How do you
want to handle this?
Some packags, like gcc, have a different configuration and we pass
different options to configure. openjdk will be another one as soon as
openjdk for powerpc starts using llvm. It is not the majority, true. The
"add powercpspe keyword to bla" type of patch could be replaced with
"replace linux-any with $arch_list" these days. However it was not
allowed by the policy at the time we started doing it. This is allowed
since 3.9.0

>Regards,
>Sergei

Sebastian


Reply to: