S/390: Move binary start to 16M.
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Mon, 10 Oct 2016 15:09:03 +0000 (17:09 +0200)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Mon, 10 Oct 2016 15:09:03 +0000 (17:09 +0200)
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.

ld/ChangeLog
ld/emulparams/elf64_s390.sh
ld/testsuite/ld-s390/tlsbin_64.dd
ld/testsuite/ld-s390/tlsbin_64.rd

index 6fb93bc33aeedf11b4101b21f6c77bf3da15c9ae..4cfe8740a4e0dcaef7ae302d616b8197c8a2d9be 100644 (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.
index 3fcbbcacf49106e52e3b0bff4ff92d9062ca3b2e..fc9f06a9f089186d318e3217481ac96eb6840236 100644 (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"
index 66e4d112b188fdd3517f6b0d80bd3341c419b73c..eac7f41e3b8fc701ed48ab2e7dc2792ad8bbcf42 100644 (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
index 4aee7ecddc1e9011235b0ce9d20fccbcd2605e4e..5fcb4ba30967d54f9bb7d076b504ad6c0c1518e8 100644 (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