[arm] PR target/85733 Restore be8 linking behaviour for ARMv6-M and products deriving from its capabilities

Message ID e7291c5d-9b33-4eb1-ff7b-558cd7d24182@arm.com
State New
Headers show
Series
  • [arm] PR target/85733 Restore be8 linking behaviour for ARMv6-M and products deriving from its capabilities
Related show

Commit Message

Richard Earnshaw (lists) May 11, 2018, 1:32 p.m.
My patch last year to automate passing the be8 flag to the linker had
a nasty flaw in that I forgot entirely that the ARMv6-M architecture
did not derive its capabilities directly from the ARMv6 capability
list, but was a new group of capabilities (since it needs to leave out
the ARM -- notm -- feature bit).  The feature list defined was thus
missing the be8 bit.  Furthermore, any product derived from that
feature group consequently lacked the be8 feature as well and this
included all ARMv7 and ARMv8 parts.

The fix is embarrassingly simple...

	PR target/85733
	* config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature.

Committed to trunk and gcc-8 branches.

Patch

diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in
index fce30e4..96972a0 100644
--- a/gcc/config/arm/arm-cpus.in
+++ b/gcc/config/arm/arm-cpus.in
@@ -234,7 +234,7 @@  define fgroup ARMv6zk     ARMv6k
 define fgroup ARMv6t2     ARMv6 thumb2
 # This is suspect.  ARMv6-m doesn't really pull in any useful features
 # from ARMv5* or ARMv6.
-define fgroup ARMv6m      mode32 armv3m armv4 thumb armv5 armv5e armv6
+define fgroup ARMv6m      mode32 armv3m armv4 thumb armv5 armv5e armv6 be8
 # This is suspect, the 'common' ARMv7 subset excludes the thumb2 'DSP' and
 # integer SIMD instructions that are in ARMv6T2.  */
 define fgroup ARMv7       ARMv6m thumb2 armv7