From 82057c771e4338fd47d1ce570f29040186c51f9b Mon Sep 17 00:00:00 2001 From: Andreas Krebbel Date: Mon, 10 Oct 2016 17:09:03 +0200 Subject: [PATCH] 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 * 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. --- ld/ChangeLog | 6 ++++++ ld/emulparams/elf64_s390.sh | 2 +- ld/testsuite/ld-s390/tlsbin_64.dd | 3 +-- ld/testsuite/ld-s390/tlsbin_64.rd | 4 ++-- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 6fb93bc33a..4cfe8740a4 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2016-10-10 Andreas Krebbel + + * 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 * ldexp.c (MAX): Define. diff --git a/ld/emulparams/elf64_s390.sh b/ld/emulparams/elf64_s390.sh index 3fcbbcacf4..fc9f06a9f0 100644 --- a/ld/emulparams/elf64_s390.sh +++ b/ld/emulparams/elf64_s390.sh @@ -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" diff --git a/ld/testsuite/ld-s390/tlsbin_64.dd b/ld/testsuite/ld-s390/tlsbin_64.dd index 66e4d112b1..eac7f41e3b 100644 --- a/ld/testsuite/ld-s390/tlsbin_64.dd +++ b/ld/testsuite/ld-s390/tlsbin_64.dd @@ -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 diff --git a/ld/testsuite/ld-s390/tlsbin_64.rd b/ld/testsuite/ld-s390/tlsbin_64.rd index 4aee7ecddc..5fcb4ba309 100644 --- a/ld/testsuite/ld-s390/tlsbin_64.rd +++ b/ld/testsuite/ld-s390/tlsbin_64.rd @@ -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 -- 2.34.1