[OE-core] [PATCH 3/3] glib.inc: limit ARM_INSTRUCTION_SET over-rides to armv4/armv5

Phil Blundell pb at pbcl.net
Thu Mar 3 13:02:35 UTC 2016


On Wed, 2016-01-27 at 15:28 -0800, Andre McCurdy wrote:
> -ARM_INSTRUCTION_SET = "arm"
> +ARM_INSTRUCTION_SET_armv4 = "arm"
> +ARM_INSTRUCTION_SET_armv5 = "arm"

Although I agree that this is a net improvement over the old code in
almost all cases, this patch is not quite right.  The reason for the
original override is that there is assembler code in glib which won't
compile as Thumb-1 (but is ok in Thumb-2).  Thumb-2 is only available
in ARMv6T2 and newer architectures so with your patch it looks like
compilation on arm1136jf-s (which is ARMv6 not ARMv6T2) would now fail.

I recommend that we either:

1. Introduce a new, explicit "thumb1" override which can be enabled by
the appropriate arch-arm*.inc files, and make all the appropriate
recipes set ARM_INSTRUCTION_SET based on that; or

2. Introduce a new thumb1-compatible.inc file which contains lines like

ARM_INSTRUCTION_SET_glib-2.0 = "arm"

and let distros which want to support older ARMs and enable Thumb
include that file; or

3. Take the view that it's now nearly fifteen years since Thumb-2 was
introduced, OE-core no longer needs to pander explicitly to Thumb-1,
and we should just remove all this scar tissue entirely.  Distros that
do want to target Thumb-1 can still maintain the appropriate
compatibility stuff (which is probably only a dozen lines or so) for
themselves.

Personally I would favour #3. :-)

p.




More information about the Openembedded-core mailing list