PR 7041
authorAlan Modra <amodra@gmail.com>
Thu, 11 Dec 2008 10:14:40 +0000 (10:14 +0000)
committerAlan Modra <amodra@gmail.com>
Thu, 11 Dec 2008 10:14:40 +0000 (10:14 +0000)
* elf64-ppc.c (func_desc_adjust): Correct logic making fake function
descriptors.  Similarly correct making function descriptors dynamic.

bfd/ChangeLog
bfd/elf64-ppc.c

index 704a418843cf27bd42f76825d2c6745cedd177e8..9bb846df58314a644828bb02ce25fb87f1a8a786 100644 (file)
@@ -1,3 +1,9 @@
+2008-12-11  Alan Modra  <amodra@bigpond.net.au>
+
+       PR 7041
+       * elf64-ppc.c (func_desc_adjust): Correct logic making fake function
+       descriptors.  Similarly correct making function descriptors dynamic.
+
 2008-12-10  Alan Modra  <amodra@bigpond.net.au>
 
        * elf32-spu.h (struct spu_elf_params): Add num_regions.
index c4be65a79a84d2f2b62f771c35e1e8ef4955502d..02a863250b0688e5aa187fbb03bd8da975eb69f0 100644 (file)
@@ -5815,7 +5815,7 @@ func_desc_adjust (struct elf_link_hash_entry *h, void *inf)
       fdh = (struct ppc_link_hash_entry *) fdh->elf.root.u.i.link;
 
   if (fdh == NULL
-      && info->shared
+      && !info->executable
       && (fh->elf.root.type == bfd_link_hash_undefined
          || fh->elf.root.type == bfd_link_hash_undefweak))
     {
@@ -5848,7 +5848,7 @@ func_desc_adjust (struct elf_link_hash_entry *h, void *inf)
 
   if (fdh != NULL
       && !fdh->elf.forced_local
-      && (info->shared
+      && (!info->executable
          || fdh->elf.def_dynamic
          || fdh->elf.ref_dynamic
          || (fdh->elf.root.type == bfd_link_hash_undefweak