diff mbox series

[PATCHv2,1/2] Require binutils 2.27 or later to build glibc

Message ID 20201202225602.1085609-1-tuliom@linux.ibm.com
State Changes Requested
Headers show
Series [PATCHv2,1/2] Require binutils 2.27 or later to build glibc | expand

Commit Message

Tulio Magno Quites Machado Filho Dec. 2, 2020, 10:56 p.m. UTC
Changes since v1:

 - Moved part of the documentation to patch 2/2.
 - Moved the NEWS entry to "Changes to build and runtime requirements:"

---8<---

Start requiring binutils >= 2.27 instead of 2.25.
A test for binutils 2.26 is removed from powerpc64le.

Tested on powerpc64le and x86_64.
---
 INSTALL                                   |  6 +--
 NEWS                                      |  3 ++
 configure                                 |  6 +--
 configure.ac                              |  6 +--
 manual/install.texi                       |  6 +--
 sysdeps/powerpc/powerpc64/le/configure    | 64 -----------------------
 sysdeps/powerpc/powerpc64/le/configure.ac |  7 ---
 7 files changed, 11 insertions(+), 87 deletions(-)

Comments

Adhemerval Zanella Dec. 3, 2020, 11:51 a.m. UTC | #1
On 02/12/2020 19:56, Tulio Magno Quites Machado Filho via Libc-alpha wrote:
> Changes since v1:
> 
>  - Moved part of the documentation to patch 2/2.
>  - Moved the NEWS entry to "Changes to build and runtime requirements:"
> 
> ---8<---
> 
> Start requiring binutils >= 2.27 instead of 2.25.
> A test for binutils 2.26 is removed from powerpc64le.

If the idea is to remove the powerpc64le specific check, why 2.27 
instead of 2.26? Or are they other constraints that requires a
2.27 binutils?

