[OE-core] [RFC PATCH] Make ppce300c3 tune hard-float by default

Mats Kärrman Mats.Karrman at tritech.se
Fri Mar 28 16:43:47 UTC 2014


The tuning file for PowerPC e300c3 is soft-float. In OE-classic it was hard-float
and it should be as the c3 has an fpu. I have modified the tuning file to include
both a hard-float version (using the existing ppce300c3 name) and an optional
soft-float version (called ppce300c3-nf).

The following patch also passes a "--with-cpu=e300c3" argument to GLIBC.
For this to have any effect an "Implies" file must be added to the glibc/eglibc
source (tested with eglibc 2.18).
./ports/sysdeps/powerpc/powerpc32/e300c3/fpu/Implies:
------------------------------------------------------------------------------
# e300c3 is a variant of 603e so use the same optimizations for sqrt
powerpc/powerpc32/603e/fpu
------------------------------------------------------------------------------

Thanks to Khem Raj and Mark Hatle for their previous comments.


diff --git a/meta/conf/machine/include/tune-ppce300c3.inc b/meta/conf/machine/include/tune-ppce300c3.inc
index 9431222..d11522b 100644
--- a/meta/conf/machine/include/tune-ppce300c3.inc
+++ b/meta/conf/machine/include/tune-ppce300c3.inc
@@ -2,10 +2,22 @@ DEFAULTTUNE ?= "ppce300c3"
 
 require conf/machine/include/powerpc/arch-powerpc.inc
 
+AVAILTUNES += "ppce300c3 ppce300c3-nf"
+
+# hard-float
 TUNEVALID[ppce300c3] = "Enable ppce300c3 specific processor optimizations"
+TUNE_FEATURES_tune-ppce300c3 = "${TUNE_FEATURES_tune-powerpc} ppce300c3"
+TUNE_PKGARCH_tune-ppce300c3 = "ppce300c3"
+PACKAGE_EXTRA_ARCHS_tune-ppce300c3 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc} ppce300c3"
 TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce300c3", " -mcpu=e300c3", "", d)}"
 
-AVAILTUNES += "ppce300c3"
-TUNE_FEATURES_tune-ppce300c3 = "m32 fpu-soft ppce300c3"
-TUNE_PKGARCH_tune-ppce300c3 = "ppce300c3"
-PACKAGE_EXTRA_ARCHS_tune-ppce300c3 = "${PACKAGE_EXTRA_ARCHS_tune-powerpc-nf} ppce300c3"
+# glibc configure options to make use of 603e specific sqrt/sqrtf routines
+GLIBC_EXTRA_OECONF += "${@bb.utils.contains("TUNE_FEATURES", "ppce300c3", "--with-cpu=e300c3", "", d)}"
+
+# soft-float
+TUNEVALID[ppce300c3-nf] = "Enable ppce300c3 specific processor optimizations (no fpu)"
+TUNE_FEATURES_tune-ppce300c3-nf = "${TUNE_FEATURES_tune-powerpc-nf} ppce300c3-nf"
+TUNE_PKGARCH_tune-ppce300c3-nf = "ppce300c3-nf"
+PACKAGE_EXTRA_ARCHS_tune-ppce300c3-nf = "${PACKAGE_EXTRA_ARCHS_tune-powerpc-nf} ppce300c3-nf"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "ppce300c3-nf", " -mcpu=e300c3", "", d)}"
+


More information about the Openembedded-core mailing list