aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2003-08-11 11:31:01 +0000
committerAlan Modra <amodra@gmail.com>2003-08-11 11:31:01 +0000
commit6ab189d5a4e597beffd8ca1d6f3e023f43425961 (patch)
tree78b9f4f975904de60bf71167568c21463d973dca
parentfb52b2f459b98125ab0cff0e16b421418541a8e1 (diff)
downloadgdb-6ab189d5a4e597beffd8ca1d6f3e023f43425961.zip
gdb-6ab189d5a4e597beffd8ca1d6f3e023f43425961.tar.gz
gdb-6ab189d5a4e597beffd8ca1d6f3e023f43425961.tar.bz2
* elf64-ppc.c (ppc64_elf_relocate_section): Add special case for crt1.o
branch to __libc_start_main.
-rw-r--r--bfd/ChangeLog8
-rw-r--r--bfd/elf64-ppc.c7
2 files changed, 14 insertions, 1 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index f3070c7..0709dc3 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,6 +1,12 @@
+2003-08-11 Alan Modra <amodra@bigpond.net.au>
+
+ * elf64-ppc.c (ppc64_elf_relocate_section): Add special case for crt1.o
+ branch to __libc_start_main.
+
2003-08-08 Dmitry Diky <diwil@mail.ru>
- * archures.c: Add xW42 and xE42 parts. Sort MPU list according to gcc order.
+ * archures.c: Add xW42 and xE42 parts. Sort MPU list according to
+ gcc order.
* cpu-msp430.c: Likewise.
* elf32-msp430.c: Likewise.
* bfd-in2.h: Regenerate.
diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
index 3916333..966dc43 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,