This is the mail archive of the
mailing list for the binutils project.
Re: [RFA/ARM]: Patch to workaround ARM1176 BLX (immediate) Thumb to ARM issue
- From: Matthew Gretton-Dann <matthew dot gretton-dann at arm dot com>
- To: Nick Clifton <nickc at redhat dot com>
- Cc: "binutils at sourceware dot org" <binutils at sourceware dot org>, Richard Earnshaw <Richard dot Earnshaw at arm dot com>
- Date: Thu, 28 Jul 2011 17:57:56 +0100
- Subject: Re: [RFA/ARM]: Patch to workaround ARM1176 BLX (immediate) Thumb to ARM issue
- References: <4E3037DD.firstname.lastname@example.org> <4E316C2B.email@example.com>
On 28/07/11 15:03, Nick Clifton wrote:
* When the option is on the linker will only use BLX if the target
architecture (derived from the object files) is v6T2, v7, or
This does not seem right to me. The erratum only applies to the
ARM1176JZ-S and ARM1176JZF-S processors and only to Thumb BLX
instructions. Disabling the use of BLX in ARM mode or for pre-ARM11
cores will generate needlessly larger code.
The argument for doing it this way is that there are systems where code
is built for architecture ARMv5TE (for example) yet the devices the code
is run on is an ARM1176.
The aim of having the fix on by default for architectures before ARMv6T2
is to catch these cases.
I was also looking for the least disruptive fix to the linker code paths
so that the changes made would be easily tested.
Also when you check the Tag_CPU_arch value, please use the enum names,
not the integer values.
Noted - a patch will be forthcoming with updates following your comments
and Joseph Myers'.
Principal Engineer, PD Software - Tools, ARM Ltd