Skip to contentSkip to conversation

Update x86 tune files

PATCH In review Darren Hart 2 participants 22 messages Jan 22, 2014

lore
Share & tools
lore
#0 lore raw

v2 cover Update x86 tune files

All,

The following lays the groundwork for some rethinking of support for x86 platforms. In particular, the meta-intel layer will undergo some major refactoring once this is merged. We believe it is of value to keep as much of the tune files available in oe-core as possible, rather than isolating them all in meta-intel.

This series renames the x86-related tune files, documents best practices, updates the core2 tune file, adds a corei7 tune file, and updates the dependent machine configs. This spans oe-core and poky and I feel it is best viewed as a whole. Please forgive the cross-post.

The new corei7 tune file applies to Nehalem and Silvermont (Bay Trail) CPUs which support up to SSE4.2. This provides an appropriate demarcation line while maximizing compatibility as well as including optimal support for the current generation of the embedded CPUs (Bay Trail) by including it in the new tune. AVX (Sandy Bridge and beyond) is not included as that would not apply to Bay Trail, although it can easily be added in a corei7-avx tune file as an additional patch for users who care more about the last few percent of performance over compatibility and consolidation.

An important note and likely a point of contention: The core2 update changes the core2 arch to core2-32, making the 32 bit explicit rather than implied in order to provide a consistent naming scheme going forward with newer tunes where 64 bit would be logical assumption if not explicitly stated. See patch 5/15 for details on this bit.

Update the machines dependent on these tune files to use the new names. As we remove x86_64, the 64b x86 machines now build as core2-64 for maximum compatibility.

For reference, the corei7-64 tune defines:

    TARGET_CC_ARCH=" -m64 -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2"

While the corei2-32 tune defines:

    TARGET_CC_ARCH=" -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse"

v2:
o Replace Intel with X86 in the x86-base.inc per Martin Jansa's review
o Update the yocto-bsp substrate templates for core2 and corei7 tunes
o Update the profile-manual documentation for core2-32 terminology
o Add eglibc-ld.inc patch.... this one needs review

The following changes since commit 6e7047434fc1570146ebc942V54412b99b1c4cab4:

poky.ent: Fixed broken OE_LISTS_URL. (2014-01-21 21:58:03 +0000)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib dvhart/x86-tune-ng-v2
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=dvhart/x86-tune-ng-v2

Darren Hart (19):
x86: Replace ia32 with x86 when referring to the generic architecture
i586: Only add the current tune to PACKAGE_EXTRA_ARCHS
tune-core2: Replace -mtune=generic with -mtune=core2
tune-core2: Only add the current ARCH to PACKAGE_EXTRA_ARCHS
tune: Make 32b or 64b explicit in tune name for core2
tune-corei7: Add support for cpu-type corei7
tune: Remove tune-x86_64.inc
tune: README: Whitespace cleanup
tune: README: Document best practice
tune: README: Typographical corrections
qemux86_64: Use the core2-64 tune
genericx86: Use the core2 tune file
genericx86-64: Use the core2-64 tune
genericx86: Use new x86 tune files
genericx86: Use require instead of include
yocto-bsp: Update substrate to use the new x86 tune files eglibc-ld.inc: Update the inc file to match the new x86 tune
doc: Update profile-manual to use new core2_32 tune name
yocto-bsp: Add core2 and corei7 tune choice to x86_64

 .../profile-manual/profile-manual-usage.xml        |    8 +-
 meta-yocto-bsp/conf/machine/genericx86-64.conf     |    5 +-
 meta-yocto-bsp/conf/machine/genericx86.conf        |    5 +-
 .../conf/machine/include/genericx86-common.inc     |   16 +--
 meta/conf/machine/include/README                   |  109 ++++++++++++--------
 meta/conf/machine/include/tune-c3.inc              |    2 +-
 meta/conf/machine/include/tune-core2.inc           |   23 +++--
 meta/conf/machine/include/tune-corei7.inc          |   35 +++++++
 meta/conf/machine/include/tune-i586.inc            |    4 +-
 meta/conf/machine/include/tune-x86_64.inc          |    4 -
 .../include/{ia32-base.inc => x86-base.inc}        |   18 ++--
 meta/conf/machine/include/{ia32 => x86}/README     |    6 +-
 .../{ia32/arch-ia32.inc => x86/arch-x86.inc}       |    2 +-
 meta/conf/machine/qemux86-64.conf                  |    3 +-
 meta/recipes-core/eglibc/eglibc-ld.inc             |    4 +-
 .../arch/i386/conf/machine/{{=machine}}.conf       |   13 +--
 .../arch/x86_64/conf/machine/{{=machine}}.conf     |   23 +++--
 17 files changed, 177 insertions(+), 103 deletions(-)
 create mode 100644 meta/conf/machine/include/tune-corei7.inc
 delete mode 100644 meta/conf/machine/include/tune-x86_64.inc
 rename meta/conf/machine/include/{ia32-base.inc => x86-base.inc} (72%)
 rename meta/conf/machine/include/{ia32 => x86}/README (81%)
 rename meta/conf/machine/include/{ia32/arch-ia32.inc => x86/arch-x86.inc} (97%)
Signature · 1 line
1.7.9.5
#1 lore raw

PATCH v2 1/19 x86: Replace ia32 with x86 when referring to the generic architecture

ia32 implies 32bit, while these files provide descriptions for IA32, X86_64, and X32 architectures. The term "x86" fits this used better without resorting to using the term "Intel" which isn't quite right as it excludes things like the tune-c3 file describing a Via CPU.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/conf/machine/include/tune-c3.inc              |    2 +-
 meta/conf/machine/include/tune-i586.inc            |    2 +-
 meta/conf/machine/include/tune-x86_64.inc          |    2 +-
 .../include/{ia32-base.inc => x86-base.inc}        |   18 +++++++++---------
 meta/conf/machine/include/{ia32 => x86}/README     |    6 +++---
 .../{ia32/arch-ia32.inc => x86/arch-x86.inc}       |    2 +-
 6 files changed, 16 insertions(+), 16 deletions(-)
 rename meta/conf/machine/include/{ia32-base.inc => x86-base.inc} (72%)
 rename meta/conf/machine/include/{ia32 => x86}/README (81%)
 rename meta/conf/machine/include/{ia32/arch-ia32.inc => x86/arch-x86.inc} (97%)
meta/conf/machine/include/tune-c3.inc +1 -1
index 18865b7..fafc28a 100644
@@ -1,4 +1,4 @@
-require conf/machine/include/ia32/arch-ia32.inc
+require conf/machine/include/x86/arch-x86.inc
 
 TUNEVALID[c3] = "VIA Cyrix III or VIA C3 specific optimizations"
 TUNECONFLICTS[c3] = "m64 mx32"
meta/conf/machine/include/tune-i586.inc +1 -1
index 4542b9b..a315b35 100644
@@ -1,6 +1,6 @@
 DEFAULTTUNE ?= "i586"
 
-require conf/machine/include/ia32/arch-ia32.inc
+require conf/machine/include/x86/arch-x86.inc
 
 # Extra tune features
 TUNEVALID[i586] = "Enable i586 specific processor optimizations"
