[binutils-gdb] Run PR ld/19784 tests only if ifunc attribute works

H.J.Lu hjl@sourceware.org
Mon Aug 29 16:10:00 GMT 2016


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3c4f32287f2271ee46cf57669f867b39f716fe46

commit 3c4f32287f2271ee46cf57669f867b39f716fe46
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Aug 29 09:09:14 2016 -0700

    Run PR ld/19784 tests only if ifunc attribute works
    
    	* testsuite/ld-x86-64/x86-64.exp: Run PR ld/19784 tests only
    	if ifunc attribute works.

Diff:
---
 ld/ChangeLog                      |  5 +++
 ld/testsuite/ld-x86-64/x86-64.exp | 85 ++++++++++++++++++++++-----------------
 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"]} {



More information about the Binutils-cvs mailing list