This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [parisc-linux] binutils 2.15?
- From: "John David Anglin" <dave at hiauly1 dot hia dot nrc dot ca>
- To: amodra at bigpond dot net dot au (Alan Modra)
- Cc: jakub at redhat dot com, soete dot joel at tiscali dot be, parisc-linux at parisc-linux dot org, binutils at sources dot redhat dot com
- Date: Thu, 1 Jul 2004 18:49:44 -0400 (EDT)
- Subject: Re: [parisc-linux] binutils 2.15?
> On Mon, Jun 14, 2004 at 05:25:20AM +0200, Jakub Jelinek wrote:
> > First of all, can you explain why hppa needs .got after .plt?
>
> There's a lazy linking stub inserted at the end of the .plt section that
> loads the .got address by
>
> b,l 1b,%r20
> depi 0,31,2,%r20
>
> ie. it depends on .got immediately following these instructions.
The enclosed patch moves .plt back to where it was before Jakub's change
when NO_SMALL_DATA isn't defined. We don't define NO_SMALL_DATA on
PA-RISC as we need support for .sbss and .sdata.
This fixes the regressions. The alternatives look messy impacting
both gcc and glibc.
Ok?
Dave
--
J. David Anglin dave.anglin@nrc-cnrc.gc.ca
National Research Council of Canada (613) 990-0752 (FAX: 952-6602)
2004-07-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
* scripttempl/elf.sc: Place PLT before GOT when NO_SMALL_DATA is not
defined.
Index: scripttempl/elf.sc
===================================================================
RCS file: /cvs/src/src/ld/scripttempl/elf.sc,v
retrieving revision 1.45
diff -u -3 -p -r1.45 elf.sc
--- scripttempl/elf.sc 15 Jun 2004 16:39:17 -0000 1.45
+++ scripttempl/elf.sc 1 Jul 2004 22:03:14 -0000
@@ -358,7 +358,7 @@ cat <<EOF
${RELOCATING+${DATA_SEGMENT_RELRO_END}}
${NO_SMALL_DATA+${RELRO_NOW-${SEPARATE_GOTPLT-${GOT}}}}
- ${DATA_PLT+${PLT}}
+ ${NO_SMALL_DATA+${DATA_PLT+${PLT}}}
.data ${RELOCATING-0} :
{
@@ -370,6 +370,7 @@ cat <<EOF
.data1 ${RELOCATING-0} : { *(.data1) }
${WRITABLE_RODATA+${RODATA}}
${OTHER_READWRITE_SECTIONS}
+ ${NO_SMALL_DATA-${DATA_PLT+${PLT}}}
${RELOCATING+${OTHER_GOT_SYMBOLS}}
${NO_SMALL_DATA-${GOT}}
${OTHER_GOT_SECTIONS}