meta/conf/machine/include/tune-x86_64.inc +1 -1
index 31e06da..ae48124 100644
@@ -1,4 +1,4 @@
 DEFAULTTUNE ?= "x86-64"
 
-require conf/machine/include/ia32/arch-ia32.inc
+require conf/machine/include/x86/arch-x86.inc
 
meta/conf/machine/include/x86-base.inc renamed from meta/conf/machine/include/ia32-base.inc +9 -9
similarity index 72%
rename from meta/conf/machine/include/ia32-base.inc
rename to meta/conf/machine/include/x86-base.inc
index e15f927..d6c4d60 100644
@@ -1,9 +1,9 @@
 #
-# base machine settings for ia32-architecture BSPs
+# Base machine settings for X86 architecture BSPs
 #
 
 #
-# common settings for Intel-based machines
+# common settings for X86 machines
 #
 MACHINE_FEATURES += "screen keyboard pci usbhost ext2 ext3 x86 \
                      acpi serial usbgadget alsa"
@@ -25,28 +25,28 @@ PREFERRED_VERSION_linux-yocto ??= "3.0%"
 #
 # XSERVER subcomponents, used to build the XSERVER variable
 #
-XSERVER_IA32_BASE = "xserver-xorg \
+XSERVER_X86_BASE = "xserver-xorg \
            xf86-input-mouse \
            xf86-input-keyboard \
            xf86-input-evdev \
            xf86-input-synaptics \
            "
 
-XSERVER_IA32_EXT = " \
+XSERVER_X86_EXT = " \
            ${@base_contains('DISTRO_FEATURES', 'opengl', 'xserver-xorg-extension-glx', '', d)} \
            xserver-xorg-module-libint10 \
            "
 
-XSERVER_IA32_I915 = "xf86-video-intel \
+XSERVER_X86_I915 = "xf86-video-intel \
            ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i915', '', d)} \
            "
 
-XSERVER_IA32_I965 = "xf86-video-intel \
+XSERVER_X86_I965 = "xf86-video-intel \
            ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i965', '', d)} \
            "
 
-XSERVER_IA32_VESA = "xf86-video-vesa"
+XSERVER_X86_VESA = "xf86-video-vesa"
 
-XSERVER_IA32_FBDEV = "xf86-video-fbdev"
+XSERVER_X86_FBDEV = "xf86-video-fbdev"
 
-XSERVER_IA32_MODESETTING = "xf86-video-modesetting"
+XSERVER_X86_MODESETTING = "xf86-video-modesetting"
meta/conf/machine/include/x86/README renamed from meta/conf/machine/include/ia32/README +3 -3
similarity index 81%
rename from meta/conf/machine/include/ia32/README
rename to meta/conf/machine/include/x86/README
index 8f80a5b..d8b6793 100644
@@ -1,12 +1,12 @@
 2012/03/30 - Mark Hatle <[email protected]>
  - Initial version
 
-Most of the items for the IA architecture are defined in the single 
-arch-ia32 file.
+Most of the items for the Intel architectures are defined in the single 
+arch-x86 file.
 
 Three ABIs are define, m32, mx32 and m64.
 
-The following is the list of ia32 specific variables:
+The following is the list of intel specific variables:
 
 X86ARCH32 - This is the 32-bit architecture GNU canonical arch, TUNE_ARCH.
 
meta/conf/machine/include/x86/arch-x86.inc renamed from meta/conf/machine/include/ia32/arch-ia32.inc +1 -1
similarity index 97%
rename from meta/conf/machine/include/ia32/arch-ia32.inc
rename to meta/conf/machine/include/x86/arch-x86.inc
index aa83896..298bddc 100644
@@ -1,5 +1,5 @@
 #
-# IA32 Architecture definition
+# X86 Architecture definition (IA32, X86_64, and X32)
 #
 
 DEFAULTTUNE ?= "x86"
Signature · 1 line
1.7.9.5
#2 lore raw

PATCH v2 2/19 i586: Only add the current tune to PACKAGE_EXTRA_ARCHS

The generic x86 build supports i586 by default, so this specific tune file technically doesn't add any specific ARCHes to PACKAGE_EXTRA_ARCHS. For consistency, append the current tune to PACKAGE_EXTRA_ARCHS.

Since we do not have specific tune files for i386 and i486, just drop them.

These could be added to tune-x86 version if there is a need to maintain them, but they really do not belong here.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/conf/machine/include/tune-i586.inc |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/conf/machine/include/tune-i586.inc +1 -1
index a315b35..5fbb3c7 100644
@@ -11,4 +11,4 @@ AVAILTUNES += "i586"
 TUNE_FEATURES_tune-i586 = "${TUNE_FEATURES_tune-x86} i586"
 BASE_LIB_tune-i586 = "lib"
 TUNE_PKGARCH_tune-i586 = "i586"
-PACKAGE_EXTRA_ARCHS_tune-i586 = "${PACKAGE_EXTRA_ARCHS_tune-x86} i386 i486 i586"
+PACKAGE_EXTRA_ARCHS_tune-i586 = "${PACKAGE_EXTRA_ARCHS_tune-x86} i586"
Signature · 1 line
1.7.9.5
#3 lore raw

PATCH v2 3/19 tune-core2: Replace -mtune=generic with -mtune=core2

In reply to Darren Hart

-march specifies which ISA to use. -mtune specifies which cpu-type to optimize instruction ordering for, but not which ISA to use. There are times when it may make sense to specify mtune=generic and use a more specific march, such as core2, but the opposite makes little sense at
all: use cpu-type specific ISA, but order the instructions generically. While the -mtune is implied by -march, gcc does not verify it is using -mtune=core2 with:

    gcc -Q -march=core2 --help=target

Explicitly specify -mtune=core2 to be sure.

Add a comment header describing the CPUs targeted by this tune file.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/conf/machine/include/tune-core2.inc |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
meta/conf/machine/include/tune-core2.inc +9 -1
index 85b6924..3b25197 100644
@@ -1,10 +1,18 @@
+# Settings for the GCC(1) cpu-type "core2":
+#
+#      Intel Core2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3
+#      instruction set support.
+#
+# This tune is recommended for the Intel Core 2 CPU family, including Conroe,
+# Merom and beyond, as well as the first Atom CPUs, Diamondville, and beyond.
+#
 DEFAULTTUNE ?= "core2"
 
 require conf/machine/include/tune-i586.inc
 
 # Extra tune features
 TUNEVALID[core2] = "Enable core2 specific processor optimizations"
-TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "core2", " -march=core2 -msse3 -mtune=generic -mfpmath=sse", "", d)}"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "core2", " -march=core2 -mtune=core2 -msse3 -mfpmath=sse", "", d)}"
 
 # Extra tune selections
 AVAILTUNES += "core2"
Signature · 1 line
1.7.9.5
#4 lore raw

PATCH v2 4/19 tune-core2: Only add the current ARCH to PACKAGE_EXTRA_ARCHS

In reply to Darren Hart

