summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2001-08-03 05:10:39 +0000
committerAlan Modra <amodra@bigpond.net.au>2001-08-03 05:10:39 +0000
commit3e40ccbd82f9106e40404831aebe4d26a02f695c (patch)
treeb32ebb9991ebeee90461188d776a09abc53e1542
parent09675b4f911fc6e251a5584c76dc70ac5bbf5fd4 (diff)
downloadbinutils-redhat-3e40ccbd82f9106e40404831aebe4d26a02f695c.tar.gz
* 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.
-rw-r--r--bfd/ChangeLog10
-rw-r--r--bfd/elf32-hppa.c5
-rw-r--r--bfd/elf32-i386.c5
3 files changed, 15 insertions, 5 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 35a2fad46d..e7c5c4cb2b 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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
@@ -138,7 +146,7 @@
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>
diff --git a/bfd/elf32-hppa.c b/bfd/elf32-hppa.c
index af08d8e010..7fe328e703 100644
--- a/bfd/elf32-hppa.c
+++ b/bfd/elf32-hppa.c
@@ -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. */
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index e76e75b013..02a08f77d3 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -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. */