Fix uninitialized data in .dynsym
H.J. Lu
hjl@lucon.org
Tue Jul 10 07:10:00 GMT 2007
On Tue, Jul 10, 2007 at 11:28:37AM +0930, Alan Modra wrote:
> On Mon, Jul 09, 2007 at 05:33:01PM -0700, H.J. Lu wrote:
> > * elflink.c (bfd_elf_record_link_assignment): Handle indirect
> > symbol.
> > (_bfd_elf_merge_symbol): Properly update normal symbol when
> > overriding the versioned symbol from a dynamic library.
>
> Thanks. This is OK.
>
Here are some tests for --defsym and symbol versioning.
H.J.
----
2007-07-09 H.J. Lu <hongjiu.lu@intel.com>
* ld-elfvers/vers.exp: Add tests for --defsym.
* ld-elfvers/vers32.map: Likewise.
* ld-elfvers/vers32a.c: Likewise.
* ld-elfvers/vers32a.dsym: Likewise.
* ld-elfvers/vers32a.ver: Likewise.
* ld-elfvers/vers32b.c: Likewise.
* ld-elfvers/vers32b.dsym: Likewise.
* ld-elfvers/vers32b.ver: Likewise.
* ld-elfvers/vers32c.dsym: Likewise.
* ld-elfvers/vers32c.ver: Likewise.
* ld-elfvers/vers32d.ver: Likewise.
--- ld/testsuite/ld-elfvers/vers.exp.def 2007-07-09 06:29:45.000000000 -0700
+++ ld/testsuite/ld-elfvers/vers.exp 2007-07-09 22:55:42.000000000 -0700
@@ -991,3 +991,9 @@ build_vers_lib_pic "vers30" vers30.c ver
# Test #31 -- quoted strings in version sections.
build_vers_lib_pic "vers31" vers31.c vers31 "" vers31.map vers31.ver vers31.dsym ""
+
+# Test #32 -- linker --defsym
+build_vers_lib_pic "vers32a" vers32a.c vers32a "" vers32.map vers32a.ver vers32a.dsym ""
+build_vers_lib_pic_flags "vers32b" vers32b.c vers32b "vers32a.so" vers32.map vers32b.ver vers32b.dsym "" "--defsym foo=0"
+build_vers_lib_pic_flags "vers32c" vers32a.c vers32c "vers32a.so" vers32.map vers32c.ver vers32c.dsym "" "--defsym foo=0"
+build_vers_lib_pic_flags "vers32d" vers32a.c vers32d "" vers32.map vers32d.ver vers32c.dsym "" "--defsym foo=0"
--- ld/testsuite/ld-elfvers/vers32.map.def 2007-07-09 22:56:15.000000000 -0700
+++ ld/testsuite/ld-elfvers/vers32.map 2007-07-09 22:29:18.000000000 -0700
@@ -0,0 +1 @@
+VERS_1 { foo; };
--- ld/testsuite/ld-elfvers/vers32a.c.def 2007-07-09 22:56:15.000000000 -0700
+++ ld/testsuite/ld-elfvers/vers32a.c 2007-07-09 22:12:25.000000000 -0700
@@ -0,0 +1 @@
+void foo(void) {}
--- ld/testsuite/ld-elfvers/vers32a.dsym.def 2007-07-09 22:56:15.000000000 -0700
+++ ld/testsuite/ld-elfvers/vers32a.dsym 2007-07-09 22:40:25.000000000 -0700
@@ -0,0 +1,2 @@
+[0]* g DO \*ABS\* [0]* VERS_1 VERS_1
+[0-9a-f]* g DF (.text|\*ABS\*) [0-9a-f]* VERS_1 (0x[0-9a-f][0-9a-f] )?foo
--- ld/testsuite/ld-elfvers/vers32a.ver.def 2007-07-09 22:56:15.000000000 -0700
+++ ld/testsuite/ld-elfvers/vers32a.ver 2007-07-09 22:29:48.000000000 -0700
@@ -0,0 +1,4 @@
+Version definitions:
+[1-2] 0x01 0x0670090f vers32a.so
+[1-2] 0x00 0x05aa7921 VERS_1
+
--- ld/testsuite/ld-elfvers/vers32b.c.def 2007-07-09 22:56:15.000000000 -0700
+++ ld/testsuite/ld-elfvers/vers32b.c 2007-07-09 22:44:10.000000000 -0700
@@ -0,0 +1 @@
+/* Empty */
--- ld/testsuite/ld-elfvers/vers32b.dsym.def 2007-07-09 22:56:15.000000000 -0700
+++ ld/testsuite/ld-elfvers/vers32b.dsym 2007-07-09 22:49:48.000000000 -0700
@@ -0,0 +1,2 @@
+[0-9a-f]* g D \*ABS\* [0-9a-f]* VERS_1 (0x[0-9a-f][0-9a-f] )?foo
+[0]* g DO \*ABS\* [0]* VERS_1 VERS_1
--- ld/testsuite/ld-elfvers/vers32b.ver.def 2007-07-09 22:56:15.000000000 -0700
+++ ld/testsuite/ld-elfvers/vers32b.ver 2007-07-09 22:46:25.000000000 -0700
@@ -0,0 +1,4 @@
+Version definitions:
+[1-2] 0x01 0x066f990f vers32b.so
+[1-2] 0x00 0x05aa7921 VERS_1
+
--- ld/testsuite/ld-elfvers/vers32c.dsym.def 2007-07-09 22:56:15.000000000 -0700
+++ ld/testsuite/ld-elfvers/vers32c.dsym 2007-07-09 22:53:09.000000000 -0700
@@ -0,0 +1,2 @@
+[0-9a-f]* g DF \*ABS\* [0-9a-f]* VERS_1 (0x[0-9a-f][0-9a-f] )?foo
+[0]* g DO \*ABS\* [0]* VERS_1 VERS_1
--- ld/testsuite/ld-elfvers/vers32c.ver.def 2007-07-09 22:56:15.000000000 -0700
+++ ld/testsuite/ld-elfvers/vers32c.ver 2007-07-09 22:51:37.000000000 -0700
@@ -0,0 +1,4 @@
+Version definitions:
+[1-2] 0x01 0x066fa90f vers32c.so
+[1-2] 0x00 0x05aa7921 VERS_1
+
--- ld/testsuite/ld-elfvers/vers32d.ver.def 2007-07-09 22:56:15.000000000 -0700
+++ ld/testsuite/ld-elfvers/vers32d.ver 2007-07-09 22:55:16.000000000 -0700
@@ -0,0 +1,4 @@
+Version definitions:
+[1-2] 0x01 0x066fb90f vers32d.so
+[1-2] 0x00 0x05aa7921 VERS_1
+
More information about the Binutils
mailing list