* 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 ce5750502b2466a79013e34570b105000b7a2e97..f24593ad350ee308c24f2ec97eb82675c0074b82 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 af857892b4f128d781dcf167e298467840928fd3..8ffd70a62f92ea30470cdf541e99b6720b7fbd07 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;