Inherit the PACKAGE_EXTRA_ARCHS from i586 and only explicitly add core2 here.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/conf/machine/include/tune-core2.inc |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
meta/conf/machine/include/tune-core2.inc +2 -1
index 3b25197..2500a74 100644
@@ -8,6 +8,7 @@
 #
 DEFAULTTUNE ?= "core2"
 
+# Include the previous tune to pull in PACKAGE_EXTRA_ARCHS
 require conf/machine/include/tune-i586.inc
 
 # Extra tune features
@@ -19,7 +20,7 @@ AVAILTUNES += "core2"
 TUNE_FEATURES_tune-core2 = "${TUNE_FEATURES_tune-x86} core2"
 BASE_LIB_tune-core2 = "lib"
 TUNE_PKGARCH_tune-core2 = "core2"
-PACKAGE_EXTRA_ARCHS_tune-core2 = "${PACKAGE_EXTRA_ARCHS_tune-x86} i386 i486 i586 i686 core2"
+PACKAGE_EXTRA_ARCHS_tune-core2 = "${PACKAGE_EXTRA_ARCHS_tune-i586} core2"
 
 AVAILTUNES += "core2-64"
 TUNE_FEATURES_tune-core2-64 = "${TUNE_FEATURES_tune-x86-64} core2"
Signature · 1 line
1.7.9.5
#5 lore raw

PATCH v2 5/19 tune: Make 32b or 64b explicit in tune name for core2

In reply to Darren Hart

Core2 has both a 32b and a 64b variant. Currently, core2 implies 32b, while core2_64 is the 64b version. This implicit 32b mode will become confusing in later architectures, such as corei7, where it would be natural for people to assume "corei7" meant 64 bit.

Rather than carrying forward an implicit 32b mode and rather than changing the naming scheme part way through the architecture hiearchy, make the 32b and 64b variant explicit in the tune name by changing core2 to core2_32.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/conf/machine/include/tune-core2.inc |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
meta/conf/machine/include/tune-core2.inc +6 -6
index 2500a74..11517dc 100644
@@ -6,7 +6,7 @@
 # This tune is recommended for the Intel Core 2 CPU family, including Conroe,
 # Merom and beyond, as well as the first Atom CPUs, Diamondville, and beyond.
 #
-DEFAULTTUNE ?= "core2"
+DEFAULTTUNE ?= "core2-32"
 
 # Include the previous tune to pull in PACKAGE_EXTRA_ARCHS
 require conf/machine/include/tune-i586.inc
@@ -16,11 +16,11 @@ TUNEVALID[core2] = "Enable core2 specific processor optimizations"
 TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "core2", " -march=core2 -mtune=core2 -msse3 -mfpmath=sse", "", d)}"
 
 # Extra tune selections
-AVAILTUNES += "core2"
-TUNE_FEATURES_tune-core2 = "${TUNE_FEATURES_tune-x86} core2"
-BASE_LIB_tune-core2 = "lib"
-TUNE_PKGARCH_tune-core2 = "core2"
-PACKAGE_EXTRA_ARCHS_tune-core2 = "${PACKAGE_EXTRA_ARCHS_tune-i586} core2"
+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"
 
 AVAILTUNES += "core2-64"
 TUNE_FEATURES_tune-core2-64 = "${TUNE_FEATURES_tune-x86-64} core2"
Signature · 1 line
1.7.9.5
#6 lore raw

PATCH v2 6/19 tune-corei7: Add support for cpu-type corei7

In reply to Darren Hart

corei7 offers a significant advancement since the previous core2 cpu-type described in the tune-core2 file.

From the GCC(1):
Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3,
SSSE3, SSE4.1 and SSE4.2 instruction set support.

This offers optimizations for Nehalem and Silvermont (e.g. Bay Trail) CPUs (and beyond).

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/conf/machine/include/tune-corei7.inc |   35 +++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 meta/conf/machine/include/tune-corei7.inc
meta/conf/machine/include/tune-corei7.inc new file +35 -0
new file mode 100644
index 0000000..5464fed
@@ -0,0 +1,35 @@
+# Settings for the GCC(1) cpu-type "corei7":
+#
+#     Intel Core i7 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1
+#     and SSE4.2 instruction set support.
+#
+# This tune is recommended for Intel Nehalem and Silvermont (e.g. Bay Trail) CPUs
+# (and beyond).
+#
+DEFAULTTUNE ?= "corei7-64"
+
+# Pull in the previous tune in to pull in PACKAGE_EXTRA_ARCHS
+require conf/machine/include/tune-core2.inc
+
+# Extra tune features
+TUNEVALID[corei7] = "Enable corei7 specific processor optimizations"
+TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "corei7", " -march=corei7 -mtune=corei7 -mfpmath=sse -msse4.2", "", d)}"
+
+# Extra tune selections
+AVAILTUNES += "corei7-32"
+TUNE_FEATURES_tune-corei7-32 = "${TUNE_FEATURES_tune-x86} corei7"
+BASE_LIB_tune-corei7-32 = "lib"
+TUNE_PKGARCH_tune-corei7-32 = "corei7_32"
+PACKAGE_EXTRA_ARCHS_tune-corei7-32 = "${PACKAGE_EXTRA_ARCHS_tune-core2} corei7_32"
+
+AVAILTUNES += "corei7-64"
+TUNE_FEATURES_tune-corei7-64 = "${TUNE_FEATURES_tune-x86-64} corei7"
+BASE_LIB_tune-corei7-64 = "lib64"
+TUNE_PKGARCH_tune-corei7-64 = "corei7_64"
+PACKAGE_EXTRA_ARCHS_tune-corei7-64 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64} corei7_64"
+
+AVAILTUNES += "corei7-64-x32"
+TUNE_FEATURES_tune-corei7-64-x32 = "${TUNE_FEATURES_tune-x86-64-x32} corei7"
+BASE_LIB_tune-corei7-64-x32 = "libx32"
+TUNE_PKGARCH_tune-corei7-64-x32 = "corei7_64_x32"
+PACKAGE_EXTRA_ARCHS_tune-corei7-64-x32 = "${PACKAGE_EXTRA_ARCHS_tune-core2-64-x32} corei7_64_x32"
Signature · 1 line
1.7.9.5
#7 lore raw

PATCH v2 7/19 tune: Remove tune-x86_64.inc

In reply to Darren Hart

The tune-x86_64.inc file is conceptually flawed. x86_64 is more akin to the x86 and x86-32 ABIs defined in arch-x86.inc than it is a concrete tune file, such as i586 or core2 - to the extent that everything but the default tune is defined in the arch-x86.inc file. This becomes very apparant when attempting to include tune-x86_64.inc in the x86 tune hierarchy.

Remove the tune-x86_64.inc tune file in favor of it being an ABI definition in arch-x86.inc and relying on the linear hierarchy of concrete cpu-types in tune-i586, tune-core2, and tune-corei7.

core2_64 should suffice in lieu of x86_64 for all but a couple esoteric corner cases involving older pre-core2 CPUs. In these cases, if they exist at all, the BSP can replace the include tune-x86_64.inc with arch-x86.inc and set the default tune to x86_64.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/conf/machine/include/tune-x86_64.inc |    4 ----
 1 file changed, 4 deletions(-)
 delete mode 100644 meta/conf/machine/include/tune-x86_64.inc
