From patchwork Wed Sep 2 15:37:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tulio Magno Quites Machado Filho X-Patchwork-Id: 40353 X-Patchwork-Delegate: joseph@codesourcery.com Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 03A7F3894C18; Wed, 2 Sep 2020 15:37:43 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 03A7F3894C18 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1599061063; bh=+8vYdpBAh4GH6rc0xek/x9Svaei8OewE6/EL/WFmOKU=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=SpRgF4l8Q4kX5/crnG9W60smQU7YttPy4ivzHgc0AlF0/PROJN/R5pmLEggT/ybgF 7tM5aLmy5Z3t4LGOyaZVFIGS5IAI7coJiitJi+nswviGhv1RrBeSSwM8UtC1w0Hk4O Ewl5FvZ0iLV/tR0pyyNiicB1k1RM6+nQuXlDemhQ= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id D26BA3870891 for ; Wed, 2 Sep 2020 15:37:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org D26BA3870891 Received: from pps.filterd (m0098394.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id 082FXWHn123624 for ; Wed, 2 Sep 2020 11:37:37 -0400 Received: from ppma02wdc.us.ibm.com (aa.5b.37a9.ip4.static.sl-reverse.com [169.55.91.170]) by mx0a-001b2d01.pphosted.com with ESMTP id 33aa408www-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 02 Sep 2020 11:37:36 -0400 Received: from pps.filterd (ppma02wdc.us.ibm.com [127.0.0.1]) by ppma02wdc.us.ibm.com (8.16.0.42/8.16.0.42) with SMTP id 082FRRRM016623 for ; Wed, 2 Sep 2020 15:37:35 GMT Received: from b03cxnp08027.gho.boulder.ibm.com (b03cxnp08027.gho.boulder.ibm.com [9.17.130.19]) by ppma02wdc.us.ibm.com with ESMTP id 337en9rv6r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 02 Sep 2020 15:37:35 +0000 Received: from b03ledav004.gho.boulder.ibm.com (b03ledav004.gho.boulder.ibm.com [9.17.130.235]) by b03cxnp08027.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 082FbVaH33227386 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Wed, 2 Sep 2020 15:37:31 GMT Received: from b03ledav004.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5F0F678067 for ; Wed, 2 Sep 2020 15:37:34 +0000 (GMT) Received: from b03ledav004.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 978C778064 for ; Wed, 2 Sep 2020 15:37:33 +0000 (GMT) Received: from linux.ibm.com (unknown [9.65.220.206]) by b03ledav004.gho.boulder.ibm.com (Postfix) with ESMTP for ; Wed, 2 Sep 2020 15:37:33 +0000 (GMT) To: libc-alpha@sourceware.org Subject: [PATCH 1/2] Require binutils 2.27 or later to build glibc Date: Wed, 2 Sep 2020 12:37:25 -0300 Message-Id: <20200902153726.237493-1-tuliom@linux.ibm.com> X-Mailer: git-send-email 2.25.4 MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.235, 18.0.687 definitions=2020-09-02_09:2020-09-02, 2020-09-02 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 lowpriorityscore=0 impostorscore=0 bulkscore=0 spamscore=0 phishscore=0 clxscore=1015 adultscore=0 mlxlogscore=999 priorityscore=1501 suspectscore=1 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2006250000 definitions=main-2009020148 X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Tulio Magno Quites Machado Filho via Libc-alpha From: Tulio Magno Quites Machado Filho Reply-To: Tulio Magno Quites Machado Filho Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" I believe this is a cautious update considering the last update on binutils requirements was in 2017. However, I did not find any other code that could be removed if we started requiring binutils 2.30. Notice the ARC port requires binutils 2.32. ---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 | 8 +-- sysdeps/powerpc/powerpc64/le/configure | 64 ----------------------- sysdeps/powerpc/powerpc64/le/configure.ac | 7 --- 7 files changed, 12 insertions(+), 88 deletions(-) diff --git a/INSTALL b/INSTALL index 41f5d6b708..74aebff697 100644 --- a/INSTALL +++ b/INSTALL @@ -487,17 +487,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 06e43e0453..60c4fc73ce 100644 --- a/NEWS +++ b/NEWS @@ -10,6 +10,9 @@ Version 2.33 Major new features: +* The minimum GNU Binutils version that can be used to build this version of + the GNU C Library is Binutils 2.27. + * Support for the RISC-V ISA running on Linux has been expanded to run on 32-bit hardware. This is supported for the following ISA and ABI pairs: 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 735e99bb03..5131422727 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -528,17 +528,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 +moment. As of release time, GNU @code{binutils} 2.35 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])