other/9479: ld --version parsing in gcc configury fails on latest FSF binutils-2.13.2.1

Greg Schafer gschafer@zip.com.au
Fri Feb 7 02:14:00 GMT 2003


Here is a better patch that also allows for binutils version strings with 5
or more digits (a la HJL binutils releases).

The initial patch WAS applied to the gcc-3.2 branch before the release of
gcc-3.2.2 so the immediate problem was fixed.

However, this new patch should fix the problem for ever more and therefore
should be applied to all branches (3.2, 3.3 & 3.4).

As of this writing, the current FSF binutils release is still 2.23.2.1 so
people using that version with gcc-3.3 & 3.4 are building subtley broken
gcc's.

There are 2 patches below. The 1st will apply to 3.4 & 3.3. The second will
apply to 3.2

Patch this time supplied by:-
Dan Osterrath <do3@mail.inf.tu-dresden.de>

I have tested it by throwing various strings at the regex and it does the
right thing in all cases.


Greg
-------------- next part --------------
diff -uNr gcc.orig/gcc/configure.in gcc/gcc/configure.in
--- gcc.orig/gcc/configure.in	2003-02-07 12:49:24.000000000 +1100
+++ gcc/gcc/configure.in	2003-02-07 12:53:34.000000000 +1100
@@ -1675,7 +1675,7 @@
 	ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1`
 	if echo "$ld_ver" | grep GNU > /dev/null; then
 changequote(,)dnl
-		ld_vers=`echo $ld_ver | sed -n 's,^.*[ 	]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\([ 	].*\|\)$,\1,p'`
+		ld_vers=`echo $ld_ver | sed -n 's,^.*[  ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)*\)\([     ].*\|\)$,\1,p'`
 		ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
 		if test 0"$ld_date" -lt 20020404; then
 			if test -n "$ld_date"; then
-------------- next part --------------
diff -uNr gcc.orig/gcc/configure.in gcc/gcc/configure.in
--- gcc.orig/gcc/configure.in	2003-02-05 13:44:33.000000000 +1100
+++ gcc/gcc/configure.in	2003-02-07 13:11:02.000000000 +1100
@@ -1537,7 +1537,7 @@
 	ld_ver=`$gcc_cv_ld --version 2>/dev/null | head -1`
 	if echo "$ld_ver" | grep GNU > /dev/null; then
 changequote(,)dnl
-		ld_vers=`echo $ld_ver | sed -n 's,^.*[ 	]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)\)\)\([ 	].*\|\)$,\1,p'`
+		ld_vers=`echo $ld_ver | sed -n 's,^.*[  ]\([0-9][0-9]*\.[0-9][0-9]*\(\|\.[0-9][0-9]*\)*\)\([     ].*\|\)$,\1,p'`
 		ld_date=`echo $ld_ver | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
 		if test 0"$ld_date" -lt 20020404; then
 			if test -n "$ld_date"; then


More information about the Gcc-bugs mailing list