aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2003-04-29 11:52:37 +0000
committerNick Clifton <nickc@redhat.com>2003-04-29 11:52:37 +0000
commiteba874d8d0cccffd0f3d24d87f5d229d3a8c3240 (patch)
tree3f416637ef193f47d85e7a620e55ca43c054da92 /gas
parent1bae87b9e6b3c222e123b8f03fc7074e1036ef70 (diff)
downloadgdb-eba874d8d0cccffd0f3d24d87f5d229d3a8c3240.zip
gdb-eba874d8d0cccffd0f3d24d87f5d229d3a8c3240.tar.gz
gdb-eba874d8d0cccffd0f3d24d87f5d229d3a8c3240.tar.bz2
Fix problem parsing symbol version strings when they are preceeded by whitespace.
Add test to catch this problem in the future.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog5
-rw-r--r--gas/config/obj-elf.c1
-rw-r--r--gas/testsuite/ChangeLog6
-rw-r--r--gas/testsuite/gas/elf/elf.exp1
-rw-r--r--gas/testsuite/gas/elf/symver.d17
-rw-r--r--gas/testsuite/gas/elf/symver.s6
6 files changed, 36 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f9eec49..3417eb2 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,8 @@
+2003-04-29 Nick Clifton <nickc@redhat.com>
+
+ * config/obj-elf.c (obj_elf_symver): Skip whitespace before the
+ start of a version name.
+
2003-04-28 Chris Demetriou <cgd@broadcom.com>
* configure.in (mips-*-*n*bsd*): Replace with...
diff --git a/gas/config/obj-elf.c b/gas/config/obj-elf.c
index 6c15704..7c2423c 100644
--- a/gas/config/obj-elf.c
+++ b/gas/config/obj-elf.c
@@ -1269,6 +1269,7 @@ obj_elf_symver (ignore)
}
++input_line_pointer;
+ SKIP_WHITESPACE ();
name = input_line_pointer;
/* Temporarily include '@' in symbol names. */
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index e619931..381233c 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2003-04-29 Nick Clifton <nickc@redhat.com>
+
+ * gas/elf/elf.exp: Invoke symver test.
+ * gas/elf/symver.s: New test case.
+ * gas/elf/symver.d: Expected output.
+
2003-04-24 Nick Clifton <nickc@redhat.com>
* gas/ppc/astest2.s: Add tests for conditional branches with
diff --git a/gas/testsuite/gas/elf/elf.exp b/gas/testsuite/gas/elf/elf.exp
index a967cb7..c9aa34d 100644
--- a/gas/testsuite/gas/elf/elf.exp
+++ b/gas/testsuite/gas/elf/elf.exp
@@ -53,4 +53,5 @@ if { ([istarget "*-*-elf*"]
run_dump_test "section0"
run_dump_test "section1"
run_list_test "section2" "$target_machine" "-al"
+ run_dump_test "symver"
}
diff --git a/gas/testsuite/gas/elf/symver.d b/gas/testsuite/gas/elf/symver.d
new file mode 100644
index 0000000..67b8a4c
--- /dev/null
+++ b/gas/testsuite/gas/elf/symver.d
@@ -0,0 +1,17 @@
+#objdump: --syms
+#name: ELF symbol versioning
+#
+# The #... and #pass are there to match extra symbols inserted by
+# some toolchains, eg the mips-elf port will add .reginfo and .ptrd
+
+dump.o: file format .*
+
+SYMBOL TABLE:
+
+0+000 l.*d.*\.text.*0+000.*
+0+000 l.*d.*\.data.*0+000.*
+0+000 l.*d.*\.bss.*0+000.*
+#...
+0+000 l.*O.*\.data.*0+004 x
+0+000 l.*O.*\.data.*0+004 x@VERS\.0
+#pass
diff --git a/gas/testsuite/gas/elf/symver.s b/gas/testsuite/gas/elf/symver.s
new file mode 100644
index 0000000..dd2315b
--- /dev/null
+++ b/gas/testsuite/gas/elf/symver.s
@@ -0,0 +1,6 @@
+ .data
+ .type x,@object
+ .size x,4
+x:
+ .word 12
+ .symver x, x@VERS.0