aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarlos Alberto Lopez Perez <clopez@igalia.com>2018-01-15 21:02:55 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-01-18 12:49:23 +0000
commitc08f76ba0654e43074b6b964f728765918dbfb09 (patch)
tree087e3cfa52abdb593b205eeb4aeab8490ec09de2
parentf0f92d3d0f42a4a7e521b58dac53e14f9e2572a1 (diff)
downloadopenembedded-core-contrib-c08f76ba0654e43074b6b964f728765918dbfb09.tar.gz
openembedded-core-contrib-c08f76ba0654e43074b6b964f728765918dbfb09.tar.bz2
openembedded-core-contrib-c08f76ba0654e43074b6b964f728765918dbfb09.zip
tune-i686: Add new tune for better support of 686-class CPUs.
There isn't currently any tune available for i686 x86 optimizations. The tune for i586 doesn't enable i686 specific optimizations, and the one for core2 enables things that won't work on a i686 CPU (like SSE3). Make the tune for core2 inherits from this one and move there the setting of X86ARCH32. Signed-off-by: Carlos Alberto Lopez Perez <clopez@igalia.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/conf/machine/include/tune-core2.inc7
-rw-r--r--meta/conf/machine/include/tune-i686.inc27
2 files changed, 29 insertions, 5 deletions
diff --git a/meta/conf/machine/include/tune-core2.inc b/meta/conf/machine/include/tune-core2.inc
index f4ba43fbfdb..6a034666500 100644
--- a/meta/conf/machine/include/tune-core2.inc
+++ b/meta/conf/machine/include/tune-core2.inc
@@ -8,11 +8,8 @@
#
DEFAULTTUNE ?= "core2-32"
-# Set x86 target arch to i686, so that glibc enables SSE optimised memcpy, etc.
-X86ARCH32 ?= "i686"
-
# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS
-require conf/machine/include/tune-i586.inc
+require conf/machine/include/tune-i686.inc
# Extra tune features
TUNEVALID[core2] = "Enable core2 specific processor optimizations"
@@ -23,7 +20,7 @@ AVAILTUNES += "core2-32"
TUNE_FEATURES_tune-core2-32 = "${TUNE_FEATURES_tune-x86} core2"
BASE_LIB_tune-core2-32 = "lib"
TUNE_PKGARCH_tune-core2-32 = "core2-32"
-PACKAGE_EXTRA_ARCHS_tune-core2-32 = "${PACKAGE_EXTRA_ARCHS_tune-i586} core2-32"
+PACKAGE_EXTRA_ARCHS_tune-core2-32 = "${PACKAGE_EXTRA_ARCHS_tune-i686} core2-32"
AVAILTUNES += "core2-64"
TUNE_FEATURES_tune-core2-64 = "${TUNE_FEATURES_tune-x86-64} core2"
diff --git a/meta/conf/machine/include/tune-i686.inc b/meta/conf/machine/include/tune-i686.inc
new file mode 100644
index 00000000000..bdb47992090
--- /dev/null
+++ b/meta/conf/machine/include/tune-i686.inc
@@ -0,0 +1,27 @@
+#
+# The i686 CPU family was introduced with the Intel Pentium Pro in 1995.
+# It has as required feature flags: fpu tsc cx8 cmov.
+#
+# It is the minimum CPU required by the Debian i386 port.
+# https://lists.debian.org/debian-devel-announce/2016/05/msg00001.html
+#
+#
+
+DEFAULTTUNE ?= "i686"
+
+# Set x86 target arch to i686, so that glibc enables SSE optimised memcpy, etc.
+X86ARCH32 ?= "i686"
+
+# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS
+require conf/machine/include/tune-i586.inc
+
+# Extra tune features
+TUNEVALID[i686] = "Enable i686 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'i686', ' -march=i686', '', d)}"
+
+# Extra tune selections
+AVAILTUNES += "i686"
+TUNE_FEATURES_tune-i686 = "${TUNE_FEATURES_tune-x86} i686"
+BASE_LIB_tune-i686 = "lib"
+TUNE_PKGARCH_tune-i686 = "i686"
+PACKAGE_EXTRA_ARCHS_tune-i686 = "${PACKAGE_EXTRA_ARCHS_tune-i586} i686"