public inbox for gcc-regression@sourceware.org
help / color / mirror / Atom feed
* [TCWG CI] 403.gcc failed to build after binutils: Error on ld output file name matching input file name
@ 2021-12-09  0:25 ci_notify
  2021-12-09  8:08 ` Alan Modra
  0 siblings, 1 reply; 2+ messages in thread
From: ci_notify @ 2021-12-09  0:25 UTC (permalink / raw)
  To: Alan Modra; +Cc: gcc-regression

After binutils commit 43908c16539f486d0b1afc43329bf59d1c3cdd20
Author: Alan Modra <amodra@gmail.com>

    Error on ld output file name matching input file name

the following benchmarks slowed down by more than 2%:
- 403.gcc failed to build

Below reproducer instructions can be used to re-build both "first_bad" and "last_good" cross-toolchains used in this bisection.  Naturally, the scripts will fail when triggerring benchmarking jobs if you don't have access to Linaro TCWG CI.

For your convenience, we have uploaded tarballs with pre-processed source and assembly files at:
- First_bad save-temps: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-master-arm-spec2k6-O2/22/artifact/artifacts/build-43908c16539f486d0b1afc43329bf59d1c3cdd20/save-temps/
- Last_good save-temps: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-master-arm-spec2k6-O2/22/artifact/artifacts/build-21ce5fa063563cb254e0560beb98bd4245b99fb1/save-temps/
- Baseline save-temps: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-master-arm-spec2k6-O2/22/artifact/artifacts/build-baseline/save-temps/

Configuration:
- Benchmark: SPEC CPU2006
- Toolchain: GCC + Glibc + GNU Linker
- Version: all components were built from their tip of trunk
- Target: arm-linux-gnueabihf
- Compiler flags: -O2 -marm
- Hardware: NVidia TK1 4x Cortex-A15

This benchmarking CI is work-in-progress, and we welcome feedback and suggestions at linaro-toolchain@lists.linaro.org .  In our improvement plans is to add support for SPEC CPU2017 benchmarks and provide "perf report/annotate" data behind these reports.

THIS IS THE END OF INTERESTING STUFF.  BELOW ARE LINKS TO BUILDS, REPRODUCTION INSTRUCTIONS, AND THE RAW COMMIT.

This commit has regressed these CI configurations:
 - tcwg_bmk_gnu_tk1/gnu-master-arm-spec2k6-O2

First_bad build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-master-arm-spec2k6-O2/22/artifact/artifacts/build-43908c16539f486d0b1afc43329bf59d1c3cdd20/
Last_good build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-master-arm-spec2k6-O2/22/artifact/artifacts/build-21ce5fa063563cb254e0560beb98bd4245b99fb1/
Baseline build: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-master-arm-spec2k6-O2/22/artifact/artifacts/build-baseline/
Even more details: https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-master-arm-spec2k6-O2/22/artifact/artifacts/

Reproduce builds:
<cut>
mkdir investigate-binutils-43908c16539f486d0b1afc43329bf59d1c3cdd20
cd investigate-binutils-43908c16539f486d0b1afc43329bf59d1c3cdd20

# Fetch scripts
git clone https://git.linaro.org/toolchain/jenkins-scripts

# Fetch manifests and test.sh script
mkdir -p artifacts/manifests
curl -o artifacts/manifests/build-baseline.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-master-arm-spec2k6-O2/22/artifact/artifacts/manifests/build-baseline.sh --fail
curl -o artifacts/manifests/build-parameters.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-master-arm-spec2k6-O2/22/artifact/artifacts/manifests/build-parameters.sh --fail
curl -o artifacts/test.sh https://ci.linaro.org/job/tcwg_bmk_ci_gnu-bisect-tcwg_bmk_tk1-gnu-master-arm-spec2k6-O2/22/artifact/artifacts/test.sh --fail
chmod +x artifacts/test.sh

# Reproduce the baseline build (build all pre-requisites)
./jenkins-scripts/tcwg_bmk-build.sh @@ artifacts/manifests/build-baseline.sh

# Save baseline build state (which is then restored in artifacts/test.sh)
mkdir -p ./bisect
rsync -a --del --delete-excluded --exclude /bisect/ --exclude /artifacts/ --exclude /binutils/ ./ ./bisect/baseline/

cd binutils

# Reproduce first_bad build
git checkout --detach 43908c16539f486d0b1afc43329bf59d1c3cdd20
../artifacts/test.sh

# Reproduce last_good build
git checkout --detach 21ce5fa063563cb254e0560beb98bd4245b99fb1
../artifacts/test.sh

cd ..
</cut>

Full commit (up to 1000 lines):
<cut>
commit 43908c16539f486d0b1afc43329bf59d1c3cdd20
Author: Alan Modra <amodra@gmail.com>
Date:   Tue Dec 7 12:26:55 2021 +1030

    Error on ld output file name matching input file name
    
    It's not foolproof, for example we don't catch output to a linker
    script, to a library specified with -l, or to an element of a thin
    archive.
    
            * ldlang.c (open_output): Exit with error on output file matching
            an input file.
            * testsuite/ld-misc/just-symbols.exp: Adjust ld -r test to suit.
---
 ld/ldlang.c                           | 16 ++++++++++++++++
 ld/testsuite/ld-misc/just-symbols.exp |  2 +-
 2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/ld/ldlang.c b/ld/ldlang.c
index acd90fa8f42..64a8f602093 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -3392,6 +3392,22 @@ lang_get_output_target (void)
 static void
 open_output (const char *name)
 {
+  lang_input_statement_type *f;
+  char *out = lrealpath (name);
+
+  for (f = (void *) input_file_chain.head;
+       f != NULL;
+       f = f->next_real_file)
+    if (f->flags.real)
+      {
+	char *in = lrealpath (f->filename);
+	if (filename_cmp (in, out) == 0)
+	  einfo (_("%F%P: input file '%s' is the same as output file\n"),
+		 f->filename);
+	free (in);
+      }
+  free (out);
+
   output_target = lang_get_output_target ();
 
   /* Has the user requested a particular endianness on the command
diff --git a/ld/testsuite/ld-misc/just-symbols.exp b/ld/testsuite/ld-misc/just-symbols.exp
index 510291473ca..6cfbd34eda9 100644
--- a/ld/testsuite/ld-misc/just-symbols.exp
+++ b/ld/testsuite/ld-misc/just-symbols.exp
@@ -44,7 +44,7 @@ run_ld_link_tests [list \
      "" \
      {just-symbols-0.s} \
      {} \
-     "just-symbols-0.o"] \
+     "just-symbols-r"] \
     [list "Executable for --just-symbols test" \
      "$LDFLAGS -e 0 -T just-symbols.ld" "" \
      "" \
</cut>
>From hjl@sc.intel.com  Thu Dec  9 05:04:27 2021
Return-Path: <hjl@sc.intel.com>
X-Original-To: gcc-regression@gcc.gnu.org
Delivered-To: gcc-regression@gcc.gnu.org
Received: from mga04.intel.com (mga04.intel.com [192.55.52.120])
 by sourceware.org (Postfix) with ESMTPS id 52B633858C39
 for <gcc-regression@gcc.gnu.org>; Thu,  9 Dec 2021 05:04:26 +0000 (GMT)
DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 52B633858C39
X-IronPort-AV: E=McAfee;i="6200,9189,10192"; a="236754015"
X-IronPort-AV: E=Sophos;i="5.88,191,1635231600"; d="scan'208";a="236754015"
Received: from fmsmga003.fm.intel.com ([10.253.24.29])
 by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 08 Dec 2021 21:04:20 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.88,191,1635231600"; d="scan'208";a="601332180"
Received: from scymds01.sc.intel.com ([10.148.94.138])
 by FMSMGA003.fm.intel.com with ESMTP; 08 Dec 2021 21:04:19 -0800
Received: from gnu-34.sc.intel.com (gnu-34.sc.intel.com [172.25.70.212])
 by scymds01.sc.intel.com with ESMTP id 1B954Jdj031180;
 Wed, 8 Dec 2021 21:04:19 -0800
Received: by gnu-34.sc.intel.com (Postfix, from userid 1000)
 id C6DF863560; Wed,  8 Dec 2021 21:04:19 -0800 (PST)
Date: Wed, 08 Dec 2021 21:04:19 -0800
To: skpgkp2@gmail.com, hjl.tools@gmail.com, gcc-regression@gcc.gnu.org
Subject: Regressions on master at commit r12-5850 vs commit r12-5844 on
 Linux/x86_64
User-Agent: Heirloom mailx 12.5 7/5/10
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Message-Id: <20211209050419.C6DF863560@gnu-34.sc.intel.com>
From: "H.J. Lu" <hjl@sc.intel.com>
X-Spam-Status: No, score=-3467.2 required=5.0 tests=BAYES_00, KAM_DMARC_STATUS,
 KAM_LAZY_DOMAIN_SECURITY, KAM_NUMSUBJECT, SPF_HELO_NONE, SPF_NONE,
 TXREP autolearn=no autolearn_force=no version=3.4.4
X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on
 server2.sourceware.org
X-BeenThere: gcc-regression@gcc.gnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Gcc-regression mailing list <gcc-regression.gcc.gnu.org>
List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-regression>,
 <mailto:gcc-regression-request@gcc.gnu.org?subject=unsubscribe>
List-Archive: <https://gcc.gnu.org/pipermail/gcc-regression/>
List-Post: <mailto:gcc-regression@gcc.gnu.org>
List-Help: <mailto:gcc-regression-request@gcc.gnu.org?subject=help>
List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-regression>,
 <mailto:gcc-regression-request@gcc.gnu.org?subject=subscribe>
X-List-Received-Date: Thu, 09 Dec 2021 05:04:27 -0000

New failures:

New passes:
FAIL: gcc.dg/guality/pr36728-4.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 14 y == 2
FAIL: gcc.dg/guality/pr36728-4.c   -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects  -DPREVENT_OPTIMIZATION line 16 y == 2
FAIL: gcc.dg/guality/pr36728-4.c   -O3 -g  -DPREVENT_OPTIMIZATION  line 16 y == 2


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [TCWG CI] 403.gcc failed to build after binutils: Error on ld output file name matching input file name
  2021-12-09  0:25 [TCWG CI] 403.gcc failed to build after binutils: Error on ld output file name matching input file name ci_notify
@ 2021-12-09  8:08 ` Alan Modra
  0 siblings, 0 replies; 2+ messages in thread
From: Alan Modra @ 2021-12-09  8:08 UTC (permalink / raw)
  To: ci_notify; +Cc: gcc-regression

On Thu, Dec 09, 2021 at 12:25:23AM +0000, ci_notify@linaro.org wrote:
> After binutils commit 43908c16539f486d0b1afc43329bf59d1c3cdd20
> Author: Alan Modra <amodra@gmail.com>
> 
>     Error on ld output file name matching input file name
> 
> the following benchmarks slowed down by more than 2%:
> - 403.gcc failed to build

Already fixed.

-- 
Alan Modra
Australia Development Lab, IBM


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-12-09  8:08 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-09  0:25 [TCWG CI] 403.gcc failed to build after binutils: Error on ld output file name matching input file name ci_notify
2021-12-09  8:08 ` Alan Modra

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).