From patchwork Thu Oct 19 16:35:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Thomas Schwinge X-Patchwork-Id: 828222 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-464560-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="qGGKRVTj"; dkim-atps=neutral Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3yHvjw414rz9t6m for ; Fri, 20 Oct 2017 03:37:56 +1100 (AEDT) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:mime-version:content-type :content-transfer-encoding; q=dns; s=default; b=Ra/JN+llx0vWhi6R XMlVB5jGZJwbBEtkvC0nZBtjtvWdhLdiEqRYpfPfbcDOO+J4rrwDh82YMEzyJr2m eBaXWMQI5baehIIwz3THDa5wI9fnCtoSLSrvSb1otDAaUYycshuAsIRsEvcrgkJW /VNh+JSWW+zMh3L/BAj3JzBx92U= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:mime-version:content-type :content-transfer-encoding; s=default; bh=001/CH8VY59jSGyDkuODvC shjc4=; b=qGGKRVTjXrsUi9x5v8mBJmZ24y9n5dQOhHBJ3NXerJNPkSpDZp+rEF tKSCNspGGCUseRFilr0AGTrdkNzy4KQARJ1YpTirKar5qFJyT44BGlxs9nzTtIj7 HoABS40JIRQzn9j62jXsC9QpkIKezzfziIX/IKbyYJnpkvxWdlo8A= Received: (qmail 59986 invoked by alias); 19 Oct 2017 16:37:47 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 59969 invoked by uid 89); 19 Oct 2017 16:37:46 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_STOCKGEN, RCVD_IN_DNSWL_NONE, SPF_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy=H*Ad:D*gmx.de, H*Ad:U*bonzini, prep, LD X-Spam-User: qpsmtpd, 2 recipients X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 19 Oct 2017 16:37:43 +0000 Received: from svr-orw-fem-02x.mgc.mentorg.com ([147.34.96.206] helo=SVR-ORW-FEM-02.mgc.mentorg.com) by relay1.mentorg.com with esmtps (TLSv1:ECDHE-RSA-AES256-SHA:256) id 1e5DpF-00007y-Bd from Thomas_Schwinge@mentor.com ; Thu, 19 Oct 2017 09:37:41 -0700 Received: from tftp-cs (147.34.91.1) by svr-orw-fem-02.mgc.mentorg.com (147.34.96.168) with Microsoft SMTP Server id 14.3.224.2; Thu, 19 Oct 2017 09:37:41 -0700 Received: by tftp-cs (Postfix, from userid 49978) id 9C5BEC22BB; Thu, 19 Oct 2017 09:37:40 -0700 (PDT) From: Thomas Schwinge To: CC: Paolo Bonzini , DJ Delorie , Nathanael Nerode , Alexandre Oliva , Ralf Wildenhues , Joseph Myers Subject: [PR other/79543] Fix GNU ld --version scanning to conform to the GNU Coding Standards User-Agent: Notmuch/0.9-125-g4686d11 (http://notmuchmail.org) Emacs/25.2.1 (x86_64-pc-linux-gnu) Date: Thu, 19 Oct 2017 18:35:09 +0200 Message-ID: <87po9jhz9e.fsf@euler.schwinge.homeip.net> MIME-Version: 1.0 Hi! As discussed in : | [...] target | libraries [...] conditionally use certain linker features, depending on linker | version numbers. For example, linker version scripts in libgomp; see | LIBGOMP_BUILD_VERSIONED_SHLIB, LIBGOMP_BUILD_VERSIONED_SHLIB_GNU usage in | libgomp/Makefile.am, which are defined in libgomp/acinclude.m4 based on the | enable_symvers value, which is set by some logic depending on "ld --version" | output. Looking at one specific build's libgomp/config.log, I see: | | [...] | configure:16132: checking if the linker ([...]/gcc/collect-ld) is GNU ld | configure:16147: result: yes | [...] | configure:16389: WARNING: === Linker version 1125 is too old for | configure:16391: WARNING: === full symbol versioning support in this release of GCC. | configure:16393: WARNING: === You would need to upgrade your binutils to version | configure:16395: WARNING: === 21400 or later and rebuild GCC. | configure:16404: WARNING: === Symbol versioning will be disabled. | [...] | | Now, what is this "1125" linker version? | | $ [...]/gcc/collect-ld --version | GNU ld (Sourcery CodeBench ([...]) Lite 2015.11-[...]) 2.25.51 | | ..., and then apply the "magic" used in libgomp/acinclude.m4 to compute | libgomp_gnu_ld_version: | | $ [...]/gcc/collect-ld --version | sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q' | awk -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }' | 1125 | | "1125" instead of the expected "22551". That's pretty weird, and I suppose it | may be causing all kinds of "interesting" issues, when using a linker that has | been configured to override/augment its version string? Specifically, it's the additional set of nested parens that is confusing the sed command. | Joseph told me that "the correct logic for finding the version number is to | take everything after the last space on the first line of the output, as per | the GNU Coding Standards. See here: : "[...] the version number proper starts after the last space. [...]" | (It's possible some very old binutils versions may | not have properly formatted output; my view is that each GCC version should | have a minimum corresponding binutils version, no more than say five years old, | for targets using GNU binutils.)" (Agreed. That's for another day.) | Yet better, obviously, would be to not rely on such version-based decisions at | all. (That, too.) | (Hopefully, similar parsing is not also being done for "as --version", or other | tools (That, too; not verified now.) | and this was just a one-off problem, possibly originally introduced in | libstdc++-v3/acinclude.m4, 15 years ago, and the copied from there to other | target libraries? I haven't looked in detail.) (Also, I don't know what the GNU Conding Standards described, 15 years ago.) | (For reference, this is the root cause for the issue reported in | .) In addition to that libgomp example, the problem can be observed for libstdc++ in the following existing test cases libgomp.oacc-c++/../libgomp.oacc-c-c++-common/context-1.c, libgomp.oacc-c++/../libgomp.oacc-c-c++-common/context-2.c, libgomp.oacc-c++/../libgomp.oacc-c-c++-common/context-3.c, libgomp.oacc-c++/../libgomp.oacc-c-c++-common/context-4.c, and libgomp.oacc-c++/../libgomp.oacc-c-c++-common/host_data-1.c. Trying to link in cuBLAS (these require a nvptx offloading configuration), these FAIL to compile: /usr/lib/x86_64-linux-gnu/libcublas.so: undefined reference to `operator delete[](void*)@GLIBCXX_3.4' /usr/lib/x86_64-linux-gnu/libcublas.so: undefined reference to `operator new[](unsigned long)@GLIBCXX_3.4' Applying the following patch (that is, simplying the sed command), makes the problem go away: -sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` +sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` In one specific build, this causes the following changes: x86_64-none-linux-gnu/libatomic/config.log: [...] -configure:15071: WARNING: === Linker version 1125 is too old for -configure:15073: WARNING: === full symbol versioning support in this release of GCC. -configure:15075: WARNING: === You would need to upgrade your binutils to version -configure:15077: WARNING: === 21400 or later and rebuild GCC. -configure:15086: WARNING: === Symbol versioning will be disabled. -configure:15136: versioning on shared library symbols is no +configure:15136: versioning on shared library symbols is gnu [...] x86_64-none-linux-gnu/libgomp/config.log: [...] -configure:16458: WARNING: === Linker version 1125 is too old for -configure:16460: WARNING: === full symbol versioning support in this release of GCC. -configure:16462: WARNING: === You would need to upgrade your binutils to version -configure:16464: WARNING: === 21400 or later and rebuild GCC. -configure:16473: WARNING: === Symbol versioning will be disabled. [...] -configure:16550: versioning on shared library symbols is no +configure:16550: versioning on shared library symbols is gnu [...] x86_64-none-linux-gnu/libstdc++-v3/config.log: [...] configure:53843: checking for ld version -configure:53854: result: 1125 +configure:53854: result: 22551 +configure:53881: checking for ld that supports -Wl,--gc-sections +configure:53899: [...] +configure:53899: $? = 0 +configure:53920: result: yes [...] -configure:79256: WARNING: === Linker version 1125 is too old for -configure:79258: WARNING: === full symbol versioning support in this release of GCC. -configure:79260: WARNING: === You would need to upgrade your binutils to version -configure:79262: WARNING: === 21400 or later and rebuild GCC. -configure:79264: WARNING: === Symbol versioning will be disabled. [...] -configure:79350: versioning on shared library symbols is no +configure:79350: versioning on shared library symbols is gnu [...] +configure:80758: checking for first version to support std::exception_ptr +configure:80795: result: 4.6.0 [...] x86_64-none-linux-gnu/libstdc++-v3/Makefile: SECTION_FLAGS = -ffunction-sections -fdata-sections -SECTION_LDFLAGS = +SECTION_LDFLAGS = -Wl,--gc-sections -SYMVER_FILE = config/abi/pre/none.ver +SYMVER_FILE = config/abi/pre/gnu.ver x86_64-none-linux-gnu/libstdc++-v3/config.h: /* Define to 1 if GCC 4.6 supported std::exception_ptr for the target */ -/* #undef HAVE_EXCEPTION_PTR_SINCE_GCC46 */ +#define HAVE_EXCEPTION_PTR_SINCE_GCC46 1 /* Define to 1 if you have the header file. */ #define HAVE_EXECINFO_H 1 @@ -405,7 +405,7 @@ /* Define to 1 if the target runtime linker supports binding the same symbol to different versions. */ -/* #undef HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT */ +#define HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT 1 /* Define to 1 if you have the header file. */ /* #undef HAVE_SYS_FILIO_H */ @@ -842,13 +842,13 @@ #define _GLIBCXX_STDIO_SEEK_END 2 /* Define to use symbol versioning in the shared library. */ -/* #undef _GLIBCXX_SYMVER */ +#define _GLIBCXX_SYMVER 1 /* Define to use darwin versioning in the shared library. */ /* #undef _GLIBCXX_SYMVER_DARWIN */ /* Define to use GNU versioning in the shared library. */ -/* #undef _GLIBCXX_SYMVER_GNU */ +#define _GLIBCXX_SYMVER_GNU 1 /* Define to use GNU namespace versioning in the shared library. */ /* #undef _GLIBCXX_SYMVER_GNU_NAMESPACE */ Pending testing, I propose to commit the following patch to trunk, and similar for gcc-7-branch, and gcc-6-branch. If approving this, please respond with "Reviewed-by: NAME " so that your effort will be recorded. See . commit 9f6652fe67efbde9da3ac74e81acc7776fc6a8e6 Author: Thomas Schwinge Date: Wed Oct 18 15:24:46 2017 +0200 [PR other/79543] Fix GNU ld --version scanning to conform to the GNU Coding Standards libatomic/ PR other/79543 * acinclude.m4 (LIBAT_CHECK_LINKER_FEATURES): Fix GNU ld --version scanning to conform to the GNU Coding Standards. * configure: Regenerate. libffi/ PR other/79543 * acinclude.m4 (LIBAT_CHECK_LINKER_FEATURES): Fix GNU ld --version scanning to conform to the GNU Coding Standards. * configure: Regenerate. libgomp/ PR other/79543 * acinclude.m4 (LIBGOMP_CHECK_LINKER_FEATURES): Fix GNU ld --version scanning to conform to the GNU Coding Standards. * configure: Regenerate. libitm/ PR other/79543 * acinclude.m4 (LIBITM_CHECK_LINKER_FEATURES): Fix GNU ld --version scanning to conform to the GNU Coding Standards. * configure: Regenerate. libstdc++-v3/ PR other/79543 * acinclude.m4 (GLIBCXX_CHECK_LINKER_FEATURES): Fix GNU ld --version scanning to conform to the GNU Coding Standards. * configure: Regenerate. --- libatomic/acinclude.m4 | 4 ++-- libatomic/configure | 2 +- libffi/acinclude.m4 | 4 ++-- libffi/configure | 2 +- libgomp/acinclude.m4 | 2 +- libgomp/configure | 2 +- libitm/acinclude.m4 | 2 +- libitm/configure | 2 +- libstdc++-v3/acinclude.m4 | 2 +- libstdc++-v3/configure | 22 +++++++++++----------- 10 files changed, 22 insertions(+), 22 deletions(-) Grüße Thomas diff --git libatomic/acinclude.m4 libatomic/acinclude.m4 index 383218f..6a3c5c5 100644 --- libatomic/acinclude.m4 +++ libatomic/acinclude.m4 @@ -336,7 +336,7 @@ AC_DEFUN([LIBAT_CHECK_LINKER_FEATURES], [ fi changequote(,) ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` changequote([,]) libat_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'` @@ -438,7 +438,7 @@ AC_DEFUN([LIBAT_CHECK_LINKER_FEATURES], [ fi changequote(,) ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` changequote([,]) libat_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'` diff --git libatomic/configure libatomic/configure index e88a7b8..7d47525 100755 --- libatomic/configure +++ libatomic/configure @@ -14873,7 +14873,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` libat_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` diff --git libffi/acinclude.m4 libffi/acinclude.m4 index 270dadf..0f2c1ea 100644 --- libffi/acinclude.m4 +++ libffi/acinclude.m4 @@ -178,7 +178,7 @@ AC_DEFUN([LIBAT_CHECK_LINKER_FEATURES], [ fi changequote(,) ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` changequote([,]) libat_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'` @@ -280,7 +280,7 @@ AC_DEFUN([LIBAT_CHECK_LINKER_FEATURES], [ fi changequote(,) ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` changequote([,]) libat_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'` diff --git libffi/configure libffi/configure index 74b747b..f82fe11 100755 --- libffi/configure +++ libffi/configure @@ -16167,7 +16167,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` libat_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` diff --git libgomp/acinclude.m4 libgomp/acinclude.m4 index d43aa88..d9d9da8 100644 --- libgomp/acinclude.m4 +++ libgomp/acinclude.m4 @@ -153,7 +153,7 @@ AC_DEFUN([LIBGOMP_CHECK_LINKER_FEATURES], [ fi changequote(,) ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` changequote([,]) libgomp_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'` diff --git libgomp/configure libgomp/configure index b7e9f40..efcf3f5 100755 --- libgomp/configure +++ libgomp/configure @@ -16256,7 +16256,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` libgomp_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` diff --git libitm/acinclude.m4 libitm/acinclude.m4 index c81b3e9..7c26756 100644 --- libitm/acinclude.m4 +++ libitm/acinclude.m4 @@ -246,7 +246,7 @@ AC_DEFUN([LIBITM_CHECK_LINKER_FEATURES], [ fi changequote(,) ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` changequote([,]) libitm_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'` diff --git libitm/configure libitm/configure index 775f370..1ce18fd 100644 --- libitm/configure +++ libitm/configure @@ -16828,7 +16828,7 @@ fi fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` libitm_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` diff --git libstdc++-v3/acinclude.m4 libstdc++-v3/acinclude.m4 index 599308f..e4a64ce 100644 --- libstdc++-v3/acinclude.m4 +++ libstdc++-v3/acinclude.m4 @@ -219,7 +219,7 @@ AC_DEFUN([GLIBCXX_CHECK_LINKER_FEATURES], [ glibcxx_ld_is_gold=yes fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` changequote([,]) glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) [$]3=0; print ([$]1*100+[$]2)*100+[$]3 }'` diff --git libstdc++-v3/configure libstdc++-v3/configure index 836a6d5..ece031d 100755 --- libstdc++-v3/configure +++ libstdc++-v3/configure @@ -21961,7 +21961,7 @@ $as_echo_n "checking for ld version... " >&6; } glibcxx_ld_is_gold=yes fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -29106,7 +29106,7 @@ $as_echo_n "checking for ld version... " >&6; } glibcxx_ld_is_gold=yes fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -35100,7 +35100,7 @@ $as_echo_n "checking for ld version... " >&6; } glibcxx_ld_is_gold=yes fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -41220,7 +41220,7 @@ $as_echo_n "checking for ld version... " >&6; } glibcxx_ld_is_gold=yes fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -53141,7 +53141,7 @@ $as_echo_n "checking for ld version... " >&6; } glibcxx_ld_is_gold=yes fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -53372,7 +53372,7 @@ $as_echo_n "checking for ld version... " >&6; } glibcxx_ld_is_gold=yes fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -53847,7 +53847,7 @@ $as_echo_n "checking for ld version... " >&6; } glibcxx_ld_is_gold=yes fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -60200,7 +60200,7 @@ $as_echo_n "checking for ld version... " >&6; } glibcxx_ld_is_gold=yes fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -66116,7 +66116,7 @@ $as_echo_n "checking for ld version... " >&6; } glibcxx_ld_is_gold=yes fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -66283,7 +66283,7 @@ $as_echo_n "checking for ld version... " >&6; } glibcxx_ld_is_gold=yes fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'` @@ -66511,7 +66511,7 @@ $as_echo_n "checking for ld version... " >&6; } glibcxx_ld_is_gold=yes fi ldver=`$LD --version 2>/dev/null | - sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'` + sed -e 's/GNU gold /GNU ld /;s/GNU ld .* \(.*\)/\1/; q'` glibcxx_gnu_ld_version=`echo $ldver | \ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`