[oe] liboil softfloat fix questions

Koen Kooi k.kooi at student.utwente.nl
Thu Sep 25 07:31:43 UTC 2008


Hi,

I noticed liboil got patched:

+if test x"${ENABLE_SOFTFLOAT}" = "xyes"; then
+      VFP_CFLAGS="$VFP_CFLAGS -mfloat-abi=softfp"
+else
+      VFP_CFLAGS="$VFP_CFLAGS -mfpu=vfp"

That looks a bit wrong to me, since for EABI you'd want 
'-mfloat-abi=softfp -mfpu=vfp' to make it use the VFP coprocessor using 
softfloat calling conventions[1] and plain '-mfloat-abi=softfp' to do 
softfloat, and with OABI you don't want to pass '-mfloat-abi=softfp'
To make it even more complicated, on armv7a[2] you want to pass 
-mfpu=neon -mfloat-abi=softfp. If you look at the output of gcc -S 
you'll see that EABI won't use an FPU unless you pass in 
-mfloat-abi=softfp *and* -mfpu=<FPU>.

AFAICT OE passes all the needed magic already in TARGET_CCFLAGS, so it 
seems that this entire construct can be removed.

Robert, could you beat the cacao people with a cluebat so they get their 
stuff right?

regards,

Koen

[1] There are more permutations, but let's focus on the one OE is 
currently using
[2] On cortex-a8 the VFP isn't pipelined, so double precision math is 
twice as slow compared to ARM11 cores, the NEON unit is pipelined, but 
can only do single-precision. So don't be surprised if your new omap3 
nokia tablet performs FP math slower than your n810.





More information about the Openembedded-devel mailing list