Bug 9213

Summary: Add an autobuilder run using ARM/Thumb.
Product: [Infrastructure] AutoBuilder Reporter: Martin Jansa <Martin.Jansa>
Component: autobuilderAssignee: Ross Burton <ross.burton>
Status: RESOLVED OBSOLETE QA Contact:
Severity: normal    
Priority: Medium CC: elizabeth.flanagan, infras.ab.watcher, Infras.watcher, jon.mason, randy.macleod, richard.purdie, ross.burton
Version: unspecified   
Target Milestone: Future   
Hardware: x86   
OS: Multiple   
See Also: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Martin Jansa 2016-03-04 11:39:09 UTC
See #7717
Comment 1 Richard Purdie 2016-03-17 14:28:22 UTC
Just putting the other bug number doesn't really help here.

The issue is that qemuarm doesn't enable thumb and thumb in armv5 isn't well tested. The question is whether the qemuarm builds should select a thumb tune,  what if any complications that would cause and what if any downsides that would have.

Adding both a thumb and a non-thumb version of qemuarm isn't going to be that helpful since we'd require more build time and more build resources which are already stretched and in limited supply.
Comment 2 Martin Jansa 2016-03-18 15:39:54 UTC
> The issue is that qemuarm doesn't enable thumb and thumb in armv5 isn't well tested.

It was always enabled in my world builds.

Enabling it in one of the yocto builds or even by default in metadata should definitely improve it.

It should also prevent people from removing ARM_INSTRUCTION_SET overrides when they feel it's something old and not needed anymore (see examples in #7717).

Changing the default DISTRO config to enable thumb when available should help people which often don't understand that seeing "thumb" in TUNE_FEATURES isn't enough to get the toolchain to actually use it - but this discussion probably belongs back to closed #7717.
Comment 3 Ross Burton 2020-01-29 16:39:47 UTC
Jon: this bug is about adding a new build to the autobuilder to exercise ARM builds with Thumb enabled.  Seems more sensible for you to own this than me!
Comment 4 Ross Burton 2020-10-26 15:07:22 UTC
Oh the irony in me@Intel passing this to Jon when me@Arm is likely to work on this.
Comment 5 Randy MacLeod 2022-10-27 15:30:16 UTC
Ross plans to add a minimal build.
Comment 6 Ross Burton 2022-10-27 15:40:06 UTC
Turns out that since 3e7d26e31a724009e69788460737e07163a14051 (2018), qemuarm uses thumb:

$ MACHINE=qemuarm bitbake-getvar ARM_INSTRUCTION_SET
ARM_INSTRUCTION_SET="thumb"

$ MACHINE=qemuarm bitbake-getvar DEFAULTTUNE
DEFAULTTUNE="cortexa15thf-neon"

$ MACHINE=qemuarm bitbake-getvar TUNE_FEATURES
TUNE_FEATURES="arm vfp cortexa15 neon thumb callconvention-hard"
Comment 7 Randy MacLeod 2022-10-27 16:00:01 UTC
That was a poky commit, the oe-core version is:
   https://git.openembedded.org/openembedded-core/commit/?id=c88304a78e528596ca481cabe273749c286c352a

Thanks Ross.
Comment 8 Martin Jansa 2022-10-27 16:18:58 UTC
This was originally for enabling thumb1 on qemuarm when it still was armv5 based (because that failed to build much more often than with thumb2).

The referenced commit enables it (thumb2) for armv7a, but nowadays I don't know if anyone still cares about armv5 (I don't run world builds anymore) and I don't see any qemuarmv5 jobs on https://autobuilder.yoctoproject.org/typhoon/#/schedulers as well.
Comment 9 Ross Burton 2022-10-27 16:22:20 UTC
The meta-arm CI has qemuarmv5, and that uses the thumb feature by default too. Does that cover your original needs?
Comment 10 Ross Burton 2022-10-27 16:23:21 UTC
The proper CI is internal for now, but Jon has a mirror which is public: https://gitlab.com/jonmason00/meta-arm/-/jobs/3234500301
Comment 11 Martin Jansa 2022-10-27 16:33:38 UTC
> The meta-arm CI has qemuarmv5, and that uses the thumb feature by default too.

feature in TUNE_FEATURES or does it set ARM_INSTRUCTION_SET in the job config as well? I don't see ARM_INSTRUCTION_SET in https://gitlab.com/jonmason00/meta-arm/-/blob/master/ci/qemuarmv5.yml
Comment 12 Ross Burton 2022-10-27 16:53:55 UTC
$ MACHINE=qemuarmv5 bitbake-getvar TUNE_FEATURES
TUNE_FEATURES="arm armv5 thumb dsp"
Comment 13 Martin Jansa 2022-10-27 17:27:09 UTC
> TUNE_FEATURES="arm armv5 thumb dsp"

That only means that the qemuarmv5 is compatible with thumb, but it's not used without setting the default ARM_INSTRUCTION_SET to thumb as well.
Comment 14 Ross Burton 2022-10-27 18:18:56 UTC
Of course, sorry.  Indeed, that isn't set.  We'll look at adding it to meta-arm :)