aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/testsuite/ld-x86-64/x86-64.exp85
2 files changed, 52 insertions, 38 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 69e018c..654605b 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,10 @@
2016-08-29 H.J. Lu <hongjiu.lu@intel.com>
+ * testsuite/ld-x86-64/x86-64.exp: Run PR ld/19784 tests only
+ if ifunc attribute works.
+
+2016-08-29 H.J. Lu <hongjiu.lu@intel.com>
+
PR ld/14961
PR ld/20515
* testsuite/ld-i386/i386.exp: Run pr20515.
diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
index 01b6a49..c24eeea 100644
--- a/ld/testsuite/ld-x86-64/x86-64.exp
+++ b/ld/testsuite/ld-x86-64/x86-64.exp
@@ -822,28 +822,6 @@ if { [isnative] && [which $CC] != 0 } {
{{objdump {-dw} pr19319.dd}} \
"pr19319" \
] \
- [list \
- "Build libpr19784a.so" \
- "-shared -Wl,-Bsymbolic-functions" \
- "-fPIC -O2 -g" \
- { pr19784b.c pr19784c.c } \
- {} \
- "libpr19784a.so" \
- ] \
- [list \
- "Build libpr19784b.so" \
- "-shared -Wl,-Bsymbolic-functions" \
- "-fPIC -O2 -g" \
- { pr19784c.c pr19784b.c } \
- {} \
- "libpr19784b.so" \
- ] \
- [list \
- "Build pr19784a.o" \
- "" \
- "" \
- { pr19784a.c } \
- ] \
]
run_ld_link_exec_tests [list \
@@ -914,24 +892,55 @@ if { [isnative] && [which $CC] != 0 } {
"gotpcrel1" \
"gotpcrel1.out" \
] \
- [list \
- "Run pr19784a" \
- "tmpdir/pr19784a.o tmpdir/libpr19784a.so" \
- "" \
- { dummy.s } \
- "pr19784a" \
- "pass.out" \
- ] \
- [list \
- "Run pr19784b" \
- "--as-needed tmpdir/pr19784a.o tmpdir/libpr19784b.so" \
- "" \
- { dummy.s } \
- "pr19784b" \
- "pass.out" \
- ] \
]
+ # Run-time tests which require working ifunc attribute support.
+ if { [check_ifunc_attribute_available] } {
+ run_cc_link_tests [list \
+ [list \
+ "Build libpr19784a.so" \
+ "-shared -Wl,-Bsymbolic-functions" \
+ "-fPIC -O2 -g" \
+ { pr19784b.c pr19784c.c } \
+ {} \
+ "libpr19784a.so" \
+ ] \
+ [list \
+ "Build libpr19784b.so" \
+ "-shared -Wl,-Bsymbolic-functions" \
+ "-fPIC -O2 -g" \
+ { pr19784c.c pr19784b.c } \
+ {} \
+ "libpr19784b.so" \
+ ] \
+ [list \
+ "Build pr19784a.o" \
+ "" \
+ "" \
+ { pr19784a.c } \
+ ] \
+ ]
+
+ run_ld_link_exec_tests [list \
+ [list \
+ "Run pr19784a" \
+ "tmpdir/pr19784a.o tmpdir/libpr19784a.so" \
+ "" \
+ { dummy.s } \
+ "pr19784a" \
+ "pass.out" \
+ ] \
+ [list \
+ "Run pr19784b" \
+ "--as-needed tmpdir/pr19784a.o tmpdir/libpr19784b.so" \
+ "" \
+ { dummy.s } \
+ "pr19784b" \
+ "pass.out" \
+ ] \
+ ]
+ }
+
if { [istarget "x86_64-*-linux*"] \
&& ![istarget "x86_64-*-linux*-gnux32"]} {