From: H.J. Lu Date: Sun, 6 Mar 2016 16:26:49 +0000 (-0800) Subject: Link tmpdir/copyreloc-main.o before tmpdir/copyreloc-lib.so X-Git-Tag: users/ARM/embedded-gdb-2_26-branch-2016q1~4^2~11 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=ca7db4787c6d43376b44827b1ee7a9561696cb68;p=thirdparty%2Fbinutils-gdb.git Link tmpdir/copyreloc-main.o before tmpdir/copyreloc-lib.so Since compiler may pass --as-needed to ld by default, link tmpdir/copyreloc-main.o before tmpdir/copyreloc-lib.so. * testsuite/ld-i386/i386.exp: Link tmpdir/copyreloc-main.o before tmpdir/copyreloc-lib.so and test --as-needed. * testsuite/ld-x86-64/x86-64.exp: Likewise. --- diff --git a/ld/ChangeLog b/ld/ChangeLog index f26ee23edd5..7594faca067 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -17,6 +17,12 @@ * testsuite/ld-x86-64/x86-64.exp: Link tmpdir/pr18900.o before tmpdir/pr18900.so and test --as-needed. + 2016-03-06 H.J. Lu + + * testsuite/ld-i386/i386.exp: Link tmpdir/copyreloc-main.o + before tmpdir/copyreloc-lib.so and test --as-needed. + * testsuite/ld-x86-64/x86-64.exp: Likewise. + 2016-05-20 H.J. Lu Backport from master diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index 02e6769b59c..be456497fda 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -423,18 +423,26 @@ if { [isnative] "copyreloc-lib.so" \ ] \ [list \ - "Build copyreloc-main with PIE and GOTOFF (1)" \ - "tmpdir/copyreloc-lib.so -pie" \ + "Build libcopyreloc-main.a" \ + "" \ "" \ { copyreloc-main.S } \ + {} \ + "libcopyreloc-main.a" \ + ] \ + [list \ + "Build copyreloc-main with PIE and GOTOFF (1)" \ + "tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \ + "" \ + { dummy.s } \ {{readelf {-Wr} copyreloc-main1.rd}} \ "copyreloc-main" \ ] \ [list \ "Build copyreloc-main with PIE and GOTOFF (2)" \ - "tmpdir/copyreloc-lib.so -pie" \ + "tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \ "" \ - { copyreloc-main.S } \ + { dummy.s } \ {{readelf {-Wr} copyreloc-main2.rd}} \ "copyreloc-main" \ ] \ @@ -606,9 +614,9 @@ if { [isnative] ] \ [list \ "Run copyreloc-main with PIE and GOTOFF" \ - "tmpdir/copyreloc-lib.so -pie" \ + "--as-needed tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \ "" \ - { copyreloc-main.S } \ + { dummy.s } \ "copyreloc-main" \ "copyreloc-main.out" \ ] \ diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp index c80f84649e4..484d5e31b83 100644 --- a/ld/testsuite/ld-x86-64/x86-64.exp +++ b/ld/testsuite/ld-x86-64/x86-64.exp @@ -459,18 +459,26 @@ if { [isnative] && [which $CC] != 0 } { "copyreloc-lib.so" \ ] \ [list \ - "Build copyreloc-main with PIE without -fPIE (1)" \ - "tmpdir/copyreloc-lib.so -pie" \ + "Build libcopyreloc-main.a" \ + "" \ "" \ { copyreloc-main.S } \ + {} \ + "libcopyreloc-main.a" \ + ] \ + [list \ + "Build copyreloc-main with PIE without -fPIE (1)" \ + "tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \ + "" \ + { dummy.s } \ {{readelf {-Wr} copyreloc-main1.rd}} \ "copyreloc-main" \ ] \ [list \ "Build copyreloc-main with PIE without -fPIE (2)" \ - "tmpdir/copyreloc-lib.so -pie" \ + "tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \ "" \ - { copyreloc-main.S } \ + { dummy.s } \ {{readelf {-Wr} copyreloc-main2.rd}} \ "copyreloc-main" \ ] \ @@ -625,9 +633,9 @@ if { [isnative] && [which $CC] != 0 } { ] \ [list \ "Run copyreloc-main with PIE without -fPIE" \ - "tmpdir/copyreloc-lib.so -pie" \ + "--as-needed tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \ "" \ - { copyreloc-main.S } \ + { dummy.s } \ "copyreloc-main" \ "copyreloc-main.out" \ ] \