aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2005-03-05 11:44:14 +0000
committerAlan Modra <amodra@gmail.com>2005-03-05 11:44:14 +0000
commit93f3fa99561297787206f7ab8f3a9d9974b57667 (patch)
treec8b541d6da4e823f8ac267fd30586f12073fa03d /bfd
parent635ddbfb5b790b07ba0ef47a125a7ecd2082817b (diff)
downloadgdb-93f3fa99561297787206f7ab8f3a9d9974b57667.zip
gdb-93f3fa99561297787206f7ab8f3a9d9974b57667.tar.gz
gdb-93f3fa99561297787206f7ab8f3a9d9974b57667.tar.bz2
* 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.
Diffstat (limited to 'bfd')
-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 af8d64e..98166a7 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 266a2fc..ca23f23 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;