From patchwork Tue Jan 10 19:00:51 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 90755 Delivered-To: patch@linaro.org Received: by 10.140.20.99 with SMTP id 90csp765008qgi; Tue, 10 Jan 2017 11:01:18 -0800 (PST) X-Received: by 10.98.220.91 with SMTP id t88mr5562683pfg.78.1484074878892; Tue, 10 Jan 2017 11:01:18 -0800 (PST) Return-Path: Received: from sourceware.org (server1.sourceware.org. [209.132.180.131]) by mx.google.com with ESMTPS id m1si3030008pln.8.2017.01.10.11.01.18 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 10 Jan 2017 11:01:18 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-return-95321-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) client-ip=209.132.180.131; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org; spf=pass (google.com: domain of binutils-return-95321-patch=linaro.org@sourceware.org designates 209.132.180.131 as permitted sender) smtp.mailfrom=binutils-return-95321-patch=linaro.org@sourceware.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; q=dns; s=default; b=DOks cabCxMofP5LQvp9SnXmQKZRR3E4SnkBIZQxXf55I/DTndcd0+VvmA+Efq7DSNBoo Z9i32ifSp6iHAjuzgEV68UQbZuALXHHe2VvEQOuW2FV9iKkrS/EyLJNbyUCWAifo j+zWv1mZUlPgDGAAza+vzZK4JQOE4Af3xuCG0nA= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; s=default; bh=cBLl0Qd/Ko zHGTFnK8UNHXaZ4/c=; b=UeOKExu9SUX2Gx7/TtN8aNVsXSEUsftBboDIFNCBFj 1MY3WIpR9OewnM7Qjw8oMg6ZB+yFwjSHwSx26IbxoUu5pciwJU4+f8c9lsWuU5qK AqT6G5ikS7nixCqDjT1DuSuZMor7feKggOXsSkuZf6b3vLlfOD5uC4DeuIIdP68h U= Received: (qmail 115471 invoked by alias); 10 Jan 2017 19:01:04 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Delivered-To: mailing list binutils@sourceware.org Received: (qmail 115458 invoked by uid 89); 10 Jan 2017 19:01:03 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL, BAYES_00, FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, RCVD_IN_SORBS_SPAM, SPF_PASS autolearn=ham version=3.3.2 spammy=hjltoolsgmailcom, hjl.tools@gmail.com, ld, LD X-HELO: mail-qt0-f182.google.com Received: from mail-qt0-f182.google.com (HELO mail-qt0-f182.google.com) (209.85.216.182) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 10 Jan 2017 19:00:53 +0000 Received: by mail-qt0-f182.google.com with SMTP id k15so404241182qtg.3 for ; Tue, 10 Jan 2017 11:00:53 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=cHgxgJnnW8iPOtoltoELZyAfav2+Y2NQI1n0qGOb8Wo=; b=hfnAD6LUpH2cZxXq+fwV8bqCiu/T+fuQ2dQZQiDYzwLd29+PMhDHSsTJdF+p5NsR9g QIneR3nISdAEuOtXVQfX/dC1Wv3HABAaXAukNkor8PzMw4ZqJgz9ryK6wUxG52aBkZrW 4BENEeT9ZJJjSN/2guxUIEaEYGi5AmYVVbZS06Y3hlHoBLQJ6lEYjP84gzFfJ2dA5fUZ vfNUi5KBn+etoYpjGs2RAkS6zas3ogyQmD/Ci4bdPErcbG5NWpLMubgvWgexW2LFSAor m4JPYqOxWEwZzaC/Qd1AZLdf9HgdyrpeN7HIzpuVW9ZpkugjhQO4geeOZgTZTTWeU/7U W6gg== X-Gm-Message-State: AIkVDXItZATgZU2ZrELfRj7CckcA1farZ5sb1zEt/GSLRzlsOL69cLH+r5GcnoM9WBFl0JTr1yWN0LPnlZ+Sqg== X-Received: by 10.237.37.58 with SMTP id v55mr4477384qtc.15.1484074851659; Tue, 10 Jan 2017 11:00:51 -0800 (PST) MIME-Version: 1.0 Received: by 10.55.164.16 with HTTP; Tue, 10 Jan 2017 11:00:51 -0800 (PST) In-Reply-To: <20170102133453.GP29355@bubble.grove.modra.org> References: <20170102133453.GP29355@bubble.grove.modra.org> From: "H.J. Lu" Date: Tue, 10 Jan 2017 11:00:51 -0800 Message-ID: Subject: Re: Run more ld tests when not native To: Alan Modra Cc: Binutils X-IsSubscribed: yes On Mon, Jan 2, 2017 at 5:34 AM, Alan Modra wrote: > Many of the ld tests are not run for cross builds, in some cases > because the test needs to run a newly linked executable, and in others > simply because it was easier to write the test for native only. Even > when a test needs to run, it's good to compile and link to exercise > the linker. So that's what this patch does. I've also rid us of > the old ld_link procedure with all the HOSTING_CRT0 etc. setup. It's > much simpler to just link with $CC. > > This does mean that a cross build with cross-compiler installed but > no cross C-library will give lots of failures. If that turns out to > be too annoying, I guess we can write a tcl procedure to detect it and > not run all the extra tests. > > * Makefile.am (bootstrap): Delete rule. > (ld-partial, ld1, ld1-full, ld2, ld3): Likewise. > (HOSTING_CRT0, HOSTING_SCRT0): Don't define. > (HOSTING_LIBS, HOSTING_SLIBS, HOSTING_EMU): Likewise. > * configure.ac (HOSTING_CRT0, HOSTING_SCRT0): Don't define. > (HOSTING_LIBS, HOSTING_SLIBS): Likewise. > * configure.host (HOSTING_CRT0, HOSTING_LIBS): Don't define. > * Makefile.in: Regenerate. > * configure: Regenerate. > * testsuite/config/default.exp (get_link_files): Delete. > (HOSTING_CRT0, HOSTING_SCRT0, HOSTING_LIBS, HOSTING_SLIBS): Don't > define. > (ld_simple_link): Delete. > * testsuite/lib/ld-lib.exp (default_ld_link): Delete > (default_ld_simple_link): Rename to default_ld_link. > (ld_simple_link_defsyms): Rename to ld_link_defsyms. > (run_ld_link_tests): Use ld_link, not ld_simple_link. > (run_cc_link_tests): Likewise. > (run_ld_link_exec_tests): Use $CC or $CXX to link, not $ld. > Don't run exe when not native, and return unsupported. > * testsuite/ld-bootstrap/bootstrap.exp: Create gccld1 etc. dirs. > Link ld1 etc. using $CC. > * testsuite/ld-cdtest/cdtest.exp: Link cdtest using $CC. > * testsuite/ld-checks/checks.exp: Use ld_link, not ld_simple_link. > * testsuite/ld-cygwin/exe-export.exp: Likewise. > * testsuite/ld-elf/binutils.exp: Likewise. > * testsuite/ld-elf/eh-group.exp: Likewise. > * testsuite/ld-elf/exclude.exp: Likewise. > * testsuite/ld-elf/frame.exp: Likewise. > * testsuite/ld-elf/sec-to-seg.exp: Likewise. > * testsuite/ld-elf/tls_common.exp: Likewise. > * testsuite/ld-elfcomm/elfcomm.exp: Likewise. > * testsuite/ld-fastcall/fastcall.exp: Likewise. > * testsuite/ld-gc/gc.exp: Likewise. > * testsuite/ld-ifunc/binutils.exp: Likewise. > * testsuite/ld-mep/mep.exp: Likewise. > * testsuite/ld-mips-elf/mips-elf-flags.exp: Likewise. > * testsuite/ld-mn10300/mn10300.exp: Likewise. > * testsuite/ld-nios2/nios2.exp: Likewise. > * testsuite/ld-pe/pe-compile.exp: Likewise. > * testsuite/ld-pe/pe-run.exp: Likewise. > * testsuite/ld-pe/pe-run2.exp: Likewise. > * testsuite/ld-plugin/plugin.exp: Likewise. > * testsuite/ld-scripts/align.exp: Likewise. > * testsuite/ld-scripts/alignof.exp: Likewise. > * testsuite/ld-scripts/assert.exp: Likewise. > * testsuite/ld-scripts/defined.exp: Likewise. > * testsuite/ld-scripts/extern.exp: Likewise. > * testsuite/ld-scripts/log2.exp: Likewise. > * testsuite/ld-scripts/map-address.exp: Likewise. > * testsuite/ld-scripts/phdrs.exp: Likewise. > * testsuite/ld-scripts/phdrs2.exp: Likewise. > * testsuite/ld-scripts/script.exp: Likewise. > * testsuite/ld-scripts/section-flags.exp: Likewise. > * testsuite/ld-scripts/sizeof.exp: Likewise. > * testsuite/ld-scripts/sysroot-prefix.exp: Likewise. > * testsuite/ld-scripts/weak.exp: Likewise. > * testsuite/ld-selective/selective.exp: Likewise. > * testsuite/ld-sh/sh.exp: Likewise. > * testsuite/ld-sh/sh64/relax.exp: Likewise. > * testsuite/ld-sh/sh64/relfail.exp: Likewise. > * testsuite/ld-srec/srec.exp: Likewise. > * testsuite/ld-tic6x/tic6x.exp: Likewise. > * testsuite/ld-undefined/weak-undef.exp: Likewise. > * testsuite/ld-versados/versados.exp: Likewise. > * testsuite/ld-x86-64/dwarfreloc.exp: Likewise. > * testsuite/ld-xtensa/coalesce.exp: Likewise. > * testsuite/ld-xtensa/diff_overflow.exp: Likewise. > * testsuite/ld-xtensa/lcall.exp: Likewise. > * testsuite/ld-elf/audit.exp: Run non-native too. > * testsuite/ld-elf/compress.exp: Likewise. Replace ld options with > gcc -Wl, options. > * testsuite/ld-elf/dwarf.exp: Run non-native too. Use ld_link, > not ld_simple_link. Add -Wl,--no-as-needed to some tests. > * testsuite/ld-elf/elf.exp: Run non-native too. Formatting. > * testsuite/ld-elf/indirect.exp: Run non-native too. Add > -Wl,--no-as-needed to most tests. > * testsuite/ld-elf/shared.exp: Run non-native too. Use braces > to simplify quoting. Set run_tests using [list] rather than > brace assignment to expand $extralibs. Add -Wl,--no-as-needed > to many test. Prefix ld options with -Wl,. > (mix_pic_and_non_pic): Don't run exe if not native. > * testsuite/ld-elf/wrap.exp: Run non-native too. Add > -Wl,--no-as-needed and prefix ld options with -Wl,. > * testsuite/ld-elfvers/vers.exp: Run non-native too. Use ld_link, > not ld_simple_link. > * testsuite/ld-elfvsb/elfvsb.exp: Likewise. > (visibility_test): Don't run exe if not native. > * testsuite/ld-elfweak/elfweak.exp: Run non-native too. Use ld_link, > not ld_simple_link. > (build_exec): Don't run exe if not native. > * testsuite/ld-ifunc/ifunc.exp: Run non-native too. Use ld_link, > not ld_simple_link. Link using $CC. Add -Wl,--no-as-needed > to some tests and prefix ld options with -Wl,. Expect GNU > for hppa-linux even when no ifuncs. Delete cleanup. > * testsuite/ld-pie/pie.exp: Run non-native too. > * testsuite/ld-plugin/lto.exp: Likewise. > * testsuite/ld-shared/shared.exp: Likewise. Use ld_link, > not ld_simple_link. > (shared_test): Don't run exe if not native. > * testsuite/ld-size/size.exp: Run non-native too. Add > -Wl,--no-as-needed to some tests. Prefix ld options with -Wl,. > * testsuite/ld-unique/unique.exp: Run non-native too. Use ld_link, > not ld_simple_link. Link using $CC. Add -Wl,--no-as-needed > to some tests and prefix ld options with -Wl,. Expect GNU > for hppa-linux even when no unique syms. Delete cleanup. > * testsuite/ld-x86-64/tls.exp: Add -Wl,--no-as-needed to some > tests and prefix ld options with -Wl,. > * testsuite/ld-x86-64/x86-64.exp: Use ld_link, not ld_simple_link. > Add -Wl,--no-as-needed to some tests. Prefix ld options with -Wl,. > I checked in this patch to fix i386 ld tests. H.J. >From e92372274e77fc0ce87f35a833de8a60d733580a Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 10 Jan 2017 10:54:39 -0800 Subject: [PATCH] i386: Pass -Wl,-R,tmpdir/-Wl --as-needed to $CC Since linker tests were changed to use $CC, instead of $LD, we need to pass -Wl,-R,tmpdir and -Wl,--as-needed to $CC. * testsuite/ld-i386/i386.exp: Pass -Wl,-R,tmpdir to GCC driver. * testsuite/ld-i386/tls.exp: Likewise. --- ld/ChangeLog | 6 ++++++ ld/testsuite/ld-i386/i386.exp | 4 ++-- ld/testsuite/ld-i386/tls.exp | 6 +++--- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ld/ChangeLog b/ld/ChangeLog index 72826b9..ef2c466 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,9 @@ +2017-01-10 H.J. Lu + + * testsuite/ld-i386/i386.exp: Pass -Wl,-R,tmpdir and + -Wl,--as-needed to $CC. + * testsuite/ld-i386/tls.exp: Likewise. + 2017-01-10 Nick Clifton * po/sv.po: Updated Swedish translation. diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index e748e8b..973a110 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -472,7 +472,7 @@ proc undefined_weak {cflags ldflags} { run_ld_link_exec_tests [list \ [list \ "Run pr19704" \ - "$ldflags tmpdir/libpr19704.so -R tmpdir" \ + "$ldflags tmpdir/libpr19704.so -Wl,-R,tmpdir" \ "" \ { pr19704a.c } \ "pr19704" \ @@ -757,7 +757,7 @@ if { [isnative] ] \ [list \ "Run copyreloc-main with PIE and GOTOFF" \ - "--as-needed tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \ + "-Wl,--as-needed tmpdir/copyreloc-main.o tmpdir/copyreloc-lib.so -pie" \ "" \ { dummy.s } \ "copyreloc-main" \ diff --git a/ld/testsuite/ld-i386/tls.exp b/ld/testsuite/ld-i386/tls.exp index 3cf183e..1653104 100644 --- a/ld/testsuite/ld-i386/tls.exp +++ b/ld/testsuite/ld-i386/tls.exp @@ -98,7 +98,7 @@ run_ld_link_exec_tests [list \ [list \ "TLS GD/LD -> IE transition without PLT" \ "tmpdir/tls-main1.o tmpdir/tls-gd1.o tmpdir/tls-ld1.o \ - tmpdir/libtls-1a.so -R tmpdir" \ + tmpdir/libtls-1a.so -Wl,-R,tmpdir" \ "" \ { dummy.s } \ "tls-1d" \ @@ -107,7 +107,7 @@ run_ld_link_exec_tests [list \ [list \ "TLS without PLT (1)" \ "tmpdir/tls-main1.o \ - tmpdir/libtls-1a.so tmpdir/libtls-1b.so -R tmpdir" \ + tmpdir/libtls-1a.so tmpdir/libtls-1b.so -Wl,-R,tmpdir" \ "" \ { dummy.s } \ "tls-1e" \ @@ -116,7 +116,7 @@ run_ld_link_exec_tests [list \ [list \ "TLS without PLT (2)" \ "tmpdir/tls-main1.o tmpdir/tls-def1.o \ - tmpdir/libtls-1b.so -R tmpdir" \ + tmpdir/libtls-1b.so -Wl,-R,tmpdir" \ "" \ { dummy.s } \ "tls-1f" \ -- 2.7.4