[OE-core] [PATCH] arch-armv7a.inc: default to Thumb2 instruction set for armv7a and above

Martin Jansa martin.jansa at gmail.com
Sat May 19 07:11:54 UTC 2018


On Fri, May 18, 2018 at 11:48:45PM -0700, Andre McCurdy wrote:
> On Fri, May 18, 2018 at 10:42 PM, Martin Jansa <martin.jansa at gmail.com> wrote:
> > This variable was always meant to be used from DISTRO config
> 
> I'm not sure if that's true. Do you have a reference?

http://git.openembedded.org/openembedded-core/commit/?id=951200673af27538beaef647a33308b4f15d1fb0
"in case we have MACHINE without "thumb" in TUNE_FEATURES and distro setting ARM_INSTRUCTION_SET to "thumb""

https://github.com/Angstrom-distribution/meta-angstrom/blob/master/conf/distro/include/angstrom.inc#L39
https://github.com/shr-distribution/meta-smartphone/blob/fido/meta-shr-distro/conf/distro/shr.conf#L150
...

> >, why not add it
> > to:
> > oe-core/meta/conf/distro/include/default-distrovars.inc
> > or
> > oe-core/meta/conf/distro/include/tcmode-default.inc
> >
> > ?
> 
> Because then it would either apply to all ARM machines, including
> those which only support Thumb1, which isn't ideal. Keeping it as part
> of the machine config makes it easy to apply selectively to armv7a and
> above where we know it's safe and desirable. Distros can of course
> still over-ride (ie the machine only sets a weak default).

You can still enable it with weak assignment only for some architectures
like Angstrom does. But I don't see any reason why not enable it for all
architectures? Yes Thumb1 isn't as good as Thumb2 but still many people
are using it, why shouldn't oe-core be tested with thumb enabled (with
armv5te qemuarm?), see:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=9213
https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
https://bugzilla.yoctoproject.org/show_bug.cgi?id=1709

> Is there a specific problem you see with the current patch?

DISTROs doing multi machine builds already need to select the right
DEFAULTTUNEs to find good compromise with common denominator of the
MACHINEs they want to support (or groups of MACHINEs they want to
support). Supporting or not supporting thumb at all is part of that
question so DISTRO should decide that, tune files already have the thumb
knob in TUNE_FEATURES to say which MACHINE is capable of supporting it.

Regards,

> 
> > On Sat, May 19, 2018 at 1:40 AM Khem Raj <raj.khem at gmail.com> wrote:
> >>
> >>
> >> On Fri, May 18, 2018 at 3:50 PM Andre McCurdy <armccurdy at gmail.com> wrote:
> >>>
> >>> Although there may still be specific cases which can benefit from the
> >>> ARM instruction set, the Thumb2 instruction set is generally a better
> >>> default for armv7a class CPUs. Distros such as Debian and Fedora have
> >>> been targeting Thumb2 by default for some time.
> >>>
> >>> Note that setting ARM_INSTRUCTION_SET has no effect unless
> >>> TUNE_FEATURES contains "thumb" (which is controlled by the "t" suffix
> >>> in DEFAULTTUNE, e.g. armv7vehf-neon -vs- armv7vethf-neon, etc) so out
> >>> of tree machine configs may need to update their DEFAULTTUNE to take
> >>> advantage of this change.
> >>
> >>
> >>
> >> I think this is a good change and we shoudl take it in thumb2 is default
> >> ISA
> >> for other major distros as well
> >>
> >> Oe based distros who ship feeds might be affected
> >>>
> >>>
> >>>
> >>> Signed-off-by: Andre McCurdy <armccurdy at gmail.com>
> >>> ---
> >>>  meta/conf/machine/include/arm/arch-armv7a.inc | 1 +
> >>>  1 file changed, 1 insertion(+)
> >>>
> >>> diff --git a/meta/conf/machine/include/arm/arch-armv7a.inc
> >>> b/meta/conf/machine/include/arm/arch-armv7a.inc
> >>> index bad1c27..a2663d8 100644
> >>> --- a/meta/conf/machine/include/arm/arch-armv7a.inc
> >>> +++ b/meta/conf/machine/include/arm/arch-armv7a.inc
> >>> @@ -1,4 +1,5 @@
> >>>  DEFAULTTUNE ?= "armv7athf"
> >>> +ARM_INSTRUCTION_SET ?= "thumb"
> >>>
> >>>  TUNEVALID[armv7a] = "Enable instructions for ARMv7-a"
> >>>  TUNECONFLICTS[armv7a] = "armv4 armv5 armv6 armv7"
> >>> --
> >>> 1.9.1
> >>>
> >>> --
> >>> _______________________________________________
> >>> Openembedded-core mailing list
> >>> Openembedded-core at lists.openembedded.org
> >>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> >>
> >> --
> >> _______________________________________________
> >> Openembedded-core mailing list
> >> Openembedded-core at lists.openembedded.org
> >> http://lists.openembedded.org/mailman/listinfo/openembedded-core

-- 
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: 195 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20180519/495f5f5f/attachment-0002.sig>


More information about the Openembedded-core mailing list