From 23a4bd22c75862fdbaa5faef59b9094ec738f675 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Mon, 7 Mar 2016 09:03:24 -0800 Subject: [PATCH] Support --as-needed in i386/x86-64 tests Since compiler may pass --as-needed to ld by default, link .o file before .so file in i386/x86-64 tests. PR ld/19774 * testsuite/ld-i386/i386.exp: Link tmpdir/pr18900.o before tmpdir/pr18900.so and test --as-needed. Link tmpdir/gotpc1.o before tmpdir/got1d.so and test --as-needed. * testsuite/ld-x86-64/x86-64.exp: Link tmpdir/pr18900.o before tmpdir/pr18900.so and test --as-needed. --- ld/ChangeLog | 9 +++++++++ ld/testsuite/ld-i386/i386.exp | 32 +++++++++++++++++++++++-------- ld/testsuite/ld-x86-64/x86-64.exp | 20 +++++++++++++------ 3 files changed, 47 insertions(+), 14 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index c42042c26e..26dbc30825 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,12 @@ +2016-03-07 H.J. Lu + + PR ld/19774 + * testsuite/ld-i386/i386.exp: Link tmpdir/pr18900.o before + tmpdir/pr18900.so and test --as-needed. Link tmpdir/gotpc1.o + before tmpdir/got1d.so and test --as-needed. + * testsuite/ld-x86-64/x86-64.exp: Link tmpdir/pr18900.o before + tmpdir/pr18900.so and test --as-needed. + 2016-03-07 Jiong Wang * testsuite/ld-aarch64/implicit_got_section_1.s: New test source file. diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index bf8e6b6ef9..5b9d790cbd 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -610,18 +610,26 @@ if { [isnative] "pr18900.so" \ ] \ [list \ - "Build pr18900a" \ - "tmpdir/pr18900.so" \ + "Build pr18900.o" \ + "-r -nostdlib" \ "" \ { pr18900b.c pr18900c.c } \ + "" \ + "pr18900.o" \ + ] \ + [list \ + "Build pr18900a" \ + "tmpdir/pr18900.o tmpdir/pr18900.so" \ + "" \ + { dummy.s } \ {{readelf {-Wrd} pr18900a.rd}} \ "pr18900a" \ ] \ [list \ "Build pr18900b" \ - "tmpdir/pr18900.so" \ + "-Wl,--as-needed tmpdir/pr18900.o tmpdir/pr18900.so" \ "" \ - { pr18900b.c pr18900c.c } \ + { dummy.s } \ {{readelf {-Wrd} pr18900b.rd}} \ "pr18900b" \ ] \ @@ -641,11 +649,19 @@ if { [isnative] "" \ "got1d.so" \ ] \ + [list \ + "Build gotpc1.o" \ + "-r -nostdlib" \ + "" \ + { got1a.S got1b.c got1c.c } \ + "" \ + "gotpc1.o" \ + ] \ [list \ "Build gotpc1" \ - "tmpdir/got1d.so" \ + "-Wl,--as-needed tmpdir/gotpc1.o tmpdir/got1d.so" \ "-Wa,-mrelax-relocations=yes" \ - { got1a.S got1b.c got1c.c } \ + { dummy.s } \ {{objdump {-dw} got1.dd}} \ "got1" \ ] \ @@ -721,9 +737,9 @@ if { [isnative] ] \ [list \ "Run pr18900" \ - "tmpdir/pr18900.so" \ + "tmpdir/pr18900.o tmpdir/pr18900.so" \ "" \ - { pr18900b.c pr18900c.c } \ + { dummy.s } \ "pr18900" \ "pr18900.out" \ ] \ diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp index cac481eb06..4dd7cfa17a 100644 --- a/ld/testsuite/ld-x86-64/x86-64.exp +++ b/ld/testsuite/ld-x86-64/x86-64.exp @@ -643,18 +643,26 @@ if { [isnative] && [which $CC] != 0 } { "pr18900.so" \ ] \ [list \ - "Build pr18900a" \ - "tmpdir/pr18900.so" \ + "Build pr18900.o" \ + "-r -nostdlib" \ "" \ { pr18900b.c pr18900c.c } \ + "" \ + "pr18900.o" \ + ] \ + [list \ + "Build pr18900a" \ + "tmpdir/pr18900.o tmpdir/pr18900.so" \ + "" \ + { dummy.s } \ {{readelf {-Wrd} pr18900a.rd}} \ "pr18900a" \ ] \ [list \ "Build pr18900b" \ - "tmpdir/pr18900.so" \ + "-Wl,--as-needed tmpdir/pr18900.o tmpdir/pr18900.so" \ "" \ - { pr18900b.c pr18900c.c } \ + { dummy.s } \ {{readelf {-Wrd} pr18900b.rd}} \ "pr18900b" \ ] \ @@ -746,9 +754,9 @@ if { [isnative] && [which $CC] != 0 } { ] \ [list \ "Run pr18900" \ - "tmpdir/pr18900.so" \ + "tmpdir/pr18900.o tmpdir/pr18900.so" \ "" \ - { pr18900b.c pr18900c.c } \ + { dummy.s } \ "pr18900" \ "pr18900.out" \ ] \ -- 2.34.1