[oe] "armv6" override not used

Khem Raj raj.khem at gmail.com
Thu Jan 15 04:08:40 UTC 2009


On (14/01/09 14:44), Phil Blundell wrote:
> On Wed, 2009-01-14 at 14:51 +0100, Robert Schuster wrote:
> > it is related to GCC: Although -mfloat-abi=vfp is given __SOFTFP__ is
> > not defined and that is required for libffi because otherwise the sysv.S
> > assembler file uses instructions not available any more on armv6/armv7.
> 
> That sounds more like libffi is to blame.  Shouldn't it be checking for
> (defined(__SOFT_FP__) || defined(__VFP_FP__))?  Or, if you really are
> using soft-float, then presumably gcc is to blame for not defining
> __SOFT_FP__.
> 
> Either way, it seems like whichever package is broken should just be
> fixed, rather than trying to work around it with architecture-specific
> CFLAGS forcing.  Assuming that the problem is libffi trying to use FPA
> instructions #ifndef __SOFT_FP__, then it will break on ARMv5
> architectures as well if you happen to be using VFP.

-mfloat-abi=softfp makes sure that the calling conventions used are compatible with soft-float but gcc can generate VFP code if the architecture supports it and thats why __SOFTFP__ is not defined.

GCC only defines __SOFTFP__ when float abi is soft which means there is
no FPU of any sort.

My understanding is that this define means that code is not using FPU of
any sort and is pure soft-fp not only the calling convention.

by default -mfloat-abi is soft.

You should check the code in question weather it really needs to be soft
float. If thats the case then either you should use -mfloat-abi=soft for
this file.



Thx

-Khem




More information about the Openembedded-devel mailing list