S/390: Move binary start to 16M.

Turned out that by moving the binary start to 256M I've hit a case with
potentially a lot of aliasing in the branch target buffer between
binaries and shared libs.  So moving on.

Tested on s390x. No regressions.

ld/ChangeLog:

2016-10-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

	* emulparams/elf64_s390.sh: Move binary start to 16M.
	* testsuite/ld-s390/tlsbin_64.dd: Adjust testcases accordingly.
	* testsuite/ld-s390/tlsbin_64.rd: Likewise.
This commit is contained in:
Andreas Krebbel 2016-10-10 17:09:03 +02:00
parent 668df12dd3
commit 82057c771e
4 changed files with 10 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2016-10-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* emulparams/elf64_s390.sh: Move binary start to 16M.
* testsuite/ld-s390/tlsbin_64.dd: Adjust testcases accordingly.
* testsuite/ld-s390/tlsbin_64.rd: Likewise.
2016-10-07 Alan Modra <amodra@gmail.com>
* ldexp.c (MAX): Define.

View File

@ -2,7 +2,7 @@ SCRIPT_NAME=elf
ELFSIZE=64
OUTPUT_FORMAT="elf64-s390"
NO_REL_RELOCS=yes
TEXT_START_ADDR=0x10000000
TEXT_START_ADDR=0x1000000
MAXPAGESIZE="CONSTANT (MAXPAGESIZE)"
COMMONPAGESIZE="CONSTANT (COMMONPAGESIZE)"
ARCH="s390:64-bit"

View File

@ -177,8 +177,7 @@ Disassembly of section .text:
+[0-9a-f]+: a7 d5 00 16 bras %r13,[0-9a-f]+ <_start\+0x30>
# sG6@indntpoff
+[0-9a-f]+: 00 00 00 00 .long 0x00000000
+[0-9a-f]+: 10 00 lpr %r0,%r0
+[0-9a-f]+: [0-9a-f ]+ lr %r9,%r8
+[0-9a-f]+: 01 00 18 98 .long 0x01001898
# bg6@indntpoff
+[0-9a-f]+: ff ff ff ff .long 0xffffffff
+[0-9a-f]+: ff ff ff d4 .long 0xffffffd4

View File

@ -34,8 +34,8 @@ There are [0-9]+ program headers, starting at offset [0-9]+
Program Headers:
+Type +Offset +VirtAddr +PhysAddr +FileSiz +MemSiz +Flg Align
+PHDR +0x0+40 0x0+10000040 0x0+10000040 0x0+150 0x0+150 R E 0x8
+INTERP +0x0+190 0x0+10000190 0x0+10000190 0x0+f 0x0+f R +0x1
+PHDR +0x0+40 0x0+1000040 0x0+1000040 0x0+150 0x0+150 R E 0x8
+INTERP +0x0+190 0x0+1000190 0x0+1000190 0x0+f 0x0+f R +0x1
.*Requesting program interpreter.*
+LOAD .* R E 0x1000
+LOAD .* RW +0x1000