aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/cpu-arm.c7
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/arm/nomapping.d8
-rw-r--r--gas/testsuite/gas/arm/nomapping.s19
5 files changed, 42 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 49d65ce..4166c67 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2006-03-09 Paul Brook <paul@codesourcery.com>
+
+ * cpu-arm.c (bfd_is_arm_mapping_symbol_name): Recognise additional
+ mapping symbols.
+
2006-03-09 Khem Raj <khem@mvista.com>
* elf32-arm.c(elf32_arm_finish_dynamic_sections): Use unsigned
diff --git a/bfd/cpu-arm.c b/bfd/cpu-arm.c
index 3f56e8f..a28a1f9 100644
--- a/bfd/cpu-arm.c
+++ b/bfd/cpu-arm.c
@@ -404,9 +404,12 @@ bfd_arm_get_mach_from_notes (bfd *abfd, const char *note_section)
bfd_boolean
bfd_is_arm_mapping_symbol_name (const char * name)
{
+ /* The ARM compiler outputs several obsolete forms. Recognize them
+ in addition to the standard $a, $t and $d. */
return (name != NULL)
&& (name[0] == '$')
- && ((name[1] == 'a') || (name[1] == 't') || (name[1] == 'd'))
- && (name[2] == 0);
+ && ((name[1] == 'a') || (name[1] == 't') || (name[1] == 'd')
+ || (name[1] == 'm') || (name[1] == 'f') || (name[1] == 'p'))
+ && (name[2] == 0 || name[2] == '.');
}
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index e4cf9a4..bd72b84 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-03-09 Paul Brook <paul@codesourcery.com>
+
+ * gas/arm/nomapping.d: New test.
+ * gas/arm/nomapping.s: New test.
+
2006-03-07 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/2428
diff --git a/gas/testsuite/gas/arm/nomapping.d b/gas/testsuite/gas/arm/nomapping.d
new file mode 100644
index 0000000..76f2833
--- /dev/null
+++ b/gas/testsuite/gas/arm/nomapping.d
@@ -0,0 +1,8 @@
+#nm: -n
+#name: ARM Mapping Symbols Ignored
+# This test is only valid on ELF based ports.
+#not-target: *-*-*coff *-*-pe *-*-wince *-*-*aout* *-*-netbsd *-*-riscix*
+
+# Check ARM ELF Mapping Symbols are ignored properly
+0+0 t sym1
+0+c t sym2
diff --git a/gas/testsuite/gas/arm/nomapping.s b/gas/testsuite/gas/arm/nomapping.s
new file mode 100644
index 0000000..efe92ae
--- /dev/null
+++ b/gas/testsuite/gas/arm/nomapping.s
@@ -0,0 +1,19 @@
+ .text
+ .arm
+sym1:
+ nop
+ .thumb
+ nop
+ nop
+$a.foo:
+$t.foo:
+$d.foo:
+@ Obsolete mapping symbols generated by armcc.
+$m:
+$m.foo:
+$f:
+$f.foo:
+$p:
+$p.foo:
+ .word 0
+sym2: