See #7717
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.
> 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.
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!
Oh the irony in me@Intel passing this to Jon when me@Arm is likely to work on this.
Ross plans to add a minimal build.
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"
That was a poky commit, the oe-core version is: https://git.openembedded.org/openembedded-core/commit/?id=c88304a78e528596ca481cabe273749c286c352a Thanks Ross.
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.
The meta-arm CI has qemuarmv5, and that uses the thumb feature by default too. Does that cover your original needs?
The proper CI is internal for now, but Jon has a mirror which is public: https://gitlab.com/jonmason00/meta-arm/-/jobs/3234500301
> 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
$ MACHINE=qemuarmv5 bitbake-getvar TUNE_FEATURES TUNE_FEATURES="arm armv5 thumb dsp"
> 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.
Of course, sorry. Indeed, that isn't set. We'll look at adding it to meta-arm :)