diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2018-01-11 19:19:22 -0800 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2018-01-11 19:19:31 -0800 |
commit | cf9e7f1f07efa2ce6846d8a29015dd8fb70197b0 (patch) | |
tree | d3a6ec2b2b075cb0d98aeac1bc89adf715158556 /ld | |
parent | d346bb277c7f194ece73a7200d1ed6417b1194e5 (diff) | |
download | gdb-cf9e7f1f07efa2ce6846d8a29015dd8fb70197b0.zip gdb-cf9e7f1f07efa2ce6846d8a29015dd8fb70197b0.tar.gz gdb-cf9e7f1f07efa2ce6846d8a29015dd8fb70197b0.tar.bz2 |
x86-64: Add tests for -z separate-code -z max-page-size=0x1000
PR ld/22393
* testsuite/ld-x86-64/pr22393-3a.c: New file.
* testsuite/ld-x86-64/pr22393-3a.rd: Likewise.
* testsuite/ld-x86-64/pr22393-3b.c: Likewise.
* testsuite/ld-x86-64/pr22393-3b.rd: Likewise.
* testsuite/ld-x86-64/x86-64.exp: Run tests for -z separate-code
-z max-page-size=0x1000.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 10 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/pr22393-3a.c | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/pr22393-3a.rd | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/pr22393-3b.c | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/pr22393-3b.rd | 9 | ||||
-rw-r--r-- | ld/testsuite/ld-x86-64/x86-64.exp | 71 |
6 files changed, 113 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 5b9e3b9e..6002fbf 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,6 +1,16 @@ 2018-01-11 H.J. Lu <hongjiu.lu@intel.com> PR ld/22393 + * testsuite/ld-x86-64/pr22393-3a.c: New file. + * testsuite/ld-x86-64/pr22393-3a.rd: Likewise. + * testsuite/ld-x86-64/pr22393-3b.c: Likewise. + * testsuite/ld-x86-64/pr22393-3b.rd: Likewise. + * testsuite/ld-x86-64/x86-64.exp: Run tests for -z separate-code + -z max-page-size=0x1000. + +2018-01-11 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/22393 * testsuite/ld-elf/pr16322.d: Add -z noseparate-code. * testsuite/ld-elf/pr22393-1.s: New file. * testsuite/ld-elf/pr22393-1a.d: Likewise. diff --git a/ld/testsuite/ld-x86-64/pr22393-3a.c b/ld/testsuite/ld-x86-64/pr22393-3a.c new file mode 100644 index 0000000..68fa4a0 --- /dev/null +++ b/ld/testsuite/ld-x86-64/pr22393-3a.c @@ -0,0 +1,7 @@ +#include <stdio.h> + +void +test() +{ + printf ("PASS\n"); +} diff --git a/ld/testsuite/ld-x86-64/pr22393-3a.rd b/ld/testsuite/ld-x86-64/pr22393-3a.rd new file mode 100644 index 0000000..b7ba110 --- /dev/null +++ b/ld/testsuite/ld-x86-64/pr22393-3a.rd @@ -0,0 +1,9 @@ +#source: pr22393-1.s +#ld: -shared -z textonly +#readelf: -l --wide +#target: *-*-linux-gnu *-*-gnu* *-*-nacl* + +#failif +#... + +[0-9]+ +.*(\.note|\.gnu|\.hash|\.dyn|\.rel).*\.text.* +#... diff --git a/ld/testsuite/ld-x86-64/pr22393-3b.c b/ld/testsuite/ld-x86-64/pr22393-3b.c new file mode 100644 index 0000000..3033809 --- /dev/null +++ b/ld/testsuite/ld-x86-64/pr22393-3b.c @@ -0,0 +1,7 @@ +void test(void); + +int main() +{ + test(); + return 0; +} diff --git a/ld/testsuite/ld-x86-64/pr22393-3b.rd b/ld/testsuite/ld-x86-64/pr22393-3b.rd new file mode 100644 index 0000000..b7ba110 --- /dev/null +++ b/ld/testsuite/ld-x86-64/pr22393-3b.rd @@ -0,0 +1,9 @@ +#source: pr22393-1.s +#ld: -shared -z textonly +#readelf: -l --wide +#target: *-*-linux-gnu *-*-gnu* *-*-nacl* + +#failif +#... + +[0-9]+ +.*(\.note|\.gnu|\.hash|\.dyn|\.rel).*\.text.* +#... diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp index 1f32b23..e7f338e 100644 --- a/ld/testsuite/ld-x86-64/x86-64.exp +++ b/ld/testsuite/ld-x86-64/x86-64.exp @@ -1105,6 +1105,51 @@ if { [isnative] && [which $CC] != 0 } { {} \ "pr22064.so" \ ] \ + [list \ + "Build pr22393-3a.so" \ + "-shared -Wl,-z,separate-code,-z,max-page-size=0x1000" \ + "-fPIC" \ + {pr22393-3a.c} \ + {{readelf -lW pr22393-3a.rd} \ + {readelf -lW pr22393-3b.rd}} \ + "pr22393-3a.so" \ + ] \ + [list \ + "Build pr22393-3a-now.so" \ + "-shared -Wl,-z,separate-code,-z,now,-z,max-page-size=0x1000" \ + "-fPIC" \ + {pr22393-3a.c} \ + {{readelf -lW pr22393-3a.rd} \ + {readelf -lW pr22393-3b.rd}} \ + "pr22393-3a-now.so" \ + ] \ + [list \ + "Build pr22393-3" \ + "$NOPIE_LDFLAGS -Wl,-z,separate-code,-z,max-page-size=0x1000,--no-as-needed tmpdir/pr22393-2a.so" \ + "$NOPIE_CFLAGS" \ + {pr22393-3b.c} \ + {{readelf -lW pr22393-3a.rd} \ + {readelf -lW pr22393-3b.rd}} \ + "pr22393-3" \ + ] \ + [list \ + "Build pr22393-3 (PIE)" \ + "-pie -Wl,-z,separate-code,-z,max-page-size=0x1000,--no-as-needed tmpdir/pr22393-2a-now.so" \ + "-fPIE" \ + {pr22393-3b.c} \ + {{readelf -lW pr22393-3a.rd} \ + {readelf -lW pr22393-3b.rd}} \ + "pr22393-3-pie" \ + ] \ + [list \ + "Build pr22393-3 (static)" \ + "-static -Wl,-z,separate-code,-z,max-page-size=0x1000" \ + "" \ + {pr22393-3a.c pr22393-3b.c} \ + {{readelf -lW pr22393-3a.rd} \ + {readelf -lW pr22393-3b.rd}} \ + "pr22393-3-static" \ + ] \ ] if {[istarget "x86_64-*-linux*-gnux32"]} { @@ -1404,6 +1449,32 @@ if { [isnative] && [which $CC] != 0 } { "pass.out" \ "-fPIE" \ ] \ + [list \ + "Run pr22393-3" \ + "$NOPIE_LDFLAGS -Wl,-z,separate-code,-z,max-page-size=0x1000,--no-as-needed tmpdir/pr22393-3a.so" \ + "" \ + {pr22393-3b.c} \ + "pr22393-3" \ + "pass.out" \ + "$NOPIE_CFLAGS" \ + ] \ + [list \ + "Run pr22393-3 (PIE)" \ + "-pie -Wl,-z,separate-code,-z,max-page-size=0x1000,--no-as-needed tmpdir/pr22393-3a-now.so" \ + "" \ + {pr22393-3b.c} \ + "pr22393-3-pie" \ + "pass.out" \ + "-fPIE" \ + ] \ + [list \ + "Run pr22393-3 (static)" \ + "-static -Wl,-z,separate-code,-z,max-page-size=0x1000" \ + "" \ + {pr22393-3a.c pr22393-3b.c} \ + "pr22393-3-static" \ + "pass.out" \ + ] \ ] # Run-time tests which require working ifunc attribute support. |