Update of minimal required version of Binutils to 2.25

Message ID CAMXFM3umo+WyJgWJ8ozzzoNN9L+u9oFj7jxib4wL1Qxv40EOgg@mail.gmail.com
State Rejected
Headers

Commit Message

Andrew Senkevich June 9, 2015, 8:57 p.m. UTC
  Hi,

this patch updates minimal required version of Binutils to 2.25.
Is it ok?

2015-06-09  Andrew Senkevich  <andrew.senkevich@intel.com>

        * configure.ac: Updated check of minimal required version to 2.25.
        * manual/install.texi (Tools for Compilation): Updated version number.
        * configure: Regenerated.
        * INSTALL: Likewise.

 No other assembler or linker has the necessary functionality at the


--
WBR,
Andrew
  

Comments

Adhemerval Zanella June 9, 2015, 9:08 p.m. UTC | #1
Hi

On 09-06-2015 17:57, Andrew Senkevich wrote:
> Hi,
> 
> this patch updates minimal required version of Binutils to 2.25.
> Is it ok?
> 

I do not think we should raise binutils required version to 2.25 yet.
The 2.25 is quite new (jan 2005) and there is still a lot of LTS distro
that are not using it and have no plan to upgrade it.

For the issue you have found for libmvec, I think the better approach
is what Joseph has suggested: check binutils support with the assembly
snippet that fails and enable/disable libmvec. And this should be done
in x86_64 configure fragment.

> 2015-06-09  Andrew Senkevich  <andrew.senkevich@intel.com>
> 
>         * configure.ac: Updated check of minimal required version to 2.25.
>         * manual/install.texi (Tools for Compilation): Updated version number.
>         * configure: Regenerated.
>         * INSTALL: Likewise.
> 
> diff --git a/INSTALL b/INSTALL
> index 8e13f2c..2aa5862 100644
> --- a/INSTALL
> +++ b/INSTALL
> @@ -358,7 +358,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.25 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 1e4138b..44fae5c 100755
> --- a/configure
> +++ b/configure
> @@ -4596,7 +4596,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.25 or newer.
>  for ac_prog in $AS
>  do
>    # Extract the first word of "$ac_prog", so it can be a program name
> with args.
> @@ -4648,7 +4648,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[5-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;;
> 
> @@ -4711,7 +4711,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[5-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
> old mode 100644
> new mode 100755
> index ff66b87..d9b712c
> --- a/configure.ac
> +++ b/configure.ac
> @@ -935,14 +935,14 @@ AC_PROG_LN_S
> 
>  LIBC_PROG_BINUTILS
> 
> -# Accept binutils 2.22 or newer.
> +# Accept binutils 2.25 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[5-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[5-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 42ee467..ecddd0c 100644
> --- a/manual/install.texi
> +++ b/manual/install.texi
> @@ -402,7 +402,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.25 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
> 
> 
> --
> WBR,
> Andrew
>
  
Joseph Myers June 9, 2015, 9:10 p.m. UTC | #2
On Tue, 9 Jun 2015, Andrew Senkevich wrote:

> Hi,
> 
> this patch updates minimal required version of Binutils to 2.25.
> Is it ok?

Could you explain *why* you propose this - what relevant features are 
brought in by that version, whose absence is problematic for building 
glibc?

I thought you already had a configure check for AVX512 assembler support, 
and conditional code allowing for it being absent - so either some code 
isn't properly conditioned, or some other feature is being required by the 
libmvec code.
  

Patch

diff --git a/INSTALL b/INSTALL
index 8e13f2c..2aa5862 100644
--- a/INSTALL
+++ b/INSTALL
@@ -358,7 +358,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.25 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 1e4138b..44fae5c 100755
--- a/configure
+++ b/configure
@@ -4596,7 +4596,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.25 or newer.
 for ac_prog in $AS
 do
   # Extract the first word of "$ac_prog", so it can be a program name
with args.
@@ -4648,7 +4648,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[5-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;;

@@ -4711,7 +4711,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[5-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
old mode 100644
new mode 100755
index ff66b87..d9b712c
--- a/configure.ac
+++ b/configure.ac
@@ -935,14 +935,14 @@  AC_PROG_LN_S

 LIBC_PROG_BINUTILS

-# Accept binutils 2.22 or newer.
+# Accept binutils 2.25 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[5-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[5-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 42ee467..ecddd0c 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -402,7 +402,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.25 or later

 You must use GNU @code{binutils} (as and ld) to build @theglibc{}.