Message ID | CAMXFM3umo+WyJgWJ8ozzzoNN9L+u9oFj7jxib4wL1Qxv40EOgg@mail.gmail.com |
---|---|
State | New |
Headers | show |
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 >
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.
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{}.