aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2007-05-10 11:45:07 +0000
committerJakub Jelinek <jakub@redhat.com>2007-05-10 11:45:07 +0000
commitb186458a4dce22531cdbd1374c055d4813bd811c (patch)
treecff5c708e9bc85baa175c4bab66a1fbd2c0a683f
parent8857127957668b516c891330b6d56c3dde8f8b32 (diff)
downloadgdb-b186458a4dce22531cdbd1374c055d4813bd811c.zip
gdb-b186458a4dce22531cdbd1374c055d4813bd811c.tar.gz
gdb-b186458a4dce22531cdbd1374c055d4813bd811c.tar.bz2
* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Don't do copyreloc
processing if symbol is defined in the executable.
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf64-ppc.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index ce57505..f24593a 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2007-05-10 Jakub Jelinek <jakub@redhat.com>
+
+ * elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Don't do copyreloc
+ processing if symbol is defined in the executable.
+
2007-05-10 Alexandre Oliva <aoliva@redhat.com>
* elf32-frv.c (_frvfdpic_check_discarded_relocs): New.
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index af85789..8ffd70a 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -5851,6 +5851,10 @@ ppc64_elf_adjust_dynamic_symbol (struct bfd_link_info *info,
if (!h->non_got_ref)
return TRUE;
+ /* Don't generate a copy reloc for symbols defined in the executable. */
+ if (!h->def_dynamic || !h->ref_regular || h->def_regular)
+ return TRUE;
+
if (ELIMINATE_COPY_RELOCS)
{
struct ppc_link_hash_entry * eh;