aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2012-03-29 23:17:37 +0000
committerAlan Modra <amodra@gmail.com>2012-03-29 23:17:37 +0000
commita66eed7a5dbef1ece41e565986c77659b7f1505f (patch)
tree7f374210b2d7a09fc352037629a0f2b929534c63
parent0c1f93989b26cbe4a2a39858e22e75a25dc75705 (diff)
downloadgdb-a66eed7a5dbef1ece41e565986c77659b7f1505f.zip
gdb-a66eed7a5dbef1ece41e565986c77659b7f1505f.tar.gz
gdb-a66eed7a5dbef1ece41e565986c77659b7f1505f.tar.bz2
* elflink.c (_bfd_elf_gc_mark_reloc): Don't delve into dynamic
libraries.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elflink.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 3848bc7..390cb89 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-30 Alan Modra <amodra@gmail.com>
+
+ * elflink.c (_bfd_elf_gc_mark_reloc): Don't delve into dynamic
+ libraries.
+
2012-03-29 Alan Modra <amodra@gmail.com>
* bfd-in.h (bfd_get_arch_size, bfd_get_sign_extend_vma): Delete.
diff --git a/bfd/elflink.c b/bfd/elflink.c
index 3236911..12025a3 100644
--- a/bfd/elflink.c
+++ b/bfd/elflink.c
@@ -11590,7 +11590,8 @@ _bfd_elf_gc_mark_reloc (struct bfd_link_info *info,
rsec = _bfd_elf_gc_mark_rsec (info, sec, gc_mark_hook, cookie);
if (rsec && !rsec->gc_mark)
{
- if (bfd_get_flavour (rsec->owner) != bfd_target_elf_flavour)
+ if (bfd_get_flavour (rsec->owner) != bfd_target_elf_flavour
+ || (rsec->owner->flags & DYNAMIC) != 0)
rsec->gc_mark = 1;
else if (!_bfd_elf_gc_mark (info, rsec, gc_mark_hook))
return FALSE;