meta/conf/machine/include/tune-x86_64.inc deleted +0 -4
deleted file mode 100644
index ae48124..0000000
@@ -1,4 +0,0 @@
-DEFAULTTUNE ?= "x86-64"
-
-require conf/machine/include/x86/arch-x86.inc
-
Signature · 1 line
1.7.9.5
#8 lore raw

PATCH v2 8/19 tune: README: Whitespace cleanup

In reply to Darren Hart

Before making content changes, cleanup the various whitespace errors in this file. Mostly end-of-line whitepsace.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/conf/machine/include/README |   88 +++++++++++++++++++-------------------
 1 file changed, 44 insertions(+), 44 deletions(-)
meta/conf/machine/include/README +44 -44
index e4b59c9..65d0942 100644
@@ -1,27 +1,27 @@
 2012/03/30 - Mark Hatle <[email protected]>
  - Initial Revision
 
-The individual CPU, and ABI tunings are contained in this directory.  A 
-number of local and global variables are used to control the way the 
-tunings are setup and how they work together to specify an optimized 
+The individual CPU, and ABI tunings are contained in this directory.  A
+number of local and global variables are used to control the way the
+tunings are setup and how they work together to specify an optimized
 configuration.
 
-The following is brief summary of the generic components that are used 
+The following is brief summary of the generic components that are used
 in these tunings.
 
-AVAILTUNES - This is a list of all of the tuning definitions currently 
-available in the system.  Not all tunes in this list may be compatible 
-with the machine configuration, or each other in a multilib 
-configuration.  Each tuning file can add to this list using "+=", but 
+AVAILTUNES - This is a list of all of the tuning definitions currently
+available in the system.  Not all tunes in this list may be compatible
+with the machine configuration, or each other in a multilib
+configuration.  Each tuning file can add to this list using "+=", but
 should never replace the list using "=".
 
-DEFAULTTUNE - This specifies the tune to use for a particular build.  
-Each tune should specify a reasonable default, which can be overriden by 
-a machine or multilib configuration.  The specified tune must be listed 
+DEFAULTTUNE - This specifies the tune to use for a particular build.
+Each tune should specify a reasonable default, which can be overriden by
+a machine or multilib configuration.  The specified tune must be listed
 in the AVAILTUNES.
 
-TUNEVALID[feature] - The <feature> is defined with a human readable 
-explanation for what it does.  All architectural, cpu, abi, etc tuning 
+TUNEVALID[feature] - The <feature> is defined with a human readable
+explanation for what it does.  All architectural, cpu, abi, etc tuning
 features must be defined using TUNEVALID.
 
 TUNECONFLICTS[feature] - A list of features which conflict with <feature>.
@@ -31,51 +31,51 @@ tuning ends up with features which conflict with each other.
 TUNE_FEATURES - This is automatically defined as TUNE_FEATURES_tune-<tune>.
 See TUNE_FEATURES_tune-<tune> for more information.
 
-TUNE_FEATURES_tune-<tune> - Specify the features used to describe a 
-specific tune.  This is a list of features that a tune support, each 
-feature must be in the TUNEVALID list.  Note: the tune and a given 
-feature name may be the same, but they have different purposes.  Only 
-features may be used to change behavior, while tunes are used to 
+TUNE_FEATURES_tune-<tune> - Specify the features used to describe a
+specific tune.  This is a list of features that a tune support, each
+feature must be in the TUNEVALID list.  Note: the tune and a given
+feature name may be the same, but they have different purposes.  Only
+features may be used to change behavior, while tunes are used to
 describe an overall set of features.
 
-ABIEXTENSION - An ABI extension may be specified by a specific feature 
-or other tuning setting, such as TARGET_FPU.  Any ABI extensions either 
-need to be defined in the architectures base arch file, i.e.  
-ABIEXTENSION = "eabi" in the arm case, or appended to in specific tune 
+ABIEXTENSION - An ABI extension may be specified by a specific feature
+or other tuning setting, such as TARGET_FPU.  Any ABI extensions either
+need to be defined in the architectures base arch file, i.e.
+ABIEXTENSION = "eabi" in the arm case, or appended to in specific tune
 files with a ".=".  Spaces are not allowed in this variable.
 
-TUNE_CCARGS - Setup the cflags based on the TUNE_FEATURES settings.  
-These should be additive when defined using "+=".  All items in this 
-list should be dynamic! i.e. 
+TUNE_CCARGS - Setup the cflags based on the TUNE_FEATURES settings.
+These should be additive when defined using "+=".  All items in this
+list should be dynamic! i.e.
 ${@bb.utils.contains("TUNE_FEATURES", "feature", "cflag", "!cflag", d)}
 
-TUNE_ARCH - The GNU canonical arch for a specific architecture.  i.e. 
-arm, armeb, mips, mips64, etc.  This value is by bitbake to setup 
-configure. TUNE_ARCH definitions are specific to a given architecture.  
-They may be a single static definitions, or may be dynamically adjusted.  
+TUNE_ARCH - The GNU canonical arch for a specific architecture.  i.e.
+arm, armeb, mips, mips64, etc.  This value is by bitbake to setup
+configure. TUNE_ARCH definitions are specific to a given architecture.
+They may be a single static definitions, or may be dynamically adjusted.
 See each architectures README for details for that CPU family.
 
-TUNE_PKGARCH - The package architecture used by the packaging systems to 
-define the architecture, abi and tuning of a particular package.  
-Similarly to TUNE_ARCH, the definition of TUNE_PKGARCH is specific to 
-each architecture. See each architectures README for details for that 
+TUNE_PKGARCH - The package architecture used by the packaging systems to
+define the architecture, abi and tuning of a particular package.
+Similarly to TUNE_ARCH, the definition of TUNE_PKGARCH is specific to
+each architecture. See each architectures README for details for that
 CPU family.
 
-PACKAGE_EXTRA_ARCHS - Lists all runtime compatible package 
-architectures.  By default this is equal to 
-PACKAGE_EXTRA_ARCHS_tune-<tune>.  If an architecture deviates from the 
+PACKAGE_EXTRA_ARCHS - Lists all runtime compatible package
+architectures.  By default this is equal to
+PACKAGE_EXTRA_ARCHS_tune-<tune>.  If an architecture deviates from the
 default it will be listed in the architecture README.
 
-PACKAGE_EXTRA_ARCHS_tune-<tune> - List all of the package architectures 
-that are compatible with this specific tune.  The package arch of this 
+PACKAGE_EXTRA_ARCHS_tune-<tune> - List all of the package architectures
+that are compatible with this specific tune.  The package arch of this
 tune must be in the list.
 
-TARGET_FPU - The FPU setting for a given tune, hard (generate floating 
-point instructions), soft (generate internal gcc calls), "other" 
-architecture specific floating point.  This is synchronized with the 
-compiler and other toolchain items.  This should be dynamically 
+TARGET_FPU - The FPU setting for a given tune, hard (generate floating
+point instructions), soft (generate internal gcc calls), "other"
+architecture specific floating point.  This is synchronized with the
+compiler and other toolchain items.  This should be dynamically
 configured in the same way that TUNE_CCARGS is.
 
