From df131623294b8a9f8ebfbd0fe3780886c19527aa Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 11 Dec 2008 10:14:40 +0000 Subject: [PATCH] PR 7041 * elf64-ppc.c (func_desc_adjust): Correct logic making fake function descriptors. Similarly correct making function descriptors dynamic. --- bfd/ChangeLog | 6 ++++++ 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 + + 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 * 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 -- 2.30.2