Fix PR ld/24574

This restores a line that has been dropped when the auto-import feature
of the PE-COFF linker was overhauled about one year.  It is necessary
for GDB to properly resolve extern symbol in DLLs.

ld/ChangeLog
	* pe-dll.c (pe_find_data_imports): Replace again the original name
	of the undefined symbol with the __imp_ prefixed one after it is
	resolved.
This commit is contained in:
Eric Botcazou 2019-09-05 18:23:37 +02:00
parent 30331a6ca0
commit de07a74580
2 changed files with 11 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2019-09-05 Eric Botcazou <ebotcazou@adacore.com>
PR ld/24574
* pe-dll.c (pe_find_data_imports): Replace again the original name of
the undefined symbol with the __imp_ prefixed one after it is resolved.
2019-09-05 Alan Modra <amodra@gmail.com>
* testsuite/ld-powerpc/pcrelopt.s,

View File

@ -1445,6 +1445,11 @@ pe_find_data_imports (const char *symhead,
undef->u.def.value = sym->u.def.value;
undef->u.def.section = sym->u.def.section;
/* We replace the original name with the __imp_ prefixed one, this
1) may trash memory 2) leads to duplicate symbols. But this is
better than having a misleading name that can confuse GDB. */
undef->root.string = sym->root.string;
if (link_info.pei386_auto_import == -1)
{
static bfd_boolean warned = FALSE;