-BASE_LIB_tune-<tune> - The "/lib" location for a specific ABI.  This is 
-used in a multilib configuration to place the libraries in the correct, 
+BASE_LIB_tune-<tune> - The "/lib" location for a specific ABI.  This is
+used in a multilib configuration to place the libraries in the correct,
 non-conflicting locations.
Signature · 1 line
1.7.9.5
#9 lore raw

PATCH v2 9/19 tune: README: Document best practice

In reply to Darren Hart

Describe the expected usage of base architecture tune files and arch-specific files, specifically the stacking of generations.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/conf/machine/include/README |   19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
meta/conf/machine/include/README +19 -0
index 65d0942..6c390ad 100644
@@ -1,6 +1,9 @@
 2012/03/30 - Mark Hatle <[email protected]>
  - Initial Revision
 
+
+Introduction
+============
 The individual CPU, and ABI tunings are contained in this directory.  A
 number of local and global variables are used to control the way the
 tunings are setup and how they work together to specify an optimized
@@ -79,3 +82,19 @@ configured in the same way that TUNE_CCARGS is.
 BASE_LIB_tune-<tune> - The "/lib" location for a specific ABI.  This is
 used in a multilib configuration to place the libraries in the correct,
 non-conflicting locations.
+
+
+Best Practice
+=============
+The tune infrastructure is designed to be hierarchical. When writing a
+new tune file for a "fast-forward" CPU architecture (one that supports
+everything from a previous generation), it is recommended to require the
+previous generation tune file and specify PACKAGE_EXTRA_ARCHS using the
+previous generation's override and appending the new tune. Note that
+only one previous tune file should be included to avoid mutiple includes
+of the base arch which could lead to a broken configuration due to
+multiple prepend and append assignments.
+
+For example, for x86, there is a common x86/arch-x86.inc which is
+included in the base i586 tune file. The core2 tune builds
+on that, and corei7 builds on core2.
Signature · 1 line
1.7.9.5
#10 lore raw

PATCH v2 10/19 tune: README: Typographical corrections

In reply to Darren Hart

No new content, just correcting a few typographical errors.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/conf/machine/include/README |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
meta/conf/machine/include/README +3 -3
index 6c390ad..d66130a 100644
@@ -53,10 +53,10 @@ list should be dynamic! i.e.
 ${@bb.utils.contains("TUNE_FEATURES", "feature", "cflag", "!cflag", d)}
 
 TUNE_ARCH - The GNU canonical arch for a specific architecture.  i.e.
-arm, armeb, mips, mips64, etc.  This value is by bitbake to setup
+arm, armeb, mips, mips64, etc.  This value is used by bitbake to setup
 configure. TUNE_ARCH definitions are specific to a given architecture.
-They may be a single static definitions, or may be dynamically adjusted.
-See each architectures README for details for that CPU family.
+They may be a single static definition, or may be dynamically adjusted.
+See each architecture's README for details for that CPU family.
 
 TUNE_PKGARCH - The package architecture used by the packaging systems to
 define the architecture, abi and tuning of a particular package.
Signature · 1 line
1.7.9.5
#11 lore raw

PATCH v2 11/19 qemux86_64: Use the core2-64 tune

In reply to Darren Hart

As x86_64 has been "demoted" to an ABI definition rather than a concrete tune file, replace it with core2-64 for the qemux86-64 machine.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/conf/machine/qemux86-64.conf |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
meta/conf/machine/qemux86-64.conf +2 -1
index c572225..6533e56 100644
@@ -8,7 +8,8 @@ PREFERRED_PROVIDER_virtual/libgles1 ?= "mesa"
 PREFERRED_PROVIDER_virtual/libgles2 ?= "mesa"
 
 require conf/machine/include/qemu.inc
-require conf/machine/include/tune-x86_64.inc
+DEFAULTTUNE ?= "core2-64"
+require conf/machine/include/tune-core2.inc
 
 KERNEL_IMAGETYPE = "bzImage"
 
Signature · 1 line
1.7.9.5
#12 lore raw

PATCH v2 12/19 genericx86: Use the core2 tune file

In reply to Darren Hart

Aside from the movbe and specialized instruction scheduling for the lack of out-of-order scheduling in the older Atom CPUs, the core2 tune covers these CPUs adequately. Since the current atom tune just uses core2 anyway, go ahead and make this explicit here.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
Cc Ross Burton <[email protected]>>
---
 meta-yocto-bsp/conf/machine/genericx86.conf |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
meta-yocto-bsp/conf/machine/genericx86.conf +2 -1
index 9d29f62..549fc8e 100644
@@ -3,5 +3,6 @@
 
 #@DESCRIPTION: Machine configuration for generic X86 (32-bit) PCs. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
 
-include conf/machine/include/tune-atom.inc
+DEFAULTTUNE ?= "core2-32"
+include conf/machine/include/tune-core2.inc
 include conf/machine/include/genericx86-common.inc
Signature · 1 line
1.7.9.5
#13 lore raw

PATCH v2 13/19 genericx86-64: Use the core2-64 tune

In reply to Darren Hart

As x86_64 has been "demoted" to an ABI definition rather than a concrete tune file, replace it with core2-64 for the genericx86-64 machine.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
Cc Ross Burton <[email protected]>
---
 meta-yocto-bsp/conf/machine/genericx86-64.conf |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
meta-yocto-bsp/conf/machine/genericx86-64.conf +2 -1
index 56e9bb6..a6154cd 100644
@@ -3,5 +3,6 @@
 
 #@DESCRIPTION: Machine configuration for generic X86_64 (64-bit) PCs and servers. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
 
-include conf/machine/include/tune-x86_64.inc
+DEFAULTTUNE ?= "core2-64"
+include conf/machine/include/tune-core2.inc
 include conf/machine/include/genericx86-common.inc
Signature · 1 line
1.7.9.5
#14 lore raw

PATCH v2 14/19 genericx86: Use new x86 tune files

In reply to Darren Hart

Use the new names for the x86 tunes files (x86 instead of ia32).

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
Cc Ross Burton <[email protected]>
---
 .../conf/machine/include/genericx86-common.inc     |   16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
meta-yocto-bsp/conf/machine/include/genericx86-common.inc +8 -8
index c5ef358..66bfd19 100644
@@ -1,16 +1,16 @@
-include conf/machine/include/ia32-base.inc
+include conf/machine/include/x86-base.inc
 MACHINE_FEATURES += "wifi efi pcbios"
 
 PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
 PREFERRED_VERSION_linux-yocto ?= "3.10%"
 PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
