From 7c9f387aefaca3606975868c5953a0820afd0986 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 16 Feb 2018 09:49:34 -0800 Subject: [PATCH] x86-64.exp: Add -z noseparate-code -z max-page-size=0x200000 Add -z noseparate-code -z max-page-size=0x200000 since these tests check for exact addresses and don't expect extra PT_LOAD segment. But don't add them to nacl targets since they generate different addresses. * testsuite/ld-x86-64/x86-64.exp: Add -z noseparate-code -z max-page-size=0x200000, excluding NaCl target. --- ld/ChangeLog | 5 +++ ld/testsuite/ld-x86-64/x86-64.exp | 61 ++++++++++++++++++++++--------- 2 files changed, 48 insertions(+), 18 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 5818ea4633..58b505442d 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2018-02-16 H.J. Lu + + * testsuite/ld-x86-64/x86-64.exp: Add -z noseparate-code + -z max-page-size=0x200000, excluding NaCl target. + 2018-02-16 H.J. Lu * testsuite/ld-ifunc/ifunc-2-i386-now.d: Likewise. diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp index 2a46266e0d..02aa38a75a 100644 --- a/ld/testsuite/ld-x86-64/x86-64.exp +++ b/ld/testsuite/ld-x86-64/x86-64.exp @@ -50,20 +50,23 @@ set x86_64tests { "-melf_x86_64 tmpdir/libpltlib.so" "" "--64" {plt.s} {{objdump -drj.plt plt.pd}} "plt"} {"TLS -fpic -shared transitions" - "-shared -melf_x86_64 --no-ld-generated-unwind-info --hash-style=sysv" "" + "-shared -melf_x86_64 --no-ld-generated-unwind-info \ + -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv" "" "--64" {tlspic1.s tlspic2.s} {{readelf -WSsrl tlspic.rd} {objdump -drj.text\ -Mintel64 tlspic.dd} {objdump -sj.got tlspic.sd} {objdump -sj.tdata tlspic.td}} "libtlspic.so"} {"TLS -fpic -shared transitions with r15 as GOT base" - "-shared -melf_x86_64 --no-ld-generated-unwind-info --hash-style=sysv" "" + "-shared -melf_x86_64 --no-ld-generated-unwind-info \ + -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv" "" "--64 -mrelax-relocations=yes" {tlspic3.s tlspic2.s} {{readelf -WSsrl tlspic2.rd} {objdump -drj.text\ -Mintel64 tlspic2.dd} {objdump -sj.got tlspic2.sd} {objdump -sj.tdata tlspic2.td}} "libtlspic2.so"} {"TLS descriptor -fpic -shared transitions" - "-shared -melf_x86_64 --no-ld-generated-unwind-info --hash-style=sysv" "" + "-shared -melf_x86_64 --no-ld-generated-unwind-info \ + -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv" "" "--64" {tlsdesc.s tlspic2.s} {{readelf -WSsrld tlsdesc.rd} {objdump -drj.text tlsdesc.dd} {objdump "-s -j.got -j.got.plt" tlsdesc.sd} {objdump -sj.tdata tlsdesc.td} @@ -71,25 +74,29 @@ set x86_64tests { {"Helper shared library" "-shared -melf_x86_64" "" "--64" {tlslib.s} {} "libtlslib.so"} {"TLS -fpic and -fno-pic exec transitions" - "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info --hash-style=sysv" "" + "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info \ + -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv" "" "--64" {tlsbinpic.s tlsbin.s} {{readelf -WSsrl tlsbin.rd} {objdump -drj.text tlsbin.dd} {objdump -sj.got tlsbin.sd} {objdump -sj.tdata tlsbin.td}} "tlsbin"} {"TLS -fpic and -fno-pic exec transitions without PLT" - "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info --hash-style=sysv" "" + "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info \ + -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv" "" "-mrelax-relocations=yes --64" {tlsbinpic2.s tlsbin.s} {{readelf -WSsrl tlsbin2.rd} {objdump -drj.text tlsbin2.dd} {objdump -sj.got tlsbin2.sd} {objdump -sj.tdata tlsbin2.td}} "tlsbin2"} {"TLS descriptor -fpic and -fno-pic exec transitions" - "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info --hash-style=sysv" "" + "-melf_x86_64 tmpdir/libtlslib.so --no-ld-generated-unwind-info \ + -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv" "" "--64" {tlsbindesc.s tlsbin.s} {{readelf -WSsrl tlsbindesc.rd} {objdump -drj.text tlsbindesc.dd} {objdump -sj.got tlsbindesc.sd} {objdump -sj.tdata tlsbindesc.td}} "tlsbindesc"} {"TLS with global dynamic and descriptors" - "-shared -melf_x86_64 --no-ld-generated-unwind-info --hash-style=sysv" "" + "-shared -melf_x86_64 --no-ld-generated-unwind-info \ + -z noseparate-code -z max-page-size=0x200000 --hash-style=sysv" "" "--64" {tlsgdesc.s} {{readelf -WSsrl tlsgdesc.rd} {objdump -drj.text\ -Mintel64 tlsgdesc.dd}} "libtlsgdesc.so"} @@ -226,6 +233,13 @@ if [istarget "*-*-nacl*"] { # Change all the -melf_x86_64 to -melf_x86_64_nacl so linking can succeed. regsub -all -- $lhs $x86_64tests $rhs x86_64tests + set zlhs {-z noseparate-code -z max-page-size=0x200000} + set zrhs {} + + # Remove -z max-page-size=0x200000 -z noseparate-code since they + # generate different addresses for nacl targets. + regsub -all -- $zlhs $x86_64tests $zrhs x86_64tests + # Same, applied to all the run_dump_test cases. set options_regsub(ld) [list $lhs $rhs] @@ -1605,7 +1619,8 @@ if { [isnative] && [which $CC] != 0 } { [list \ "Build plt-main with -z bndplt" \ "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ - tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt" \ + tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt \ + -z noseparate-code -z max-page-size=0x200000" \ "" \ { plt-main5.c } \ {{objdump {-drw} plt-main-bnd.dd}} \ @@ -1614,7 +1629,8 @@ if { [isnative] && [which $CC] != 0 } { [list \ "Build plt-main with PIE and -z bndplt" \ "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ - tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -pie" \ + tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -pie \ + -z noseparate-code -z max-page-size=0x200000" \ "-fPIC" \ { plt-main5.c } \ {{objdump {-drw} plt-main-bnd.dd}} \ @@ -1623,7 +1639,8 @@ if { [isnative] && [which $CC] != 0 } { [list \ "Build plt-main with -z bndplt -z now" \ "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ - tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now" \ + tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now \ + -z noseparate-code -z max-page-size=0x200000" \ "" \ { plt-main5.c } \ {{readelf {-SW} plt-main-bnd-now.rd} {objdump {-drw} plt-main-bnd.dd}} \ @@ -1632,7 +1649,8 @@ if { [isnative] && [which $CC] != 0 } { [list \ "Build plt-main with PIE and -z bndplt -z now" \ "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ - tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now -pie" \ + tmpdir/plt-main4.o tmpdir/libplt-lib.so -z bndplt -z now -pie \ + -z noseparate-code -z max-page-size=0x200000" \ "-fPIC" \ { plt-main5.c } \ {{readelf {-SW} plt-main-bnd-now.rd} {objdump {-drw} plt-main-bnd.dd}} \ @@ -1728,7 +1746,8 @@ if { [isnative] && [which $CC] != 0 } { [list \ "Build plt-main with -z ibtplt" \ "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ - tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt" \ + tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt \ + -z noseparate-code -z max-page-size=0x200000" \ "" \ { plt-main5.c } \ $pltdump \ @@ -1737,7 +1756,8 @@ if { [isnative] && [which $CC] != 0 } { [list \ "Build plt-main with PIE and -z ibtplt" \ "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ - tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -pie" \ + tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -pie \ + -z noseparate-code -z max-page-size=0x200000" \ "-fPIC" \ { plt-main5.c } \ $pltdump \ @@ -1746,7 +1766,8 @@ if { [isnative] && [which $CC] != 0 } { [list \ "Build plt-main with -z ibtplt -z now" \ "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ - tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -z now" \ + tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -z now \ + -z noseparate-code -z max-page-size=0x200000" \ "" \ { plt-main5.c } \ $pltsecdump \ @@ -1755,7 +1776,8 @@ if { [isnative] && [which $CC] != 0 } { [list \ "Build plt-main with PIE and -z ibtplt -z now" \ "tmpdir/plt-main1.o tmpdir/plt-main2.o tmpdir/plt-main3.o \ - tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -z now -pie" \ + tmpdir/plt-main4.o tmpdir/libplt-lib.so -z ibtplt -z now -pie \ + -z noseparate-code -z max-page-size=0x200000" \ "-fPIC" \ { plt-main5.c } \ $pltsecdump \ @@ -1763,7 +1785,8 @@ if { [isnative] && [which $CC] != 0 } { ] \ [list \ "Build libibtplt-lib.so with -z ibtplt" \ - "-shared -z ibtplt" \ + "-shared -z ibtplt \ + -z noseparate-code -z max-page-size=0x200000" \ "-fPIC" \ { plt-main1.c plt-main2.c plt-main3.c plt-main4.c} \ $pltdump \ @@ -1771,7 +1794,8 @@ if { [isnative] && [which $CC] != 0 } { ] \ [list \ "Build libibtplt--now-lib.so with -z ibtplt -z now" \ - "-shared -z ibtplt -z now" \ + "-shared -z ibtplt -z now \ + -z noseparate-code -z max-page-size=0x200000" \ "-fPIC" \ { plt-main1.c plt-main2.c plt-main3.c plt-main4.c} \ $pltdump \ @@ -1880,7 +1904,8 @@ if { ![istarget "x86_64-*-linux*"]} { run_ld_link_tests [list \ [list \ "basic PLT generation (-z now)" \ - "-z now -melf_x86_64 --hash-style=sysv tmpdir/libpltlib.so" \ + "-z now -melf_x86_64 --hash-style=sysv tmpdir/libpltlib.so \ + -z noseparate-code -z max-page-size=0x200000" \ "" \ "--64" \ {plt2.s} \ -- 2.34.1