summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2005-03-05 11:44:14 +0000
committerAlan Modra <amodra@bigpond.net.au>2005-03-05 11:44:14 +0000
commit6ab8eeb01e359ef39779a74e776b6825ae31ed27 (patch)
tree429acd918f71b51ca06101ae0ed82bdea08370fe
parentcde511b6968fabdde560831c676e002e77b5f70c (diff)
downloadgdb-6ab8eeb01e359ef39779a74e776b6825ae31ed27.tar.gz
* elf64-ppc.c (update_plt_info): Don't mark new ABI call syms
with is_func. (func_desc_adjust): Force dot-syms local in executables as well as shared libs.
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elf64-ppc.c14
2 files changed, 14 insertions, 7 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index af8d64edd7a..98166a7a599 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2005-03-05 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (update_plt_info): Don't mark new ABI call syms
+ with is_func.
+ (func_desc_adjust): Force dot-syms local in executables as well
+ as shared libs.
+
2005-03-04 David Daney <ddaney@avtrex.com>
* elfxx-mips.c (mips_elf_calculate_relocation): Handle special
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 266a2fcf2af..ca23f23283b 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -4213,7 +4213,9 @@ update_plt_info (bfd *abfd, struct ppc_link_hash_entry *eh, bfd_vma addend)
}
ent->plt.refcount += 1;
eh->elf.needs_plt = 1;
- eh->is_func = 1;
+ if (eh->elf.root.root.string[0] == '.'
+ && eh->elf.root.root.string[1] != '\0')
+ eh->is_func = 1;
return TRUE;
}
@@ -5486,12 +5488,10 @@ func_desc_adjust (struct elf_link_hash_entry *h, void *inf)
been imported from another library. Function code syms that
are really in the library we must leave global to prevent the
linker dragging in a definition from a static library. */
- force_local
- = (info->shared
- && (!fh->elf.def_regular
- || fdh == NULL
- || !fdh->elf.def_regular
- || fdh->elf.forced_local));
+ force_local = (!fh->elf.def_regular
+ || fdh == NULL
+ || !fdh->elf.def_regular
+ || fdh->elf.forced_local);
_bfd_elf_link_hash_hide_symbol (info, &fh->elf, force_local);
return TRUE;