]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - ld/testsuite/ld-elf/linux-x86.exp
elf: Add GNU_PROPERTY_1_NEEDED check
[thirdparty/binutils-gdb.git] / ld / testsuite / ld-elf / linux-x86.exp
index 7e3a0b7d84a407a3b94562a1606ed3a36e4ac948..819237415e6404c8ee8034ab5b88b008342118af 100644 (file)
@@ -73,6 +73,103 @@ run_ld_link_tests [list \
     ] \
 ]
 
+run_cc_link_tests [list \
+    [list \
+       "Build indirect-extern-access-1.so" \
+       "-shared" \
+       "-fPIC" \
+       { indirect-extern-access-1a.c } \
+       {} \
+       "indirect-extern-access-1.so" \
+    ] \
+    [list \
+       "Build indirect-extern-access-1a without PIE" \
+       "$NOPIE_LDFLAGS -Wl,--no-as-needed  \
+        tmpdir/indirect-extern-access-1.so" \
+       "$NOPIE_CFLAGS" \
+       { indirect-extern-access.S indirect-extern-access-1b.c } \
+       {{readelf -rn indirect-extern-access-1.rd}} \
+       "indirect-extern-access-1a" \
+    ] \
+    [list \
+       "Build indirect-extern-access-2.so" \
+       "-shared" \
+       "-fPIC" \
+       { indirect-extern-access-2a.c } \
+       {} \
+       "indirect-extern-access-2.so" \
+    ] \
+    [list \
+       "Build indirect-extern-access-2a without PIE" \
+       "$NOPIE_LDFLAGS -Wl,--no-as-needed  \
+        tmpdir/indirect-extern-access-2.so" \
+       "$NOPIE_CFLAGS" \
+       { indirect-extern-access.S indirect-extern-access-1b.c } \
+       {{readelf -rn indirect-extern-access-2.rd}} \
+       "indirect-extern-access-2a" \
+    ] \
+    [list \
+       "Build indirect-extern-access-2b with PIE" \
+       "-pie -Wl,--no-as-needed  \
+        tmpdir/indirect-extern-access-2.so" \
+       "-fpie" \
+       { indirect-extern-access.S indirect-extern-access-2b.c } \
+       {{readelf -rn indirect-extern-access-3.rd}} \
+       "indirect-extern-access-2b" \
+    ] \
+]
+
+run_ld_link_exec_tests [list \
+    [list \
+       "Run indirect-extern-access-1a without PIE" \
+       "$NOPIE_LDFLAGS" \
+       "" \
+       { indirect-extern-access.S indirect-extern-access-1b.c } \
+       "indirect-extern-access-1a" \
+       "pass.out" \
+       "$NOPIE_CFLAGS" \
+       "" \
+       "" \
+       "tmpdir/indirect-extern-access-1.so" \
+    ] \
+    [list \
+       "Run indirect-extern-access-1b with PIE" \
+       "-pie" \
+       "" \
+       { indirect-extern-access.S indirect-extern-access-1b.c } \
+       "indirect-extern-access-1b" \
+       "pass.out" \
+       "-fpie" \
+       "" \
+       "" \
+       "tmpdir/indirect-extern-access-1.so" \
+    ] \
+    [list \
+       "Run indirect-extern-access-2a without PIE" \
+       "$NOPIE_LDFLAGS" \
+       "" \
+       { indirect-extern-access.S indirect-extern-access-2b.c } \
+       "indirect-extern-access-2a" \
+       "pass.out" \
+       "$NOPIE_CFLAGS" \
+       "" \
+       "" \
+       "tmpdir/indirect-extern-access-2.so" \
+    ] \
+    [list \
+       "Run indirect-extern-access-2b with PIE" \
+       "-pie" \
+       "" \
+       { indirect-extern-access.S indirect-extern-access-2b.c } \
+       "indirect-extern-access-2b" \
+       "pass.out" \
+       "-fpie" \
+       "" \
+       "" \
+       "tmpdir/indirect-extern-access-2.so" \
+    ] \
+]
+
 proc elfedit_test { options test output } {
     global ELFEDIT
     global READELF