* elf32-i386.c (allocate_plt_and_got_and_discard_relocs): Don't
authorAlan Modra <amodra@gmail.com>
Fri, 3 Aug 2001 05:10:39 +0000 (05:10 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 3 Aug 2001 05:10:39 +0000 (05:10 +0000)
keep relocs for undefined syms if there are no dynamic sections in
executable.
* elf32-hppa.c (allocate_plt_and_got_and_discard_relocs): Likewise.

bfd/ChangeLog
bfd/elf32-hppa.c
bfd/elf32-i386.c

index 35a2fad46d0314a93458a5021689d5cf925843c9..e7c5c4cb2b2366573e84b3a9bfa789f45d2c97e5 100644 (file)
@@ -1,3 +1,11 @@
+2001-08-03  Alan Modra  <amodra@bigpond.net.au>
+
+       From  H.J. Lu  <hjl@gnu.org>
+       * elf32-i386.c (allocate_plt_and_got_and_discard_relocs): Don't
+       keep relocs for undefined syms if there are no dynamic sections in
+       executable.
+       * elf32-hppa.c (allocate_plt_and_got_and_discard_relocs): Likewise.
+
 2001-08-02  Paul Sokolovsky  <paul.sokolovsky@technologist.com>
 
        * cofflink.c (coff_link_check_ar_symbols): also search for
 2001-06-29  H.J. Lu  <hjl@gnu.org>
 
        * elf32-hppa.c (elf32_hppa_finish_dynamic_sections): Check if
-       hplink->sgot is NULL before filling GOT. Checck if hplink->splt
+       hplink->sgot is NULL before filling GOT.  Check if hplink->splt
        is NULL before filling PLT.
 
 2001-06-29  Alan Modra  <amodra@bigpond.net.au>
index af08d8e010fa9860d1282389c519c139c9d04c35..7fe328e7039e10bf673e792a0dcc43f4f7a04476 100644 (file)
@@ -2141,8 +2141,9 @@ allocate_plt_and_got_and_discard_relocs (h, inf)
   if (!info->shared
       && (h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0
       && ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0
-         || h->root.type == bfd_link_hash_undefweak
-         || h->root.type == bfd_link_hash_undefined))
+         || (hplink->root.dynamic_sections_created
+             && (h->root.type == bfd_link_hash_undefweak
+                 || h->root.type == bfd_link_hash_undefined))))
     {
       /* Make sure this symbol is output as a dynamic symbol.
         Undefined weak syms won't yet be marked as dynamic.  */
index e76e75b01312f2680efbf396b288a1ef57c6f2d2..02a08f77d37d0ede884bb3745424f44e0e5e6b8c 100644 (file)
@@ -1199,8 +1199,9 @@ allocate_plt_and_got_and_discard_relocs (h, inf)
   if (!info->shared
       && (h->elf_link_hash_flags & ELF_LINK_NON_GOT_REF) == 0
       && ((h->elf_link_hash_flags & ELF_LINK_HASH_DEF_DYNAMIC) != 0
-         || h->root.type == bfd_link_hash_undefweak
-         || h->root.type == bfd_link_hash_undefined))
+         || (htab->root.dynamic_sections_created
+             && (h->root.type == bfd_link_hash_undefweak
+                 || h->root.type == bfd_link_hash_undefined))))
     {
       /* Make sure this symbol is output as a dynamic symbol.
         Undefined weak syms won't yet be marked as dynamic.  */