diff options
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | 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"]} { |