binutils 2.22 requirement for glibc 2.21?

Message ID 54948110.1080700@ezchip.com
State Dropped
Headers

Commit Message

Chris Metcalf Dec. 19, 2014, 7:48 p.m. UTC
  The minimum binutils was recently updated from 2.20 to 2.22.  It seems
that this had something to do with libmvec vector math functions, as
discussed here:

https://sourceware.org/ml/libc-alpha/2014-09/msg00586.html

although the actual requirements on binutils and the assembler were not
specified in that email thread as far as I can see.

Since the current tilegx release ships with binutils 2.21, this imposes
a slight additional awkwardness on building and testing glibc on that
platform, so I wondered what the actual rationale for 2.22 was, and if
it would be possible to back off 2.21 instead.  If there is a
requirement for 2.22 for Intel, perhaps it can be expressed as a
separate requirement just for that platform.

Certainly building with binutils 2.21 seems to work fine on tilegx
(although I'm still working through some other issues with -Werror, etc).

For completeness, here is the change to switch back to 2.21:

2014-12-19  Chris Metcalf  <cmetcalf@ezchip.com>

         * configure.ac: Backed off binutils minimum version to 2.21.
         * manual/install.texi (Tools for Compilation): Updated version
         number.
         * configure: Regenerated.
         * INSTALL: Likewise.
  

Comments

Chris Metcalf Dec. 26, 2014, 2:54 p.m. UTC | #1
Ping.

On 12/19/2014 2:48 PM, Chris Metcalf wrote:
> The minimum binutils was recently updated from 2.20 to 2.22.  It seems
> that this had something to do with libmvec vector math functions, as
> discussed here:
>
> https://sourceware.org/ml/libc-alpha/2014-09/msg00586.html
>
> although the actual requirements on binutils and the assembler were not
> specified in that email thread as far as I can see.
>
> Since the current tilegx release ships with binutils 2.21, this imposes
> a slight additional awkwardness on building and testing glibc on that
> platform, so I wondered what the actual rationale for 2.22 was, and if
> it would be possible to back off 2.21 instead.  If there is a
> requirement for 2.22 for Intel, perhaps it can be expressed as a
> separate requirement just for that platform.
>
> Certainly building with binutils 2.21 seems to work fine on tilegx
> (although I'm still working through some other issues with -Werror, etc).
>
> For completeness, here is the change to switch back to 2.21:
>
> 2014-12-19  Chris Metcalf  <cmetcalf@ezchip.com>
>
>         * configure.ac: Backed off binutils minimum version to 2.21.
>         * manual/install.texi (Tools for Compilation): Updated version
>         number.
>         * configure: Regenerated.
>         * INSTALL: Likewise.
>
> diff --git a/INSTALL b/INSTALL
> index 35f70e0f5e4f..4ebe45c6e1a4 100644
> --- a/INSTALL
> +++ b/INSTALL
> @@ -350,7 +350,7 @@ build the GNU C Library:
>       Check the FAQ for any special compiler issues on particular
>       platforms.
>
> -   * GNU `binutils' 2.22 or later
> +   * GNU `binutils' 2.21 or later
>
>       You must use GNU `binutils' (as and ld) to build the GNU C Library.
>       No other assembler or linker has the necessary functionality at the
> diff --git a/configure b/configure
> index cde55de15fe6..3c46d6ae5095 100755
> --- a/configure
> +++ b/configure
> @@ -4481,7 +4481,7 @@ $as_echo "$libc_cv_prog_ld_gnu" >&6; }
>  gnu_ld=$libc_cv_prog_ld_gnu
>
>
> -# Accept binutils 2.22 or newer.
> +# Accept binutils 2.21 or newer.
>  for ac_prog in $AS
>  do
>    # Extract the first word of "$ac_prog", so it can be a program name with args.
> @@ -4533,7 +4533,7 @@ $as_echo_n "checking version of $AS... " >&6; }
>    ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
>    case $ac_prog_version in
>      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
> -    2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
> +    2.1[0-9][0-9]*|2.2[1-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
>         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
>      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
>
> @@ -4596,7 +4596,7 @@ $as_echo_n "checking version of $LD... " >&6; }
>    ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
>    case $ac_prog_version in
>      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
> -    2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
> +    2.1[0-9][0-9]*|2.2[1-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
>         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
>      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
>
> diff --git a/configure.ac b/configure.ac
> index f1e6394e7ee2..88bc993131c3 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -907,14 +907,14 @@ AC_PROG_LN_S
>
>  LIBC_PROG_BINUTILS
>
> -# Accept binutils 2.22 or newer.
> +# Accept binutils 2.21 or newer.
>  AC_CHECK_PROG_VER(AS, $AS, --version,
>                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
> - [2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
> + [2.1[0-9][0-9]*|2.2[1-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
>                   AS=: critic_missing="$critic_missing as")
>  AC_CHECK_PROG_VER(LD, $LD, --version,
>                   [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
> - [2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
> + [2.1[0-9][0-9]*|2.2[1-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
>                   LD=: critic_missing="$critic_missing ld")
>
>  # These programs are version sensitive.
> diff --git a/manual/install.texi b/manual/install.texi
> index 2b9b57ca3221..713b658cf54b 100644
> --- a/manual/install.texi
> +++ b/manual/install.texi
> @@ -393,7 +393,7 @@ You can use whatever compiler you like to compile programs that use
>  Check the FAQ for any special compiler issues on particular platforms.
>
>  @item
> -GNU @code{binutils} 2.22 or later
> +GNU @code{binutils} 2.21 or later
>
>  You must use GNU @code{binutils} (as and ld) to build @theglibc{}.
>  No other assembler or linker has the necessary functionality at the
>
  

Patch

diff --git a/INSTALL b/INSTALL
index 35f70e0f5e4f..4ebe45c6e1a4 100644
--- a/INSTALL
+++ b/INSTALL
@@ -350,7 +350,7 @@  build the GNU C Library:
       Check the FAQ for any special compiler issues on particular
       platforms.

-   * GNU `binutils' 2.22 or later
+   * GNU `binutils' 2.21 or later

       You must use GNU `binutils' (as and ld) to build the GNU C Library.
       No other assembler or linker has the necessary functionality at the
diff --git a/configure b/configure
index cde55de15fe6..3c46d6ae5095 100755
--- a/configure
+++ b/configure
@@ -4481,7 +4481,7 @@  $as_echo "$libc_cv_prog_ld_gnu" >&6; }
  gnu_ld=$libc_cv_prog_ld_gnu


-# Accept binutils 2.22 or newer.
+# Accept binutils 2.21 or newer.
  for ac_prog in $AS
  do
    # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -4533,7 +4533,7 @@  $as_echo_n "checking version of $AS... " >&6; }
    ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
    case $ac_prog_version in
      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
+    2.1[0-9][0-9]*|2.2[1-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;

@@ -4596,7 +4596,7 @@  $as_echo_n "checking version of $LD... " >&6; }
    ac_prog_version=`$LD --version 2>&1 | sed -n 's/^.*GNU ld.* \([0-9][0-9]*\.[0-9.]*\).*$/\1/p'`
    case $ac_prog_version in
      '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
-    2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
+    2.1[0-9][0-9]*|2.2[1-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
         ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
      *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;

diff --git a/configure.ac b/configure.ac
index f1e6394e7ee2..88bc993131c3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -907,14 +907,14 @@  AC_PROG_LN_S

  LIBC_PROG_BINUTILS

-# Accept binutils 2.22 or newer.
+# Accept binutils 2.21 or newer.
  AC_CHECK_PROG_VER(AS, $AS, --version,
                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
-                 [2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
+                 [2.1[0-9][0-9]*|2.2[1-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
                   AS=: critic_missing="$critic_missing as")
  AC_CHECK_PROG_VER(LD, $LD, --version,
                   [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
-                 [2.1[0-9][0-9]*|2.2[2-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
+                 [2.1[0-9][0-9]*|2.2[1-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
                   LD=: critic_missing="$critic_missing ld")

  # These programs are version sensitive.
diff --git a/manual/install.texi b/manual/install.texi
index 2b9b57ca3221..713b658cf54b 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -393,7 +393,7 @@  You can use whatever compiler you like to compile programs that use
  Check the FAQ for any special compiler issues on particular platforms.

  @item
-GNU @code{binutils} 2.22 or later
+GNU @code{binutils} 2.21 or later

  You must use GNU @code{binutils} (as and ld) to build @theglibc{}.
  No other assembler or linker has the necessary functionality at the