[OE-core] [PATCH] feature-arm-thumb: respect ARM_INSTRUCTION_SET

Martin Jansa martin.jansa at gmail.com
Fri Jul 29 17:10:07 UTC 2011


On Fri, Jul 29, 2011 at 07:04:33PM +0200, Martin Jansa wrote:
> Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
> ---
>  .../conf/machine/include/arm/feature-arm-thumb.inc |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/meta/conf/machine/include/arm/feature-arm-thumb.inc b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> index b580168..e7d392e 100644
> --- a/meta/conf/machine/include/arm/feature-arm-thumb.inc
> +++ b/meta/conf/machine/include/arm/feature-arm-thumb.inc
> @@ -5,7 +5,8 @@
>  # but requires more instructions (140% for 70% smaller code) so may be
>  # slower.
>  TUNEVALID[thumb] = "Use thumb instructions instead of ARM"
> -TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", "-mthumb", "-mno-thumb", d)}"
> +ARM_THUMB_M_OPT = "${@['-mno-thumb', '-mthumb'][bb.data.getVar('ARM_INSTRUCTION_SET', d, 1) == 'thumb']}"
> +TUNE_CCARGS += "${@bb.utils.contains("TUNE_FEATURES", "thumb", "${ARM_THUMB_M_OPT}", "${ARM_THUMB_M_OPT}", d)}"
>  OVERRIDES .= "${@bb.utils.contains("TUNE_FEATURES", "thumb", ":thumb", "", d)}"
>  
>  # Note armv7 will hit on armv7a as well
> -- 
> 1.7.6
> 

This seems to work, but be aware that _armv4t override is not respected
anymore :/.

I was using something like this to set default ARM_INSTRUCTION_SET from
distro config:

PREFERRED_ARM_INSTRUCTION_SET_armv4t   = "thumb"
PREFERRED_ARM_INSTRUCTION_SET_armv5te  = "thumb"
PREFERRED_ARM_INSTRUCTION_SET_armv5teb = "thumb"
PREFERRED_ARM_INSTRUCTION_SET         ?=  "arm"
ARM_INSTRUCTION_SET = "${PREFERRED_ARM_INSTRUCTION_SET}"

but from -e output it's clear that it's ignored
# PREFERRED_ARM_INSTRUCTION_SET_armv4t=thumb
PREFERRED_ARM_INSTRUCTION_SET_armv4t="thumb"
# PREFERRED_ARM_INSTRUCTION_SET=arm
PREFERRED_ARM_INSTRUCTION_SET="arm"
# PREFERRED_ARM_INSTRUCTION_SET_armv5te=thumb
PREFERRED_ARM_INSTRUCTION_SET_armv5te="thumb"
# PREFERRED_ARM_INSTRUCTION_SET_armv5teb=thumb
PREFERRED_ARM_INSTRUCTION_SET_armv5teb="thumb"
# ARM_INSTRUCTION_SET=${PREFERRED_ARM_INSTRUCTION_SET}
ARM_INSTRUCTION_SET="arm"

Regards,
-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20110729/3bb7debb/attachment-0002.sig>


More information about the Openembedded-core mailing list