This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Tests for .symver (Re: A patch for ".symver name,name2@@@nodename")


On Mon, Nov 13, 2000 at 11:10:54AM -0800, Nick Clifton wrote:
> : 2000-11-08  H.J. Lu  <hjl@gnu.org>
> : 
> : 	* config/obj-elf.c (obj_elf_symver): Reformat.
> : 	(elf_frob_symbol): Support ".symver name,name2@@@nodename".
> : 	(elf_frob_file_before_adjust): Likewise.
> : 
> : 	* doc/as.texinfo: Updated for ".symver name,name2@@@nodename"
> : 	and ".symver name,name2@@@nodename".
> : 	Fix a typo.
> 
> Well nobody seems to object to this one, so it is fine by me.
> 
> Approved.
> 
> Cheers
> 	Nick

Here are the tests for .symver.

-- 
H.J. Lu (hjl@valinux.com)
---
2000-11-13  H.J. Lu  <hjl@gnu.org>

	* gas/symver/symver.exp: New for symver test.
	* gas/symver/symver0.d: Likewise.
	* gas/symver/symver0.s: Likewise.
	* gas/symver/symver1.d: Likewise.
	* gas/symver/symver1.s: Likewise.
	* gas/symver/symver2.l: Likewise.
	* gas/symver/symver2.s: Likewise.
	* gas/symver/symver3.l: Likewise.
	* gas/symver/symver3.s: Likewise.
	* gas/symver/symver4.l: Likewise.
	* gas/symver/symver4.s: Likewise.
	* gas/symver/symver5.l: Likewise.
	* gas/symver/symver5.s: Likewise.
	* gas/symver/symver6.l: Likewise.
	* gas/symver/symver6.s: Likewise.

