[PR other/79543] Fix GNU ld --version scanning to conform to the GNU Coding Standards
Thomas Schwinge
thomas@codesourcery.com
Thu Oct 19 16:48:00 GMT 2017
Hi!
As discussed in <https://gcc.gnu.org/PR79543>:
| [...] 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:
<https://www.gnu.org/prep/standards/html_node/_002d_002dversion.html>:
"[...] 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
| <http://mid.mail-archive.com/6351bfaf-d64e-5f73-9749-78b469dba5fa@mentor.com>.)
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 <execinfo.h> 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 <sys/filio.h> 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 <EMAIL>" so that your effort will be
recorded. See <https://gcc.gnu.org/wiki/Reviewed-by>.
commit 9f6652fe67efbde9da3ac74e81acc7776fc6a8e6
Author: Thomas Schwinge <thomas@codesourcery.com>
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(-)
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 }'`
Grüße
Thomas
More information about the Gcc-patches
mailing list