From 62b7d3f1f1b805c22545bc5cafcd014655daf476 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sun, 24 Jun 2001 00:36:47 +0000 Subject: 2001-06-23 H.J. Lu * 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. --- bfd/ChangeLog | 7 +++++++ bfd/elf32-i386.c | 7 ++++--- 2 files changed, 11 insertions(+), 3 deletions(-) (limited to 'bfd') diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 525acc4..7eeede2 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2001-06-23 H.J. Lu + + * 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. + 2001-06-23 Alan Modra * elf32-i386.c (elf_i386_relocate_section ): Tighten diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index a628e0c..a0ed38a 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; -- cgit v1.1