-XSERVER ?= "${XSERVER_IA32_BASE} \
-            ${XSERVER_IA32_EXT} \
-            ${XSERVER_IA32_I915} \
-            ${XSERVER_IA32_I965} \
-            ${XSERVER_IA32_FBDEV} \
-            ${XSERVER_IA32_VESA} \
-            ${XSERVER_IA32_MODESETTING} \
+XSERVER ?= "${XSERVER_X86_BASE} \
+            ${XSERVER_X86_EXT} \
+            ${XSERVER_X86_I915} \
+            ${XSERVER_X86_I965} \
+            ${XSERVER_X86_FBDEV} \
+            ${XSERVER_X86_VESA} \
+            ${XSERVER_X86_MODESETTING} \
            "
 
 MACHINE_EXTRA_RRECOMMENDS += "linux-firmware v86d eee-acpi-scripts"
Signature · 1 line
1.7.9.5
#15 lore raw

PATCH v2 15/19 genericx86: Use require instead of include

In reply to Darren Hart

Use require instead of include to avoid silent errors when the required tune files change name or are moved. It's going to fail anyway, it might as well fail with an error message that is immediately helpful.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
Cc Ross Burton <[email protected]>
---
 meta-yocto-bsp/conf/machine/genericx86-64.conf |    4 ++--
 meta-yocto-bsp/conf/machine/genericx86.conf    |    4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)
meta-yocto-bsp/conf/machine/genericx86-64.conf +2 -2
index a6154cd..f76e35a 100644
@@ -4,5 +4,5 @@
 #@DESCRIPTION: Machine configuration for generic X86_64 (64-bit) PCs and servers. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
 
 DEFAULTTUNE ?= "core2-64"
-include conf/machine/include/tune-core2.inc
-include conf/machine/include/genericx86-common.inc
+require conf/machine/include/tune-core2.inc
+require conf/machine/include/genericx86-common.inc
meta-yocto-bsp/conf/machine/genericx86.conf +2 -2
index 549fc8e..2642cab 100644
@@ -4,5 +4,5 @@
 #@DESCRIPTION: Machine configuration for generic X86 (32-bit) PCs. Supports a moderately wide range of drivers that should boot and be usable on "typical" hardware.
 
 DEFAULTTUNE ?= "core2-32"
-include conf/machine/include/tune-core2.inc
-include conf/machine/include/genericx86-common.inc
+require conf/machine/include/tune-core2.inc
+require conf/machine/include/genericx86-common.inc
Signature · 1 line
1.7.9.5
#16 lore raw

PATCH v2 16/19 yocto-bsp: Update substrate to use the new x86 tune files

In reply to Darren Hart

Update the substrates to use x86-base instead of ia32-base and core2-64 instead of x86-64. Update the core2 bit to include the DEFAULTTUNE to be explicit.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 .../arch/i386/conf/machine/{{=machine}}.conf       |   13 +++++++------
 .../arch/x86_64/conf/machine/{{=machine}}.conf     |   15 ++++++++-------
 2 files changed, 15 insertions(+), 13 deletions(-)
scripts/lib/bsp/substrate/target/arch/i386/conf/machine/{{=machine}}.conf +7 -6
index b06ba12..2fff9b7 100644
@@ -23,9 +23,10 @@ require conf/machine/include/tune-i586.inc
 {{ if tunefile == "tune_atom": }}
 require conf/machine/include/tune-atom.inc
 {{ if tunefile == "tune_core2": }}
+DEFAULTTUNE="core2-32"
 require conf/machine/include/tune-core2.inc
 
-require conf/machine/include/ia32-base.inc
+require conf/machine/include/x86-base.inc
 
 MACHINE_FEATURES += "wifi efi pcbios"
 
@@ -46,14 +47,14 @@ MACHINE_FEATURES += "wifi efi pcbios"
 {{ if xserver == "y" and kernel_choice != "linux-yocto_3.4" and kernel_choice != "linux-yocto_3.10" and kernel_choice != "custom": xserver_choice = "xserver_i915" }}
 
 {{ if xserver == "y": }}
-XSERVER ?= "${XSERVER_IA32_BASE} \
-           ${XSERVER_IA32_EXT} \
+XSERVER ?= "${XSERVER_X86_BASE} \
+           ${XSERVER_X86_EXT} \
 {{ if xserver == "y" and xserver_choice == "xserver_vesa": }}
-           ${XSERVER_IA32_VESA} \
+           ${XSERVER_X86_VESA} \
 {{ if xserver == "y" and xserver_choice == "xserver_i915": }}
-           ${XSERVER_IA32_I915} \
+           ${XSERVER_X86_I915} \
 {{ if xserver == "y" and xserver_choice == "xserver_i965": }}
-           ${XSERVER_IA32_I965} \
+           ${XSERVER_X86_I965} \
 {{ if xserver == "y": }}
            "
 
scripts/lib/bsp/substrate/target/arch/x86_64/conf/machine/{{=machine}}.conf +8 -7
index 2bf2226..6685d07 100644
@@ -14,8 +14,9 @@ PREFERRED_PROVIDER_virtual/kernel ?= "{{=preferred_kernel}}"
 PREFERRED_PROVIDER_virtual/kernel ?= "{{=preferred_kernel}}"
 PREFERRED_VERSION_{{=preferred_kernel}} ?= "{{=preferred_kernel_version}}%"
 
-require conf/machine/include/tune-x86_64.inc
-require conf/machine/include/ia32-base.inc
+DEFAULTTUNE ?= "core2-64"
+require conf/machine/include/tune-core2.inc
+require conf/machine/include/x86-base.inc
 
 MACHINE_FEATURES += "wifi efi pcbios"
 
@@ -28,14 +29,14 @@ MACHINE_FEATURES += "wifi efi pcbios"
 {{ input type:"choice" val:"xserver_i915" msg:"i915 xserver support" }}
 {{ input type:"choice" val:"xserver_i965" msg:"i965 xserver support" }}
 {{ if xserver == "y": }}
-XSERVER ?= "${XSERVER_IA32_BASE} \
-           ${XSERVER_IA32_EXT} \
+XSERVER ?= "${XSERVER_X86_BASE} \
+           ${XSERVER_X86_EXT} \
 {{ if xserver == "y" and xserver_choice == "xserver_vesa": }}
-           ${XSERVER_IA32_VESA} \
+           ${XSERVER_X86_VESA} \
 {{ if xserver == "y" and xserver_choice == "xserver_i915": }}
-           ${XSERVER_IA32_I915} \
+           ${XSERVER_X86_I915} \
 {{ if xserver == "y" and xserver_choice == "xserver_i965": }}
-           ${XSERVER_IA32_I965} \
+           ${XSERVER_X86_I965} \
 {{ if xserver == "y": }}
            "
 
Signature · 1 line
1.7.9.5
#17 lore raw

PATCH v2 17/19 eglibc-ld.inc: Update the inc file to match the new x86 tune

In reply to Darren Hart

I created this after a git grep to look for files impacted by the x86 tune changes. I need a careful review here to determine if this is in fact the right thing to do.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/recipes-core/eglibc/eglibc-ld.inc |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
meta/recipes-core/eglibc/eglibc-ld.inc +3 -1
index b1701f00..6261ae3 100644
@@ -22,11 +22,13 @@ def eglibc_dl_info(d):
         "powerpc-nf": ["ld.so.1", "FLAG_ELF_LIBC6"],
         "powerpc64": ["ld64.so.1", "FLAG_ELF_LIBC6"],
         "powerpc64-nf": ["ld64.so.1", "FLAG_ELF_LIBC6"],
