diff options
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf64-ppc.c | 4 |
2 files changed, 8 insertions, 2 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 704a418843c..9bb846df583 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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. diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index c4be65a79a8..02a863250b0 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -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 |