[patch ld]: Testsuite fix of vers-script-3 and vers-script-4 tests

Kai Tietz ktietz70@googlemail.com
Tue Feb 15 15:30:00 GMT 2011


2011/2/15 Kai Tietz <ktietz70@googlemail.com>:
> Hello,
>
> ChangeLog
>
> 2011-02-15  Kai Tietz
>
>        * ld-pe/vers-script-3.ver: Add _Z* to global and use
>        wildcard for personality symbols.
>        * ld-pe/vers-script-4.ver: Likewise.
>
> Tested for x86_64-w64-mingw32 and i686-w64-mingw32. Ok for apply?
>
> Regards,
> Kai
>

Ok, I withdraw recent patch. It is just fixing the symptoms but not
the underlying issue.
For 32-bit COFF the real issue is in pe-dll.c file in function
process_def_file_and_drectve. Here the underscore of a symbol is
stripped, and the same time it is done in bfd_demangle, which is used
by bfd_find_version_for_sym. By this in 32-bit case with leading
underscores, they were stripped twice.

ChangeLog

2011-02-15  Kai Tietz

          * pe-dll.c (process_def_file_and_drectve): Don't strip
          leading underscore from symbol by calling bfd_find_version_for_sym.

Tested for x86_64-w64-mingw32, i686-pc-cygwin, and i686-w64-mingw32.
Ok for apply?

Regards,
Kai
-------------- next part --------------
Index: pe-dll.c
===================================================================
RCS file: /cvs/src/src/ld/pe-dll.c,v
retrieving revision 1.133
diff -u -3 -r1.133 pe-dll.c
--- pe-dll.c	27 Jun 2010 04:07:54 -0000	1.133
+++ pe-dll.c	15 Feb 2011 15:23:17 -0000
@@ -720,9 +720,8 @@
 	      if (lang_elf_version_info && would_export)
 		{
 		  bfd_boolean hide = 0;
-		  char ofs = pe_details->underscored && symbols[j]->name[0] == '_';
 		  (void) bfd_find_version_for_sym (lang_elf_version_info,
-				symbols[j]->name + ofs, &hide);
+				symbols[j]->name, &hide);
 		  would_export = !hide;
 		}
 	      if (would_export)


More information about the Binutils mailing list