* elf64-ppc.c (ppc64_elf_adjust_dynamic_symbol): Don't do copyreloc
authorJakub Jelinek <jakub@redhat.com>
Thu, 10 May 2007 11:45:07 +0000 (11:45 +0000)
committerJakub Jelinek <jakub@redhat.com>
Thu, 10 May 2007 11:45:07 +0000 (11:45 +0000)
processing if symbol is defined in the executable.

bfd/ChangeLog
bfd/elf64-ppc.c

index ce57505..f24593a 100644 (file)
@@ -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.
index af85789..8ffd70a 100644 (file)
@@ -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;