This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Fix farcalls on ARM v6-M
- From: Daniel Jacobowitz <dan at codesourcery dot com>
- To: binutils at sourceware dot org
- Date: Mon, 29 Mar 2010 16:44:03 -0400
- Subject: Fix farcalls on ARM v6-M
ARM v7-M isn't the only platform where we can't use ARM mode; there's
also ARM v6-M (Cortex-M1, et cetera).
I've checked in this obvious patch. Tested on arm-none-eabi.
--
Daniel Jacobowitz
CodeSourcery
2010-03-29 Daniel Jacobowitz <dan@codesourcery.com>
* elf32-arm.c (using_thumb_only): Handle v6-M.
2010-03-29 Daniel Jacobowitz <dan@codesourcery.com>
* ld-arm/arm-elf.exp (armeabitests): Add v6-M farcall test.
Index: bfd/elf32-arm.c
===================================================================
RCS file: /cvs/src/src/bfd/elf32-arm.c,v
retrieving revision 1.230
diff -u -p -r1.230 elf32-arm.c
--- bfd/elf32-arm.c 19 Mar 2010 17:04:17 -0000 1.230
+++ bfd/elf32-arm.c 29 Mar 2010 20:41:16 -0000
@@ -2985,6 +2985,9 @@ using_thumb_only (struct elf32_arm_link_
Tag_CPU_arch);
int profile;
+ if (arch == TAG_CPU_ARCH_V6_M || arch == TAG_CPU_ARCH_V6S_M)
+ return TRUE;
+
if (arch != TAG_CPU_ARCH_V7 && arch != TAG_CPU_ARCH_V7E_M)
return FALSE;
Index: ld/testsuite/ld-arm/arm-elf.exp
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/arm-elf.exp,v
retrieving revision 1.74
diff -u -p -r1.74 arm-elf.exp
--- ld/testsuite/ld-arm/arm-elf.exp 2 Mar 2010 11:40:23 -0000 1.74
+++ ld/testsuite/ld-arm/arm-elf.exp 29 Mar 2010 20:41:16 -0000
@@ -371,16 +371,19 @@ set armeabitests {
{"Thumb-Thumb farcall with BLX" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv5t" {farcall-thumb-thumb.s}
{{objdump -d farcall-thumb-thumb-blx.d}}
"farcall-thumb-thumb-blx"}
- {"Thumb-Thumb farcall M profile" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv7m" {farcall-thumb-thumb.s}
+ {"Thumb-Thumb farcall M profile" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv7-m" {farcall-thumb-thumb.s}
{{objdump -d farcall-thumb-thumb-m.d}}
"farcall-thumb-thumb-m"}
+ {"Thumb-Thumb farcall v6-M" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv6-m" {farcall-thumb-thumb.s}
+ {{objdump -d farcall-thumb-thumb-m.d}}
+ "farcall-thumb-thumb-v6-m"}
{"Thumb-Thumb farcall" "-Ttext 0x1000 --section-start .foo=0x2001014" "-march=armv4t" {farcall-thumb-thumb.s}
{{objdump -d farcall-thumb-thumb.d}}
"farcall-thumb-thumb"}
{"Thumb-Thumb farcall with BLX (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv5t" {farcall-thumb-thumb.s}
{{objdump -d farcall-thumb-thumb-blx-pic-veneer.d}}
"farcall-thumb-thumb-blx-pic-veneer"}
- {"Thumb-Thumb farcall M profile (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv7m" {farcall-thumb-thumb.s}
+ {"Thumb-Thumb farcall M profile (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv7-m" {farcall-thumb-thumb.s}
{{objdump -d farcall-thumb-thumb-m-pic-veneer.d}}
"farcall-thumb-thumb-m-pic-veneer"}
{"Thumb-Thumb farcall (PIC veneer)" "-Ttext 0x1000 --section-start .foo=0x2001014 --pic-veneer" "-march=armv4t" {farcall-thumb-thumb.s}