* elf32-i386.c (allocate_plt_and_got_and_discard_relocs): Discard
authorAlan Modra <amodra@gmail.com>
Mon, 25 Jun 2001 02:40:47 +0000 (02:40 +0000)
committerAlan Modra <amodra@gmail.com>
Mon, 25 Jun 2001 02:40:47 +0000 (02:40 +0000)
relocs without ELF_LINK_HASH_DEF_DYNAMIC set.
(elf_i386_relocate_section <R_386_32, R_386_PC32>): Remove
redundant bfd_link_hash_defined, bfd_link_hash_defweak test.

bfd/ChangeLog
bfd/elf32-i386.c

index c23ed98e1d6a3486a1dda9d7af92934427c665b4..5528251c3f3c289ff14953c39309f6d4a7b4af64 100644 (file)
@@ -1,3 +1,10 @@
+2001-06-25  Alan Modra  <amodra@bigpond.net.au>
+
+       * elf32-i386.c (allocate_plt_and_got_and_discard_relocs): Discard
+       relocs without ELF_LINK_HASH_DEF_DYNAMIC set.
+       (elf_i386_relocate_section <R_386_32, R_386_PC32>): Remove
+       redundant bfd_link_hash_defined, bfd_link_hash_defweak test.
+
 2001-06-24  H.J. Lu  <hjl@gnu.org>
 
        * cpu-i960.c (scan_960_mach): Don't modify const char *. Use
@@ -5,8 +12,8 @@
 
 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
+       * elf32-i386.c (elf_i386_relocate_section <R_386_32, R_386_PC32>):
+       Check 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.
 
index a0ed38ae4fb8135bc9199ca0c77687b99041c713..8e6c18a2bf008caec7beae2638fe5bc41fa29f80 100644 (file)
@@ -1193,8 +1193,9 @@ allocate_plt_and_got_and_discard_relocs (h, inf)
        && ((h->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0
           || info->symbolic))
       || (!info->shared
-         && ((h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) != 0
-             || h->dynindx == -1)))
+         && (h->dynindx == -1
+             || (h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) != 0
+             || (h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) == 0)))
     {
       struct elf_i386_link_hash_entry *eh;
       struct elf_i386_dyn_relocs *c;
@@ -1693,10 +1694,8 @@ 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_defined
-                      || h->root.type == bfd_link_hash_defweak)
-                     && (h->elf_link_hash_flags
-                         & ELF_LINK_HASH_DEF_DYNAMIC) != 0)))
+                 && (h->elf_link_hash_flags
+                     & ELF_LINK_HASH_DEF_DYNAMIC) != 0))
            {
              Elf_Internal_Rel outrel;
              boolean skip, relocate;