summaryrefslogtreecommitdiff
path: root/bfd/elf32-i386.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl@lucon.org>2001-06-24 00:36:47 +0000
committerH.J. Lu <hjl@lucon.org>2001-06-24 00:36:47 +0000
commit977c89c0eeda1e22dcf57a73a0b78e46117af94c (patch)
tree996cbfbae07fd8fcb35ec99c90fe132a7106bbf8 /bfd/elf32-i386.c
parent80e24190aa3842db2492293bf99c856eeca4cf52 (diff)
downloadgdb-977c89c0eeda1e22dcf57a73a0b78e46117af94c.tar.gz
2001-06-23 H.J. Lu <hjl@gnu.org>
* elf32-i386.c (elf_i386_relocate_section): Check the ELF_LINK_HASH_DEF_DYNAMIC to see if a symbol is not defined in the regular object file and treat the weak definition as the normal one.
Diffstat (limited to 'bfd/elf32-i386.c')
-rw-r--r--bfd/elf32-i386.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index a628e0c7149..a0ed38ae4fb 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -1693,9 +1693,10 @@ elf_i386_relocate_section (output_bfd, info, input_bfd, input_section,
&& h != NULL
&& h->dynindx != -1
&& (h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0
- && (h->root.type == bfd_link_hash_defweak
- || (h->elf_link_hash_flags
- & ELF_LINK_HASH_DEF_REGULAR) == 0)))
+ && ((h->root.type == bfd_link_hash_defined
+ || h->root.type == bfd_link_hash_defweak)
+ && (h->elf_link_hash_flags
+ & ELF_LINK_HASH_DEF_DYNAMIC) != 0)))
{
Elf_Internal_Rel outrel;
boolean skip, relocate;