This is the mail archive of the binutils@sourceware.org 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]
Other format: [Raw text]

Re: Fix uninitialized data in .dynsym


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
+


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