x86-64: Add tests for -z separate-code -z max-page-size=0x1000
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 12 Jan 2018 03:19:22 +0000 (19:19 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 12 Jan 2018 03:19:31 +0000 (19:19 -0800)
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.

ld/ChangeLog
ld/testsuite/ld-x86-64/pr22393-3a.c [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr22393-3a.rd [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr22393-3b.c [new file with mode: 0644]
ld/testsuite/ld-x86-64/pr22393-3b.rd [new file with mode: 0644]
ld/testsuite/ld-x86-64/x86-64.exp

index 5b9e3b9e0e67931546f7c30d12517f080b2ced4a..6002fbfd10febc62b284b5a223bd617a834bd3fe 100644 (file)
@@ -1,3 +1,13 @@
+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
diff --git a/ld/testsuite/ld-x86-64/pr22393-3a.c b/ld/testsuite/ld-x86-64/pr22393-3a.c
new file mode 100644 (file)
index 0000000..68fa4a0
--- /dev/null
@@ -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 (file)
index 0000000..b7ba110
--- /dev/null
@@ -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 (file)
index 0000000..3033809
--- /dev/null
@@ -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 (file)
index 0000000..b7ba110
--- /dev/null
@@ -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.*
+#...
index 1f32b2331d19edfe3eb7da72753bdb4c0108dd79..e7f338ee11ee58575c49644aea5adc5907088b14 100644 (file)
@@ -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.