> 
> Tested on powerpc64le and x86_64.
> ---
>  INSTALL                                   |  6 +--
>  NEWS                                      |  3 ++
>  configure                                 |  6 +--
>  configure.ac                              |  6 +--
>  manual/install.texi                       |  6 +--
>  sysdeps/powerpc/powerpc64/le/configure    | 64 -----------------------
>  sysdeps/powerpc/powerpc64/le/configure.ac |  7 ---
>  7 files changed, 11 insertions(+), 87 deletions(-)
> 
> diff --git a/INSTALL b/INSTALL
> index 2b00f80df5..41d4376a41 100644
> --- a/INSTALL
> +++ b/INSTALL
> @@ -482,17 +482,13 @@ build the GNU C Library:
>       Check the FAQ for any special compiler issues on particular
>       platforms.
>  
> -   * GNU 'binutils' 2.25 or later
> +   * GNU 'binutils' 2.27 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
>       moment.  As of release time, GNU 'binutils' 2.32 is the newest
>       verified to work to build the GNU C Library.
>  
> -     For PowerPC 64-bits little-endian (powerpc64le), 'objcopy' is
> -     required to support '--update-section'.  This option requires
> -     binutils 2.26 or newer.
> -
>       ARC architecture needs 'binutils' 2.32 or higher for TLS related
>       fixes.
>  
> diff --git a/NEWS b/NEWS
> index aa7bbf033b..954c7e0532 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -48,6 +48,9 @@ Deprecated and removed features, and other changes affecting compatibility:
>  
>  Changes to build and runtime requirements:
>  
> +* The minimum GNU Binutils version that can be used to build this version of
> +  the GNU C Library is Binutils 2.27.
> +
>  * On Linux, the system administrator needs to configure /dev/pts with
>    the intended access modes for pseudo-terminals.  glibc no longer
>    attemps to adjust permissions of terminal devices.  The previous glibc
> diff --git a/configure b/configure
> index 4795e721e5..7b01e72e0d 100755
> --- a/configure
> +++ b/configure
> @@ -4514,7 +4514,7 @@ $as_echo "$libc_cv_prog_ld_gnu" >&6; }
>  gnu_ld=$libc_cv_prog_ld_gnu
>  
>  
> -# Accept binutils 2.25 or newer.
> +# Accept binutils 2.27 or newer.
>  for ac_prog in $AS
>  do
>    # Extract the first word of "$ac_prog", so it can be a program name with args.
> @@ -4566,7 +4566,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[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
> +    2.1[0-9][0-9]*|2.2[7-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;;
>  
> @@ -4696,7 +4696,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[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
> +    2.1[0-9][0-9]*|2.2[7-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 93e68fb696..6bc98e9ab1 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -958,10 +958,10 @@ AC_PROG_LN_S
>  
>  LIBC_PROG_BINUTILS
>  
> -# Accept binutils 2.25 or newer.
> +# Accept binutils 2.27 or newer.
>  AC_CHECK_PROG_VER(AS, $AS, --version,
>  		  [GNU assembler.* \([0-9]*\.[0-9.]*\)],
> -		  [2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
> +		  [2.1[0-9][0-9]*|2.2[7-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
>  		  AS=: critic_missing="$critic_missing as")
>  
>  if test -n "`$LD --version | sed -n 's/^GNU \(gold\).*$/\1/p'`"; then
> @@ -973,7 +973,7 @@ if test -n "`$LD --version | sed -n 's/^GNU \(gold\).*$/\1/p'`"; then
>  else
>    AC_CHECK_PROG_VER(LD, $LD, --version,
>  		    [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
> -		    [2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
> +		    [2.1[0-9][0-9]*|2.2[7-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
>  		    LD=: critic_missing="$critic_missing GNU ld")
>  fi
>  
> diff --git a/manual/install.texi b/manual/install.texi
> index 2e164476d5..0594b13bcc 100644
> --- a/manual/install.texi
> +++ b/manual/install.texi
> @@ -523,17 +523,13 @@ 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.25 or later
> +GNU @code{binutils} 2.27 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
>  moment. As of release time, GNU @code{binutils} 2.32 is the newest
>  verified to work to build @theglibc{}.
>  
> -For PowerPC 64-bits little-endian (powerpc64le), @command{objcopy} is required
> -to support @option{--update-section}.  This option requires binutils 2.26 or
> -newer.
> -
>  ARC architecture needs @code{binutils} 2.32 or higher for TLS related fixes.
>  
>  @item
> diff --git a/sysdeps/powerpc/powerpc64/le/configure b/sysdeps/powerpc/powerpc64/le/configure
> index 98a4889945..cd48cd9661 100644
> --- a/sysdeps/powerpc/powerpc64/le/configure
> +++ b/sysdeps/powerpc/powerpc64/le/configure
> @@ -117,68 +117,4 @@ if test "$libc_cv_compiler_powerpc64le_ldbl128_mabi" == "no"; then :
>    critic_missing="$critic_missing The compiler must support -mabi=ieeelongdouble and -mlongdouble simultaneously."
>  fi
>  
> -for ac_prog in $OBJCOPY
> -do
> -  # Extract the first word of "$ac_prog", so it can be a program name with args.
> -set dummy $ac_prog; ac_word=$2
> -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
> -$as_echo_n "checking for $ac_word... " >&6; }
> -if ${ac_cv_prog_OBJCOPY+:} false; then :
> -  $as_echo_n "(cached) " >&6
> -else
> -  if test -n "$OBJCOPY"; then
> -  ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test.
> -else
> -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
> -for as_dir in $PATH
> -do
> -  IFS=$as_save_IFS
> -  test -z "$as_dir" && as_dir=.
> -    for ac_exec_ext in '' $ac_executable_extensions; do
> -  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
> -    ac_cv_prog_OBJCOPY="$ac_prog"
> -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
> -    break 2
> -  fi
> -done
> -  done
> -IFS=$as_save_IFS
> -
> -fi
> -fi
> -OBJCOPY=$ac_cv_prog_OBJCOPY
> -if test -n "$OBJCOPY"; then
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJCOPY" >&5
> -$as_echo "$OBJCOPY" >&6; }
> -else
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> -$as_echo "no" >&6; }
> -fi
> -
> -
> -  test -n "$OBJCOPY" && break
> -done
> -
> -if test -z "$OBJCOPY"; then
> -  ac_verc_fail=yes
> -else
> -  # Found it, now check the version.
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $OBJCOPY" >&5
> -$as_echo_n "checking version of $OBJCOPY... " >&6; }
> -  ac_prog_version=`$OBJCOPY --version 2>&1 | sed -n 's/^.*GNU objcopy.* \([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[6-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;;
> -
> -  esac
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
> -$as_echo "$ac_prog_version" >&6; }
> -fi
> -if test $ac_verc_fail = yes; then
> -  AS=: critic_missing="$critic_missing objcopy >= 2.26 is required on powerpc64le"
> -fi
> -
> -
>  test -n "$critic_missing" && as_fn_error $? "*** $critic_missing" "$LINENO" 5
> diff --git a/sysdeps/powerpc/powerpc64/le/configure.ac b/sysdeps/powerpc/powerpc64/le/configure.ac
> index 769c06709e..b616bf95e3 100644
> --- a/sysdeps/powerpc/powerpc64/le/configure.ac
> +++ b/sysdeps/powerpc/powerpc64/le/configure.ac
> @@ -66,11 +66,4 @@ CFLAGS="$save_CFLAGS"])
>  AS_IF([test "$libc_cv_compiler_powerpc64le_ldbl128_mabi" == "no"],
>        [critic_missing="$critic_missing The compiler must support -mabi=ieeelongdouble and -mlongdouble simultaneously."])
>  
> -dnl objcopy (binutils) 2.26 or newer required to support the --update-section
> -dnl feature for fixing up .gnu.attribute section with IEEE ldbl.
> -AC_CHECK_PROG_VER(OBJCOPY, $OBJCOPY, --version,
> -		  [GNU objcopy.* \([0-9]*\.[0-9.]*\)],
> -		  [2.1[0-9][0-9]*|2.2[6-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
> -		  AS=: critic_missing="$critic_missing objcopy >= 2.26 is required on powerpc64le")
> -
>  test -n "$critic_missing" && AC_MSG_ERROR([*** $critic_missing])
>
Tulio Magno Quites Machado Filho Dec. 3, 2020, 12:53 p.m. UTC | #2
Adhemerval Zanella via Libc-alpha <libc-alpha@sourceware.org> writes:

> On 02/12/2020 19:56, Tulio Magno Quites Machado Filho via Libc-alpha wrote:
>> Changes since v1:
>> 
>>  - Moved part of the documentation to patch 2/2.
>>  - Moved the NEWS entry to "Changes to build and runtime requirements:"
>> 
>> ---8<---
>> 
>> Start requiring binutils >= 2.27 instead of 2.25.
>> A test for binutils 2.26 is removed from powerpc64le.
>
> If the idea is to remove the powerpc64le specific check, why 2.27 
> instead of 2.26? Or are they other constraints that requires a
> 2.27 binutils?

The goal is not to remove the 2.26 check but avoid adding a 2.27 check.
Binutils 2.27 was the first version to support POWER ISA 3.0 instructions.

IMHO, we could require an even newer Binutils version.  The last time we bumped
Binutils requirements was in 2017.
However, as I mentioned in the v1 [1], I haven't seen any benefits in requiring
Binutils 2.30 (Jan. 2018).

We would be able to remove an extra check if we went to Binutils 2.32 (Feb.
2019) because of the ARC port, but I'm afraid that would be too restrictive.

[1] https://patchwork.sourceware.org/project/glibc/patch/20200902153726.237493-1-tuliom@linux.ibm.com/
Adhemerval Zanella Dec. 3, 2020, 1:39 p.m. UTC | #3
On 03/12/2020 09:53, Tulio Magno Quites Machado Filho wrote:
> Adhemerval Zanella via Libc-alpha <libc-alpha@sourceware.org> writes:
> 
>> On 02/12/2020 19:56, Tulio Magno Quites Machado Filho via Libc-alpha wrote:
>>> Changes since v1:
>>>
>>>  - Moved part of the documentation to patch 2/2.
>>>  - Moved the NEWS entry to "Changes to build and runtime requirements:"
>>>
>>> ---8<---
>>>
>>> Start requiring binutils >= 2.27 instead of 2.25.
>>> A test for binutils 2.26 is removed from powerpc64le.
>>
>> If the idea is to remove the powerpc64le specific check, why 2.27 
>> instead of 2.26? Or are they other constraints that requires a
>> 2.27 binutils?
> 
> The goal is not to remove the 2.26 check but avoid adding a 2.27 check.
> Binutils 2.27 was the first version to support POWER ISA 3.0 instructions.

So it should be outlined in the commit message that this bump is to accommodate
POWER ISA 3.0 instructions. 

> 
> IMHO, we could require an even newer Binutils version.  The last time we bumped
> Binutils requirements was in 2017.
> However, as I mentioned in the v1 [1], I haven't seen any benefits in requiring
> Binutils 2.30 (Jan. 2018).
> 
> We would be able to remove an extra check if we went to Binutils 2.32 (Feb.
> 2019) because of the ARC port, but I'm afraid that would be too restrictive.
> 
> [1] https://patchwork.sourceware.org/project/glibc/patch/20200902153726.237493-1-tuliom@linux.ibm.com/
> 

I don't have a strong opinion here in fact, bumping the minimum tools adds
some extra constraints for development; but it is also mitigated with
build-many-glibcs.py.

But we already require some recent tools to build glibc, so it should be ok.
Lucas A. M. Magalhaes Dec. 3, 2020, 2:01 p.m. UTC | #4
LGTM.

Tested-by: Lucas A. M. Magalhães <lamm@linux.ibm.com>

Quoting Tulio Magno Quites Machado Filho via Libc-alpha (2020-12-02 19:56:01)
> Changes since v1:
> 
>  - Moved part of the documentation to patch 2/2.
>  - Moved the NEWS entry to "Changes to build and runtime requirements:"
> 
> ---8<---
> 
> Start requiring binutils >= 2.27 instead of 2.25.
> A test for binutils 2.26 is removed from powerpc64le.
> 
> Tested on powerpc64le and x86_64.
> ---
>  INSTALL                                   |  6 +--
>  NEWS                                      |  3 ++
>  configure                                 |  6 +--
>  configure.ac                              |  6 +--
>  manual/install.texi                       |  6 +--
>  sysdeps/powerpc/powerpc64/le/configure    | 64 -----------------------
>  sysdeps/powerpc/powerpc64/le/configure.ac |  7 ---
>  7 files changed, 11 insertions(+), 87 deletions(-)
> 
> diff --git a/INSTALL b/INSTALL
> index 2b00f80df5..41d4376a41 100644
> --- a/INSTALL
> +++ b/INSTALL
> @@ -482,17 +482,13 @@ build the GNU C Library:
>       Check the FAQ for any special compiler issues on particular
>       platforms.
>  
> -   * GNU 'binutils' 2.25 or later
> +   * GNU 'binutils' 2.27 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
>       moment.  As of release time, GNU 'binutils' 2.32 is the newest
>       verified to work to build the GNU C Library.
>  
> -     For PowerPC 64-bits little-endian (powerpc64le), 'objcopy' is
> -     required to support '--update-section'.  This option requires
> -     binutils 2.26 or newer.
> -
>       ARC architecture needs 'binutils' 2.32 or higher for TLS related
>       fixes.
>  
> diff --git a/NEWS b/NEWS
> index aa7bbf033b..954c7e0532 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -48,6 +48,9 @@ Deprecated and removed features, and other changes affecting compatibility:
>  
>  Changes to build and runtime requirements:
>  
> +* The minimum GNU Binutils version that can be used to build this version of
> +  the GNU C Library is Binutils 2.27.
> +
>  * On Linux, the system administrator needs to configure /dev/pts with
>    the intended access modes for pseudo-terminals.  glibc no longer
>    attemps to adjust permissions of terminal devices.  The previous glibc
> diff --git a/configure b/configure
> index 4795e721e5..7b01e72e0d 100755
> --- a/configure
> +++ b/configure
> @@ -4514,7 +4514,7 @@ $as_echo "$libc_cv_prog_ld_gnu" >&6; }
>  gnu_ld=$libc_cv_prog_ld_gnu
>  
>  
> -# Accept binutils 2.25 or newer.
> +# Accept binutils 2.27 or newer.
>  for ac_prog in $AS
>  do
>    # Extract the first word of "$ac_prog", so it can be a program name with args.
> @@ -4566,7 +4566,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[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
> +    2.1[0-9][0-9]*|2.2[7-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;;
>  
> @@ -4696,7 +4696,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[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
> +    2.1[0-9][0-9]*|2.2[7-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 93e68fb696..6bc98e9ab1 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -958,10 +958,10 @@ AC_PROG_LN_S
>  
>  LIBC_PROG_BINUTILS
>  
> -# Accept binutils 2.25 or newer.
> +# Accept binutils 2.27 or newer.
>  AC_CHECK_PROG_VER(AS, $AS, --version,
>                   [GNU assembler.* \([0-9]*\.[0-9.]*\)],
> -                 [2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
> +                 [2.1[0-9][0-9]*|2.2[7-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
>                   AS=: critic_missing="$critic_missing as")
>  
>  if test -n "`$LD --version | sed -n 's/^GNU \(gold\).*$/\1/p'`"; then
> @@ -973,7 +973,7 @@ if test -n "`$LD --version | sed -n 's/^GNU \(gold\).*$/\1/p'`"; then
>  else
>    AC_CHECK_PROG_VER(LD, $LD, --version,
>                     [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
> -                   [2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
> +                   [2.1[0-9][0-9]*|2.2[7-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
>                     LD=: critic_missing="$critic_missing GNU ld")
>  fi
>  
> diff --git a/manual/install.texi b/manual/install.texi
> index 2e164476d5..0594b13bcc 100644
> --- a/manual/install.texi
> +++ b/manual/install.texi
> @@ -523,17 +523,13 @@ 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.25 or later
> +GNU @code{binutils} 2.27 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
>  moment. As of release time, GNU @code{binutils} 2.32 is the newest
>  verified to work to build @theglibc{}.
>  
> -For PowerPC 64-bits little-endian (powerpc64le), @command{objcopy} is required
> -to support @option{--update-section}.  This option requires binutils 2.26 or
> -newer.
> -
>  ARC architecture needs @code{binutils} 2.32 or higher for TLS related fixes.
>  
>  @item
> diff --git a/sysdeps/powerpc/powerpc64/le/configure b/sysdeps/powerpc/powerpc64/le/configure
> index 98a4889945..cd48cd9661 100644
> --- a/sysdeps/powerpc/powerpc64/le/configure
> +++ b/sysdeps/powerpc/powerpc64/le/configure
> @@ -117,68 +117,4 @@ if test "$libc_cv_compiler_powerpc64le_ldbl128_mabi" == "no"; then :
>    critic_missing="$critic_missing The compiler must support -mabi=ieeelongdouble and -mlongdouble simultaneously."
>  fi
>  
> -for ac_prog in $OBJCOPY
> -do
> -  # Extract the first word of "$ac_prog", so it can be a program name with args.
> -set dummy $ac_prog; ac_word=$2
> -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
> -$as_echo_n "checking for $ac_word... " >&6; }
> -if ${ac_cv_prog_OBJCOPY+:} false; then :
> -  $as_echo_n "(cached) " >&6
> -else
> -  if test -n "$OBJCOPY"; then
> -  ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test.
> -else
> -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
> -for as_dir in $PATH
> -do
> -  IFS=$as_save_IFS
> -  test -z "$as_dir" && as_dir=.
> -    for ac_exec_ext in '' $ac_executable_extensions; do
> -  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
> -    ac_cv_prog_OBJCOPY="$ac_prog"
> -    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
> -    break 2
> -  fi
> -done
> -  done
> -IFS=$as_save_IFS
> -
> -fi
> -fi
> -OBJCOPY=$ac_cv_prog_OBJCOPY
> -if test -n "$OBJCOPY"; then
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJCOPY" >&5
> -$as_echo "$OBJCOPY" >&6; }
> -else
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
> -$as_echo "no" >&6; }
> -fi
> -
> -
> -  test -n "$OBJCOPY" && break
> -done
> -
> -if test -z "$OBJCOPY"; then
> -  ac_verc_fail=yes
> -else
> -  # Found it, now check the version.
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $OBJCOPY" >&5
> -$as_echo_n "checking version of $OBJCOPY... " >&6; }
> -  ac_prog_version=`$OBJCOPY --version 2>&1 | sed -n 's/^.*GNU objcopy.* \([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[6-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;;
> -
> -  esac
> -  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
> -$as_echo "$ac_prog_version" >&6; }
> -fi
> -if test $ac_verc_fail = yes; then
> -  AS=: critic_missing="$critic_missing objcopy >= 2.26 is required on powerpc64le"
> -fi
> -
> -
>  test -n "$critic_missing" && as_fn_error $? "*** $critic_missing" "$LINENO" 5
> diff --git a/sysdeps/powerpc/powerpc64/le/configure.ac b/sysdeps/powerpc/powerpc64/le/configure.ac
> index 769c06709e..b616bf95e3 100644
> --- a/sysdeps/powerpc/powerpc64/le/configure.ac
> +++ b/sysdeps/powerpc/powerpc64/le/configure.ac
> @@ -66,11 +66,4 @@ CFLAGS="$save_CFLAGS"])
>  AS_IF([test "$libc_cv_compiler_powerpc64le_ldbl128_mabi" == "no"],
>        [critic_missing="$critic_missing The compiler must support -mabi=ieeelongdouble and -mlongdouble simultaneously."])
>  
> -dnl objcopy (binutils) 2.26 or newer required to support the --update-section
> -dnl feature for fixing up .gnu.attribute section with IEEE ldbl.
> -AC_CHECK_PROG_VER(OBJCOPY, $OBJCOPY, --version,
> -                 [GNU objcopy.* \([0-9]*\.[0-9.]*\)],
> -                 [2.1[0-9][0-9]*|2.2[6-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
> -                 AS=: critic_missing="$critic_missing objcopy >= 2.26 is required on powerpc64le")
> -
>  test -n "$critic_missing" && AC_MSG_ERROR([*** $critic_missing])
> -- 
> 2.25.4
>
diff mbox series

Patch

diff --git a/INSTALL b/INSTALL
index 2b00f80df5..41d4376a41 100644
--- a/INSTALL
+++ b/INSTALL
@@ -482,17 +482,13 @@  build the GNU C Library:
      Check the FAQ for any special compiler issues on particular
      platforms.
 
-   * GNU 'binutils' 2.25 or later
+   * GNU 'binutils' 2.27 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
      moment.  As of release time, GNU 'binutils' 2.32 is the newest
      verified to work to build the GNU C Library.
 
-     For PowerPC 64-bits little-endian (powerpc64le), 'objcopy' is
-     required to support '--update-section'.  This option requires
-     binutils 2.26 or newer.
-
      ARC architecture needs 'binutils' 2.32 or higher for TLS related
      fixes.
 
diff --git a/NEWS b/NEWS
index aa7bbf033b..954c7e0532 100644
--- a/NEWS
+++ b/NEWS
@@ -48,6 +48,9 @@  Deprecated and removed features, and other changes affecting compatibility:
 
 Changes to build and runtime requirements:
 
+* The minimum GNU Binutils version that can be used to build this version of
+  the GNU C Library is Binutils 2.27.
+
 * On Linux, the system administrator needs to configure /dev/pts with
   the intended access modes for pseudo-terminals.  glibc no longer
   attemps to adjust permissions of terminal devices.  The previous glibc
diff --git a/configure b/configure
index 4795e721e5..7b01e72e0d 100755
--- a/configure
+++ b/configure
@@ -4514,7 +4514,7 @@  $as_echo "$libc_cv_prog_ld_gnu" >&6; }
 gnu_ld=$libc_cv_prog_ld_gnu
 
 
-# Accept binutils 2.25 or newer.
+# Accept binutils 2.27 or newer.
 for ac_prog in $AS
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -4566,7 +4566,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[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
+    2.1[0-9][0-9]*|2.2[7-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;;
 
@@ -4696,7 +4696,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[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
+    2.1[0-9][0-9]*|2.2[7-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 93e68fb696..6bc98e9ab1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -958,10 +958,10 @@  AC_PROG_LN_S
 
 LIBC_PROG_BINUTILS
 
-# Accept binutils 2.25 or newer.
+# Accept binutils 2.27 or newer.
 AC_CHECK_PROG_VER(AS, $AS, --version,
 		  [GNU assembler.* \([0-9]*\.[0-9.]*\)],
-		  [2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
+		  [2.1[0-9][0-9]*|2.2[7-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
 		  AS=: critic_missing="$critic_missing as")
 
 if test -n "`$LD --version | sed -n 's/^GNU \(gold\).*$/\1/p'`"; then
@@ -973,7 +973,7 @@  if test -n "`$LD --version | sed -n 's/^GNU \(gold\).*$/\1/p'`"; then
 else
   AC_CHECK_PROG_VER(LD, $LD, --version,
 		    [GNU ld.* \([0-9][0-9]*\.[0-9.]*\)],
-		    [2.1[0-9][0-9]*|2.2[5-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
+		    [2.1[0-9][0-9]*|2.2[7-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
 		    LD=: critic_missing="$critic_missing GNU ld")
 fi
 
diff --git a/manual/install.texi b/manual/install.texi
index 2e164476d5..0594b13bcc 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -523,17 +523,13 @@  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.25 or later
+GNU @code{binutils} 2.27 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
 moment. As of release time, GNU @code{binutils} 2.32 is the newest
 verified to work to build @theglibc{}.
 
-For PowerPC 64-bits little-endian (powerpc64le), @command{objcopy} is required
-to support @option{--update-section}.  This option requires binutils 2.26 or
-newer.
-
 ARC architecture needs @code{binutils} 2.32 or higher for TLS related fixes.
 
 @item
diff --git a/sysdeps/powerpc/powerpc64/le/configure b/sysdeps/powerpc/powerpc64/le/configure
index 98a4889945..cd48cd9661 100644
--- a/sysdeps/powerpc/powerpc64/le/configure
+++ b/sysdeps/powerpc/powerpc64/le/configure
@@ -117,68 +117,4 @@  if test "$libc_cv_compiler_powerpc64le_ldbl128_mabi" == "no"; then :
   critic_missing="$critic_missing The compiler must support -mabi=ieeelongdouble and -mlongdouble simultaneously."
 fi
 
-for ac_prog in $OBJCOPY
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJCOPY+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OBJCOPY"; then
-  ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_OBJCOPY="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJCOPY=$ac_cv_prog_OBJCOPY
-if test -n "$OBJCOPY"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJCOPY" >&5
-$as_echo "$OBJCOPY" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$OBJCOPY" && break
-done
-
-if test -z "$OBJCOPY"; then
-  ac_verc_fail=yes
-else
-  # Found it, now check the version.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $OBJCOPY" >&5
-$as_echo_n "checking version of $OBJCOPY... " >&6; }
-  ac_prog_version=`$OBJCOPY --version 2>&1 | sed -n 's/^.*GNU objcopy.* \([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[6-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;;
-
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
-$as_echo "$ac_prog_version" >&6; }
-fi
-if test $ac_verc_fail = yes; then
-  AS=: critic_missing="$critic_missing objcopy >= 2.26 is required on powerpc64le"
-fi
-
-
 test -n "$critic_missing" && as_fn_error $? "*** $critic_missing" "$LINENO" 5
diff --git a/sysdeps/powerpc/powerpc64/le/configure.ac b/sysdeps/powerpc/powerpc64/le/configure.ac
index 769c06709e..b616bf95e3 100644
--- a/sysdeps/powerpc/powerpc64/le/configure.ac
+++ b/sysdeps/powerpc/powerpc64/le/configure.ac
@@ -66,11 +66,4 @@  CFLAGS="$save_CFLAGS"])
 AS_IF([test "$libc_cv_compiler_powerpc64le_ldbl128_mabi" == "no"],
       [critic_missing="$critic_missing The compiler must support -mabi=ieeelongdouble and -mlongdouble simultaneously."])
 
-dnl objcopy (binutils) 2.26 or newer required to support the --update-section
-dnl feature for fixing up .gnu.attribute section with IEEE ldbl.
-AC_CHECK_PROG_VER(OBJCOPY, $OBJCOPY, --version,
-		  [GNU objcopy.* \([0-9]*\.[0-9.]*\)],
-		  [2.1[0-9][0-9]*|2.2[6-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*],
-		  AS=: critic_missing="$critic_missing objcopy >= 2.26 is required on powerpc64le")
-
 test -n "$critic_missing" && AC_MSG_ERROR([*** $critic_missing])