summaryrefslogtreecommitdiff
path: root/bfd/elf64-ppc.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2003-08-11 11:31:01 +0000
committerAlan Modra <amodra@bigpond.net.au>2003-08-11 11:31:01 +0000
commit8020bacb2382802a69b8cb8dceed013b4f822f56 (patch)
treec3a4bb6b8d669f6db8f5df38130dfdc01d612a52 /bfd/elf64-ppc.c
parentb0672b1cf126263abc0c21fe21fa9362e7850765 (diff)
downloadgdb-8020bacb2382802a69b8cb8dceed013b4f822f56.tar.gz
* elf64-ppc.c (ppc64_elf_relocate_section): Add special case for crt1.o
branch to __libc_start_main.
Diffstat (limited to 'bfd/elf64-ppc.c')
-rw-r--r--bfd/elf64-ppc.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 391633378d0..966dc431cde 100644
--- a/bfd/elf64-ppc.c
+++ b/bfd/elf64-ppc.c
@@ -7788,6 +7788,13 @@ ppc64_elf_relocate_section (bfd *output_bfd,
if ((insn & 1) == 0)
can_plt_call = 1;
}
+ else if (h != NULL
+ && strcmp (h->root.root.string,
+ ".__libc_start_main") == 0)
+ {
+ /* Allow crt1 branch to go via a toc adjusting stub. */
+ can_plt_call = 1;
+ }
else
{
if (strcmp (input_section->output_section->name,