[OE-core] [PATCH] Revert "cross-canadian: Handle powerpc linux verses linux-gnuspe"

alexandru.sardan at freescale.com alexandru.sardan at freescale.com
Tue Jan 21 17:39:14 UTC 2014


Hi,

Yes, the gcc configured for SPE (--target=powerpc-fsl_networking-linux-gnuspe)
can generate both SPE and non-SPE code provided that software 
floating point is used.

There are a couple of parameters (-mabi=no-spe -mno-spe) that will turn
off SPE vector instructions generation. If the code contains floating
point arithmethic -msoft-float needs to be used as well. This means that
the GCC multilib setup has to be configured to include soft float and
build coresponding version of libgcc and target fragments.
But why would we want to generate code without SPE for e500v1/v2? 
Soft-float comes with a major performance penalty.

Maybe I didn't understand correctly what kind of toolchain you want to
be built in the end. Do you want to have a single GCC that builds all
powerpc targets (e500v2, e5500, e6500 etc) and a separate sysroot for each 
target? 
This may be problematic since, for example, the compiler that can generate 
SPE (for e500v2) can't generate altivec instructions (for e6500).

Kind regards,
Alex


> -----Original Message-----
> From: Richard Purdie [mailto:richard.purdie at linuxfoundation.org]
> Sent: Saturday, January 18, 2014 1:20 PM
> To: Sardan Alexandru Cezar-B41700
> Cc: David Nyström; Luo Zhenhua-B19537; openembedded-
> core at lists.openembedded.org
> Subject: Re: [OE-core] [PATCH] Revert "cross-canadian: Handle powerpc
> linux verses linux-gnuspe"
> 
> On Fri, 2014-01-17 at 14:43 +0000, alexandru.sardan at freescale.com wrote:
> > e500v1/v2 uses SPE to handle floating point operations
> > using general purpose regs.
> > So using the non-SPE compiler with SPE libraries won't work.
> > However the soft-fp libraries are compatible with the e500
> > ABI (with a considerable performance penalty).
> >
> > From what I can see, eglibc is built with SPE. So GCC should
> > be built also for SPE (target powerpc-poky-linux-gnuspe).
> 
> The key question is this:
> 
> Can one gcc binary generate code for both non-SPE and SPE targets,
> assuming its pointed at an appropriate sysroot containing appropriate
> libraries?
> 
> If we can have one such binary, how do we configure it? If we can't, we
> need to redo the way gcc-cross-canadian is working on powerpc.
> 
> The change there was to have one gcc for each different target
> architecture rather than each "tune" since that was horribly
> inefficient.
> 
> Cheers,
> 
> Richard
> 
> 
> 
> 



More information about the Openembedded-core mailing list