OSDN Git Service

Fix problem parsing symbol version strings when they are preceeded by whitespace.
authornickc <nickc>
Tue, 29 Apr 2003 11:52:36 +0000 (11:52 +0000)
committernickc <nickc>
Tue, 29 Apr 2003 11:52:36 +0000 (11:52 +0000)
Add test to catch this problem in the future.

gas/ChangeLog
gas/config/obj-elf.c
gas/testsuite/ChangeLog
gas/testsuite/gas/elf/elf.exp
gas/testsuite/gas/elf/symver.d [new file with mode: 0644]
gas/testsuite/gas/elf/symver.s [new file with mode: 0644]

index f9eec49..3417eb2 100644 (file)
@@ -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...
index 6c15704..7c2423c 100644 (file)
@@ -1269,6 +1269,7 @@ obj_elf_symver (ignore)
     }
 
   ++input_line_pointer;
+  SKIP_WHITESPACE ();
   name = input_line_pointer;
 
   /* Temporarily include '@' in symbol names.  */
index e619931..381233c 100644 (file)
@@ -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
index a967cb7..c9aa34d 100644 (file)
@@ -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 (file)
index 0000000..67b8a4c
--- /dev/null
@@ -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 (file)
index 0000000..dd2315b
--- /dev/null
@@ -0,0 +1,6 @@
+        .data
+        .type   x,@object
+        .size   x,4
+x:
+        .word 12
+        .symver x, x@VERS.0