Support --as-needed in i386/x86-64 tests
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 7 Mar 2016 17:03:24 +0000 (09:03 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 7 Mar 2016 17:03:24 +0000 (09:03 -0800)
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
ld/testsuite/ld-i386/i386.exp
ld/testsuite/ld-x86-64/x86-64.exp

index c42042c..26dbc30 100644 (file)
@@ -1,3 +1,12 @@
+2016-03-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       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  <jiong.wang@arm.com>
 
        * testsuite/ld-aarch64/implicit_got_section_1.s: New test source file.
index bf8e6b6..5b9d790 100644 (file)
@@ -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" \
        ] \
@@ -642,10 +650,18 @@ 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" \
        ] \
index cac481e..4dd7cfa 100644 (file)
@@ -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" \
        ] \