Files
poky/meta/conf/machine/include/arm/feature-arm-thumb.inc
Andre McCurdy 71fbb20771 feature-arm-thumb.inc: fix ARM_THUMB_SUFFIX
Since TUNE_FEATURES now either contains a CPU or an architecture (but
not both) we can't rely on finding the architecture in TUNE_FEATURES.
Use architecture specific over-rides instead.

(From OE-Core rev: 805dd4807d322dc70cef97edd68fdb3142b60fb1)

Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-09-07 07:47:24 +01:00

34 lines
1.4 KiB
PHP

TUNEVALID[thumb] = "Support Thumb instructions"
# If the device supports ARM, then respect ARM_THUMB_OPT (which can be "arm" or "thumb")
# 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
selected = d.getVar('ARM_INSTRUCTION_SET')
if selected == None:
return
used = d.getVar('ARM_M_OPT')
if selected != used:
pn = d.getVar('PN')
bb.warn("Recipe '%s' selects ARM_INSTRUCTION_SET to be '%s', but tune configuration overrides it to '%s'" % (pn, selected, used))
}
TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', ' -m${ARM_M_OPT}', '', d)}"
ARM_THUMB_SUFFIX = "t2"
ARM_THUMB_SUFFIX_armv4 = "t"
ARM_THUMB_SUFFIX_armv5 = "t"
ARM_THUMB_SUFFIX_armv6 = "t"
# Add suffix from ARM_THUMB_SUFFIX only if after all this we still set ARM_M_OPT to thumb
ARMPKGSFX_THUMB .= "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '${ARM_THUMB_SUFFIX}', '', d) if d.getVar('ARM_M_OPT') == 'thumb' else ''}"
# what about armv7m devices which don't support -marm (e.g. Cortex-M3)?
TARGET_CC_KERNEL_ARCH += "${@bb.utils.contains('TUNE_FEATURES', 'thumb', '-mno-thumb-interwork -marm', '', d)}"