diff -upr --new-file /tmp/symver/symver.exp gas/symver/symver.exp
--- /tmp/symver/symver.exp	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver.exp	Wed Nov  8 16:33:37 2000
@@ -0,0 +1,48 @@
+#
+# symver tests
+#
+proc run_error_test { name opts } {
+    global srcdir subdir
+    set testname "symver $name"
+    set file $srcdir/$subdir/$name
+    gas_run ${name}.s $opts ">&dump.out"
+    if { [regexp_diff "dump.out" "${file}.l"] } then {
+	fail $testname
+	verbose "output is [file_contents "dump.out"]" 2
+	return
+    }
+    pass $testname
+}
+
+# symver is only supported by ELF targets.
+if { ([istarget "*-*-elf*"]		
+      || [istarget "*-*-linux*"])
+     && ![istarget *-*-linux*aout*]
+     && ![istarget *-*-linux*oldld*] } then {
+
+    if {[istarget "ia64-*"]} then {
+      return
+    }
+  
+    if {[istarget "hppa*64*-*-*"]} then {
+      return
+    }
+  
+    # not supported by D30V
+    if {[istarget "d30v-*-*"]} {
+      return
+    }
+
+    # not yet supported by i960
+    if {[istarget "i960-*-*"]} {
+      return
+    }
+
+    run_dump_test "symver0" 
+    run_dump_test "symver1" 
+    run_error_test "symver2" ""
+    run_error_test "symver3" ""
+    run_error_test "symver4" ""
+    run_error_test "symver5" ""
+    run_error_test "symver6" ""
+}
diff -upr --new-file /tmp/symver/symver0.d gas/symver/symver0.d
--- /tmp/symver/symver0.d	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver0.d	Thu Nov  9 00:02:04 2000
@@ -0,0 +1,6 @@
+#nm: -n
+#name: symver symver0
+
+         U foo@version1
+0+0000000 D foo1
+0+00000.. d L_foo1
diff -upr --new-file /tmp/symver/symver0.s gas/symver/symver0.s
--- /tmp/symver/symver0.s	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver0.s	Wed Nov  8 15:27:11 2000
@@ -0,0 +1,10 @@
+ 	.data
+ 	.symver bar,bar@version1
+ 	.symver bar,bar@version1
+	.globl foo1
+	.type foo1,object
+foo1:
+	.long foo
+	.symver foo,foo@version1
+L_foo1:
+	.size foo1,L_foo1-foo1
diff -upr --new-file /tmp/symver/symver1.d gas/symver/symver1.d
--- /tmp/symver/symver1.d	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver1.d	Thu Nov  9 00:02:18 2000
@@ -0,0 +1,9 @@
+#nm: -n
+#name: symver symver1
+
+         U foo@version1
+0+0000000 D foo1@@version1
+0+00000.. d L_foo1
+0+00000.. D foo2
+0+00000.. D foo2@@version1
+0+00000.. d L_foo2
diff -upr --new-file /tmp/symver/symver1.s gas/symver/symver1.s
--- /tmp/symver/symver1.s	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver1.s	Wed Nov  8 16:04:12 2000
@@ -0,0 +1,18 @@
+ 	.data
+ 	.symver bar,bar@@@version1
+ 	.symver bar,bar@@@version1
+	.globl foo1
+	.type foo1,object
+foo1:
+	.long foo
+	.symver foo,foo@@@version1
+	.symver foo1,foo1@@@version1
+L_foo1:
+	.size foo1,L_foo1-foo1
+	.globl foo2
+	.type foo2,object
+foo2:
+	.long foo
+	.symver foo2,foo2@@version1
+L_foo2:
+	.size foo2,L_foo2-foo2
diff -upr --new-file /tmp/symver/symver2.l gas/symver/symver2.l
--- /tmp/symver/symver2.l	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver2.l	Wed Nov  8 16:13:29 2000
@@ -0,0 +1,2 @@
+.*: Assembler messages:
+.*:8: Error: invalid attempt to declare external version name as default in symbol `foo@@version1'
diff -upr --new-file /tmp/symver/symver2.s gas/symver/symver2.s
--- /tmp/symver/symver2.s	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver2.s	Wed Nov  8 16:06:00 2000
@@ -0,0 +1,8 @@
+ 	.data
+	.globl foo1
+	.type foo1,object
+foo1:
+	.long foo
+	.symver foo,foo@@version1
+L_foo1:
+	.size foo1,L_foo1-foo1
diff -upr --new-file /tmp/symver/symver3.l gas/symver/symver3.l
--- /tmp/symver/symver3.l	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver3.l	Wed Nov  8 16:21:51 2000
@@ -0,0 +1,2 @@
+.*: Assembler messages:
+.*:6: Error: missing version name in `foo' for symbol `foo'
diff -upr --new-file /tmp/symver/symver3.s gas/symver/symver3.s
--- /tmp/symver/symver3.s	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver3.s	Wed Nov  8 16:21:24 2000
@@ -0,0 +1,8 @@
+ 	.data
+	.globl foo1
+	.type foo1,object
+foo1:
+	.long foo
+	.symver foo,foo
+L_foo1:
+	.size foo1,L_foo1-foo1
diff -upr --new-file /tmp/symver/symver4.l gas/symver/symver4.l
--- /tmp/symver/symver4.l	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver4.l	Wed Nov  8 16:34:42 2000
@@ -0,0 +1,2 @@
+.*: Assembler messages:
+.*:6: Error: missing version name in `foo@' for symbol `foo'
diff -upr --new-file /tmp/symver/symver4.s gas/symver/symver4.s
--- /tmp/symver/symver4.s	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver4.s	Wed Nov  8 16:34:49 2000
@@ -0,0 +1,8 @@
+ 	.data
+	.globl foo1
+	.type foo1,object
+foo1:
+	.long foo
+	.symver foo,foo@
+L_foo1:
+	.size foo1,L_foo1-foo1
diff -upr --new-file /tmp/symver/symver5.l gas/symver/symver5.l
--- /tmp/symver/symver5.l	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver5.l	Wed Nov  8 16:35:06 2000
@@ -0,0 +1,2 @@
+.*: Assembler messages:
+.*:6: Error: missing version name in `foo@@@' for symbol `foo'
diff -upr --new-file /tmp/symver/symver5.s gas/symver/symver5.s
--- /tmp/symver/symver5.s	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver5.s	Wed Nov  8 16:35:17 2000
@@ -0,0 +1,8 @@
+ 	.data
+	.globl foo1
+	.type foo1,object
+foo1:
+	.long foo
+	.symver foo,foo@@@
+L_foo1:
+	.size foo1,L_foo1-foo1
diff -upr --new-file /tmp/symver/symver6.l gas/symver/symver6.l
--- /tmp/symver/symver6.l	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver6.l	Wed Nov  8 16:15:46 2000
@@ -0,0 +1,2 @@
+.*: Assembler messages:
+.*:7: Error: multiple versions \[`foo@version1'|`foo@@version1'\] for symbol `foo'
diff -upr --new-file /tmp/symver/symver6.s gas/symver/symver6.s
--- /tmp/symver/symver6.s	Wed Dec 31 16:00:00 1969
+++ gas/symver/symver6.s	Wed Nov  8 16:14:24 2000
@@ -0,0 +1,9 @@
+ 	.data
+	.globl foo1
+	.type foo1,object
+foo1:
+	.long foo
+	.symver foo,foo@@version1
+	.symver foo,foo@version1
+L_foo1:
+	.size foo1,L_foo1-foo1

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]