Skip to contentSkip to conversation

feature-arm-thumb.inc: fix ARM_THUMB_SUFFIX for armv8

PATCH In review Andre McCurdy 1 participant 2 messages Mar 11, 2017 – Mar 17, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 feature-arm-thumb.inc: fix ARM_THUMB_SUFFIX for armv8

The current definition for ARM_THUMB_SUFFIX doesn't consider armv8 and will therefore cause TUNE_PKGARCH to be set incorrectly for machines which inherit arch-armv8 and don't include aarch64 in TUNE_FEATURES (ie when building for 32bit ARMv8).

Also fix typo in comments and improve TUNEVALID[thumb] wording.

---
 meta/conf/machine/include/arm/feature-arm-thumb.inc | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)
meta/conf/machine/include/arm/feature-arm-thumb.inc +7 -10
index 6d4747b..0b47cca 100644
@@ -1,17 +1,14 @@
-TUNEVALID[thumb] = "Use thumb instructions instead of ARM"
-ARM_THUMB_OPT = "${@['arm', 'thumb'][d.getVar('ARM_INSTRUCTION_SET') == 'thumb']}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv4',  't',  '', d)}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv5',  't',  '', d)}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6',  't',  '', d)}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 't2', '', d)}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7r', 't2', '', d)}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', 't2', '', d)}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 't2', '', d)}"
+
+TUNEVALID[thumb] = "Support Thumb instructions"
+
+ARM_THUMB_SUFFIX = "${@bb.utils.contains_any('TUNE_FEATURES', 'armv4 armv5 armv6', 't', 't2', d)}"
 
 # If the device supports ARM, then respect ARM_THUMB_OPT (which can be "arm" or "thumb")
-# If the defice doesn't support ARM, then always set "thumb" even when
+# If the device doesn't support ARM, then always set "thumb" even when
 # some recipe explicitly sets ARM_INSTRUCTION_SET to "arm"
+ARM_THUMB_OPT = "${@['arm', 'thumb'][d.getVar('ARM_INSTRUCTION_SET') == 'thumb']}"
 ARM_M_OPT = "${@bb.utils.contains('TUNE_FEATURES', 'arm', '${ARM_THUMB_OPT}', 'thumb', d)}"
+
 python () {
     if bb.utils.contains('TUNE_FEATURES', 'thumb', False, True, d):
         return
Signature · 1 line
1.9.1
#1 lore raw
Quoted 6 lines · Andre McCurdy

The current definition for ARM_THUMB_SUFFIX doesn't consider armv8 and will therefore cause TUNE_PKGARCH to be set incorrectly for machines which inherit arch-armv8 and don't include aarch64 in TUNE_FEATURES (ie when building for 32bit ARMv8).

Also fix typo in comments and improve TUNEVALID[thumb] wording.

Ping.

Quoted 37 lines
---
 meta/conf/machine/include/arm/feature-arm-thumb.inc | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)
meta/conf/machine/include/arm/feature-arm-thumb.inc +7 -11
index 6d4747b..0b47cca 100644
@@ -1,17 +1,14 @@
-TUNEVALID[thumb] = "Use thumb instructions instead of ARM"
-ARM_THUMB_OPT = "${@['arm', 'thumb'][d.getVar('ARM_INSTRUCTION_SET') == 'thumb']}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv4',  't',  '', d)}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv5',  't',  '', d)}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv6',  't',  '', d)}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7a', 't2', '', d)}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7r', 't2', '', d)}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7m', 't2', '', d)}"
-ARM_THUMB_SUFFIX .= "${@bb.utils.contains('TUNE_FEATURES', 'armv7ve', 't2', '', d)}"
+
+TUNEVALID[thumb] = "Support Thumb instructions"
+
+ARM_THUMB_SUFFIX = "${@bb.utils.contains_any('TUNE_FEATURES', 'armv4 armv5 armv6', 't', 't2', d)}"
 
 # If the device supports ARM, then respect ARM_THUMB_OPT (which can be "arm" or "thumb")
-# If the defice doesn't support ARM, then always set "thumb" even when
+# If the device doesn't support ARM, then always set "thumb" even when
 # some recipe explicitly sets ARM_INSTRUCTION_SET to "arm"
+ARM_THUMB_OPT = "${@['arm', 'thumb'][d.getVar('ARM_INSTRUCTION_SET') == 'thumb']}"
 ARM_M_OPT = "${@bb.utils.contains('TUNE_FEATURES', 'arm', '${ARM_THUMB_OPT}', 'thumb', d)}"
+
 python () {
     if bb.utils.contains('TUNE_FEATURES', 'thumb', False, True, d):
         return
--

1.9.1