aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-i386.c
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2002-01-29 11:14:35 +0000
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2002-01-29 11:14:35 +0000
commitf9cd9119027d232118717abfa26fb87a636e644c (patch)
treea8d9d646aebad130e55fe584317b61d166114563 /bfd/elf32-i386.c
parent8fcc723b1c74876be676ca2198a91ef1a33d05af (diff)
downloadgdb-f9cd9119027d232118717abfa26fb87a636e644c.zip
gdb-f9cd9119027d232118717abfa26fb87a636e644c.tar.gz
gdb-f9cd9119027d232118717abfa26fb87a636e644c.tar.bz2
* elf32-i386 (elf_i386_adjust_dynamic_symbol): Do not replace PLT32
relocations with PC32 relocations for undefined or weak symbols. * elf32-s390 (elf_i386_adjust_dynamic_symbol): Likewise. * elf64-s390x (elf_i386_adjust_dynamic_symbol): Likewise.
Diffstat (limited to 'bfd/elf32-i386.c')
-rw-r--r--bfd/elf32-i386.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index 236e167..6e79199 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -1108,7 +1108,9 @@ elf_i386_adjust_dynamic_symbol (info, h)
if (h->plt.refcount <= 0
|| (! info->shared
&& (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0
- && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0))
+ && (h->elf_link_hash_flags & ELF_LINK_HASH_REF_DYNAMIC) == 0
+ && h->root.type != bfd_link_hash_undefweak
+ && h->root.type != bfd_link_hash_undefined))
{
/* This case can occur if we saw a PLT32 reloc in an input
file, but the symbol was never referred to by a dynamic