-        "core2": ["ld-linux.so.2", "FLAG_ELF_LIBC6"],
+        "core2-32": ["ld-linux.so.2", "FLAG_ELF_LIBC6"],
         "core2-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"],
         "x86": ["ld-linux.so.2", "FLAG_ELF_LIBC6"],
         "x86-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"],
         "i586": ["ld-linux.so.2", "FLAG_ELF_LIBC6"],
+        "corei7-32": ["ld-linux.so.2", "FLAG_ELF_LIBC6"],
+        "corei7-64": ["ld-linux-x86-64.so.2", "FLAG_ELF_LIBC6"],
     }
 
     infos = {'ldconfig':set(), 'lddrewrite':set()}
Signature · 1 line
1.7.9.5
#18 lore raw

PATCH v2 18/19 doc: Update profile-manual to use new core2_32 tune name

In reply to Darren Hart

Replace core2 with core2_32 where appropriate for the new x86 tune naming.

Cc Scott Rifenbark <[email protected]>>
Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 .../profile-manual/profile-manual-usage.xml        |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
documentation/profile-manual/profile-manual-usage.xml +4 -4
index faae645..5577b1b 100644
@@ -381,13 +381,13 @@
                 build/tmp/deploy/rpm/* on the host system. Find the
                 busybox-dbg-...rpm file and copy it to the target. For example:
                 <literallayout class='monospaced'>
-     [trz@empanada core2]$ scp /home/trz/yocto/crownbay-tracing-dbg/build/tmp/deploy/rpm/core2/busybox-dbg-1.20.2-r2.core2.rpm [email protected]:
+     [trz@empanada core2]$ scp /home/trz/yocto/crownbay-tracing-dbg/build/tmp/deploy/rpm/core2_32/busybox-dbg-1.20.2-r2.core2_32.rpm [email protected]:
      [email protected]'s password:
-     busybox-dbg-1.20.2-r2.core2.rpm                     100% 1826KB   1.8MB/s   00:01
+     busybox-dbg-1.20.2-r2.core2_32.rpm                     100% 1826KB   1.8MB/s   00:01
                 </literallayout>
                 Now install the debug rpm on the target:
                 <literallayout class='monospaced'>
-     root@crownbay:~# rpm -i busybox-dbg-1.20.2-r2.core2.rpm
+     root@crownbay:~# rpm -i busybox-dbg-1.20.2-r2.core2_32.rpm
                 </literallayout>
                 Now that the debuginfo is installed, we see that the busybox
                 entries now display their functions symbolically:
@@ -3024,7 +3024,7 @@
                 First cd into the build directory that contains the hello
                 executable:
                 <literallayout class='monospaced'>
-     $ cd build/tmp/work/core2-poky-linux/lttng-ust/2.0.5-r0/git/tests/hello/.libs
+     $ cd build/tmp/work/core2_32-poky-linux/lttng-ust/2.0.5-r0/git/tests/hello/.libs
                 </literallayout>
                 Copy that over to the target machine:
                 <literallayout class='monospaced'>
Signature · 1 line
1.7.9.5
#19 lore raw

PATCH v2 19/19 yocto-bsp: Add core2 and corei7 tune choice to x86_64

In reply to Darren Hart

Update the x86_64 architecture bsp creator to include choices for core2 and corei7 tune files.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 .../arch/x86_64/conf/machine/{{=machine}}.conf     |    8 ++++++++
 1 file changed, 8 insertions(+)
scripts/lib/bsp/substrate/target/arch/x86_64/conf/machine/{{=machine}}.conf +8 -0
index 6685d07..53e8e92 100644
@@ -14,8 +14,16 @@ PREFERRED_PROVIDER_virtual/kernel ?= "{{=preferred_kernel}}"
 PREFERRED_PROVIDER_virtual/kernel ?= "{{=preferred_kernel}}"
 PREFERRED_VERSION_{{=preferred_kernel}} ?= "{{=preferred_kernel_version}}%"
 
+{{ input type:"choicelist" name:"tunefile" prio:"40" msg:"Which machine tuning would you like to use?" default:"tune_core2" }}
+{{ input type:"choice" val:"tune_core2" msg:"Core2 tuning optimizations" }}
+{{ input type:"choice" val:"tune_corei7" msg:"Corei7 tuning optimizations" }}
+{{ if tunefile == "tune_core2": }}
 DEFAULTTUNE ?= "core2-64"
 require conf/machine/include/tune-core2.inc
+{{ if tunefile == "tune_corei7": }}
+DEFAULTTUNE ?= "corei7-64"
+require conf/machine/include/tune-corei7.inc
+
 require conf/machine/include/x86-base.inc
 
 MACHINE_FEATURES += "wifi efi pcbios"
Signature · 1 line
1.7.9.5
#20 lore raw

Re: [PATCH 01/19] x86: Replace ia32 with x86 when referring to the generic architecture

In reply to Darren Hart
Quoted 120 lines · Darren Hart

ia32 implies 32bit, while these files provide descriptions for IA32, X86_64, and X32 architectures. The term "x86" fits this used better without resorting to using the term "Intel" which isn't quite right as it excludes things like the tune-c3 file describing a Via CPU.

Cc Richard Purdie <[email protected]>
Cc Paul Eggleton <[email protected]>
Cc Tom Zanussi <[email protected]>
Cc Nitin Kamble <[email protected]>
Cc Mark Hatle <[email protected]>
Cc Bruce Ashfield <[email protected]>
Cc Martin Jansa <[email protected]>
---
 meta/conf/machine/include/tune-c3.inc              |    2 +-
 meta/conf/machine/include/tune-i586.inc            |    2 +-
 meta/conf/machine/include/tune-x86_64.inc          |    2 +-
 .../include/{ia32-base.inc => x86-base.inc}        |   18 +++++++++---------
 meta/conf/machine/include/{ia32 => x86}/README     |    6 +++---
 .../{ia32/arch-ia32.inc => x86/arch-x86.inc}       |    2 +-
 6 files changed, 16 insertions(+), 16 deletions(-)
 rename meta/conf/machine/include/{ia32-base.inc => x86-base.inc} (72%)
 rename meta/conf/machine/include/{ia32 => x86}/README (81%)
 rename meta/conf/machine/include/{ia32/arch-ia32.inc => x86/arch-x86.inc} (97%)
meta/conf/machine/include/tune-c3.inc +1 -1
index 18865b7..fafc28a 100644
@@ -1,4 +1,4 @@
-require conf/machine/include/ia32/arch-ia32.inc
+require conf/machine/include/x86/arch-x86.inc
 
 TUNEVALID[c3] = "VIA Cyrix III or VIA C3 specific optimizations"
 TUNECONFLICTS[c3] = "m64 mx32"
meta/conf/machine/include/tune-i586.inc +1 -1
index 4542b9b..a315b35 100644
@@ -1,6 +1,6 @@
 DEFAULTTUNE ?= "i586"
 
-require conf/machine/include/ia32/arch-ia32.inc
+require conf/machine/include/x86/arch-x86.inc
 
 # Extra tune features
 TUNEVALID[i586] = "Enable i586 specific processor optimizations"
meta/conf/machine/include/tune-x86_64.inc +1 -1
index 31e06da..ae48124 100644
@@ -1,4 +1,4 @@
 DEFAULTTUNE ?= "x86-64"
 
-require conf/machine/include/ia32/arch-ia32.inc
+require conf/machine/include/x86/arch-x86.inc
 
meta/conf/machine/include/x86-base.inc renamed from meta/conf/machine/include/ia32-base.inc +9 -9
similarity index 72%
rename from meta/conf/machine/include/ia32-base.inc
rename to meta/conf/machine/include/x86-base.inc
index e15f927..d6c4d60 100644
@@ -1,9 +1,9 @@
 #
-# base machine settings for ia32-architecture BSPs
+# Base machine settings for X86 architecture BSPs
 #
 
 #
-# common settings for Intel-based machines
+# common settings for X86 machines
 #
 MACHINE_FEATURES += "screen keyboard pci usbhost ext2 ext3 x86 \
                      acpi serial usbgadget alsa"
@@ -25,28 +25,28 @@ PREFERRED_VERSION_linux-yocto ??= "3.0%"
 #
 # XSERVER subcomponents, used to build the XSERVER variable
 #
-XSERVER_IA32_BASE = "xserver-xorg \
+XSERVER_X86_BASE = "xserver-xorg \
            xf86-input-mouse \
            xf86-input-keyboard \
            xf86-input-evdev \
            xf86-input-synaptics \
            "
 
-XSERVER_IA32_EXT = " \
+XSERVER_X86_EXT = " \
            ${@base_contains('DISTRO_FEATURES', 'opengl', 'xserver-xorg-extension-glx', '', d)} \
            xserver-xorg-module-libint10 \
            "
 
-XSERVER_IA32_I915 = "xf86-video-intel \
+XSERVER_X86_I915 = "xf86-video-intel \
            ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i915', '', d)} \
            "
 
-XSERVER_IA32_I965 = "xf86-video-intel \
+XSERVER_X86_I965 = "xf86-video-intel \
            ${@base_contains('DISTRO_FEATURES', 'opengl', 'mesa-driver-i965', '', d)} \
            "
 
-XSERVER_IA32_VESA = "xf86-video-vesa"
+XSERVER_X86_VESA = "xf86-video-vesa"
 
-XSERVER_IA32_FBDEV = "xf86-video-fbdev"
+XSERVER_X86_FBDEV = "xf86-video-fbdev"
 
-XSERVER_IA32_MODESETTING = "xf86-video-modesetting"
+XSERVER_X86_MODESETTING = "xf86-video-modesetting"
meta/conf/machine/include/x86/README renamed from meta/conf/machine/include/ia32/README +0 -0
similarity index 81%
rename from meta/conf/machine/include/ia32/README
rename to meta/conf/machine/include/x86/README
index 8f80a5b..d8b6793 100644

meta/conf/machine/include/x86/README line 5

Quoted 7 lines
meta/conf/machine/include/x86/README renamed from meta/conf/machine/include/ia32/README +2 -2
@@ -1,12 +1,12 @@
 2012/03/30 - Mark Hatle <[email protected]>
  - Initial version
 
-Most of the items for the IA architecture are defined in the single 
-arch-ia32 file.
+Most of the items for the Intel architectures are defined in the single 
+arch-x86 file.

still few intel-isms left

meta/conf/machine/include/x86/README line 9

Quoted 4 lines
meta/conf/machine/include/x86/README renamed from meta/conf/machine/include/ia32/README +1 -1
 Three ABIs are define, m32, mx32 and m64.
 
-The following is the list of ia32 specific variables:
+The following is the list of intel specific variables:

still few intel-isms left

Quoted 19 lines
meta/conf/machine/include/x86/README renamed from meta/conf/machine/include/ia32/README +0 -0
 X86ARCH32 - This is the 32-bit architecture GNU canonical arch, TUNE_ARCH.
 
meta/conf/machine/include/x86/arch-x86.inc renamed from meta/conf/machine/include/ia32/arch-ia32.inc +1 -1
similarity index 97%
rename from meta/conf/machine/include/ia32/arch-ia32.inc
rename to meta/conf/machine/include/x86/arch-x86.inc
index aa83896..298bddc 100644
@@ -1,5 +1,5 @@
 #
-# IA32 Architecture definition
+# X86 Architecture definition (IA32, X86_64, and X32)
 #
 
 DEFAULTTUNE ?= "x86"
Signature · 1 line
1.7.9.5
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]
#21 lore raw

Re: [PATCH 01/19] x86: Replace ia32 with x86 when referring to the generic architecture

Quoted 6 lines · Martin Jansa
Quoted 6 lines
meta/conf/machine/include/x86/README renamed from meta/conf/machine/include/ia32/README +0 -0
@@ -1,12 +1,12 @@
 2012/03/30 - Mark Hatle <[email protected]>
  - Initial version
 
Quoted 8 lines

meta/conf/machine/include/x86/README line 4

Quoted 1 line
meta/conf/machine/include/x86/README renamed from meta/conf/machine/include/ia32/README +0 -1
-Most of the items for the IA architecture are defined in the

single

meta/conf/machine/include/x86/README line 4

Quoted 2 lines
meta/conf/machine/include/x86/README renamed from meta/conf/machine/include/ia32/README +1 -1
-arch-ia32 file.
+Most of the items for the Intel architectures are defined in the

single

meta/conf/machine/include/x86/README line 5

Quoted 1 line
meta/conf/machine/include/x86/README renamed from meta/conf/machine/include/ia32/README +1 -0
+arch-x86 file.

still few intel-isms left

Right you are - at least this time it wasn't made any worse ;-) Fixed though.

Quoted 7 lines

meta/conf/machine/include/x86/README line 8

Quoted 5 lines
meta/conf/machine/include/x86/README renamed from meta/conf/machine/include/ia32/README +1 -1
 Three ABIs are define, m32, mx32 and m64.
 
-The following is the list of ia32 specific variables:
+The following is the list of intel specific variables:

still few intel-isms left

Oi, thanks Martin - I appreciate the careful review.

I've pushed the following to the same contrib branch.

$ git diff origin/dvhart/x86-tune-ng-v2
meta/conf/machine/include/x86/README +2 -2
index d8b6793..2b6c46c 100644
@@ -1,12 +1,12 @@
 2012/03/30 - Mark Hatle <[email protected]>
  - Initial version
 
-Most of the items for the Intel architectures are defined in the single 
+Most of the items for the X86 architectures are defined in the single
 arch-x86 file.
 
 Three ABIs are define, m32, mx32 and m64.
 
-The following is the list of intel specific variables:
+The following is the list of X86 specific variables:
 
 X86ARCH32 - This is the 32-bit architecture GNU canonical arch, TUNE_ARCH.
 
Signature · 3 lines
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel