From 46175b4e04a91480b85420d9253adfa6c5ff5894 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Sun, 6 Mar 2016 08:26:49 -0800 Subject: [PATCH] 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. --- ld/ChangeLog | 6 ++++++ ld/testsuite/ld-i386/i386.exp | 20 ++++++++++++++------ ld/testsuite/ld-x86-64/x86-64.exp | 20 ++++++++++++++------ 3 files changed, 34 insertions(+), 12 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 2b25adbe093..d325c816a46 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +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-03-04 H.J. Lu PR ld/19579 diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index e5f4aaadd32..bf8e6b6ef92 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -514,18 +514,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" \ ] \ @@ -681,9 +689,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 4b4cf12c89a..cac481eb062 100644 --- a/ld/testsuite/ld-x86-64/x86-64.exp +++ b/ld/testsuite/ld-x86-64/x86-64.exp @@ -571,18 +571,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" \ ] \ @@ -714,9 +722,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" \ ] \ -- 2.30.2