From patchwork Tue Dec 18 18:10:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 30728 Received: (qmail 36029 invoked by alias); 18 Dec 2018 18:10:49 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 35863 invoked by uid 89); 18 Dec 2018 18:10:48 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-26.9 required=5.0 tests=BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS, TIME_LIMIT_EXCEEDED autolearn=unavailable version=3.3.2 spammy=62, 6.2, deliberately, 666 X-HELO: relay1.mentorg.com Date: Tue, 18 Dec 2018 18:10:32 +0000 From: Joseph Myers To: Subject: Require GCC 5 or later to build glibc (bug 23993) Message-ID: User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 We know that building glibc with GCC 4.9 is broken on various platforms (bug 23993). As it's more than a year since we last increased the minimum GCC version to build glibc, this patch changes the requirement to be GCC 5 or later (indeed, based on 4.9 having been required for building 2.26, it would be consistent in terms of timing to require GCC 6 or later from the 2.30 release onwards). It deliberately just updates the configure test and corresponding documentation, leaving removal of no-longer-needed __GNUC_PREREQ tests for a separate patch. In the NEWS entry, the requirement for a newer GCC version for powerpc64le is reiterated (as in the entry for the 4.9 requirement in 2.26) to avoid suggesting the version requirement there has gone down. (If that version goes up further as part of support for binary128 long double, of course the wording would change at that time.) Tested for x86_64. 2018-12-18 Joseph Myers [BZ #23993] * configure.ac (libc_cv_compiler_ok): Require GCC 5 or later. * configure: Regenerated. * manual/install.texi (Tools for Compilation): Update minimum GCC version. * INSTALL: Regenerated. diff --git a/INSTALL b/INSTALL index 268b7d63fa..672eb40640 100644 --- a/INSTALL +++ b/INSTALL @@ -459,9 +459,9 @@ build the GNU C Library: As of relase time, GNU 'make' 4.2.1 is the newest verified to work to build the GNU C Library. - * GCC 4.9 or newer + * GCC 5 or newer - GCC 4.9 or higher is required. In general it is recommended to use + GCC 5 or higher is required. In general it is recommended to use the newest version of the compiler that is known to work for building the GNU C Library, as newer compilers usually produce better code. As of release time, GCC 8.1.1 is the newest compiler diff --git a/NEWS b/NEWS index ae80818df4..1fbd109843 100644 --- a/NEWS +++ b/NEWS @@ -66,6 +66,12 @@ Changes to build and runtime requirements: * Python 3.4 or later is required to build the GNU C Library. +* On most architectures, GCC 5 or later is required to build the GNU C + Library. (On powerpc64le, GCC 6.2 or later is still required, as before.) + + Older GCC versions and non-GNU compilers are still supported when + compiling programs that use the GNU C Library. + Security related changes: CVE-2018-19591: A file descriptor leak in if_nametoindex can lead to a diff --git a/configure b/configure index 535e2f62e0..101dfddf37 100755 --- a/configure +++ b/configure @@ -5119,7 +5119,7 @@ int main () { -#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9) +#if !defined __GNUC__ || __GNUC__ < 5 #error insufficient compiler #endif ; diff --git a/configure.ac b/configure.ac index 6cc10ede98..46a74687a6 100644 --- a/configure.ac +++ b/configure.ac @@ -1017,7 +1017,7 @@ AC_CHECK_PROG_VER(BISON, bison, --version, AC_CACHE_CHECK([if $CC is sufficient to build libc], libc_cv_compiler_ok, [ AC_TRY_COMPILE([], [ -#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9) +#if !defined __GNUC__ || __GNUC__ < 5 #error insufficient compiler #endif], [libc_cv_compiler_ok=yes], diff --git a/manual/install.texi b/manual/install.texi index 67e1e10e91..2a87a2725a 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -499,9 +499,9 @@ As of relase time, GNU @code{make} 4.2.1 is the newest verified to work to build @theglibc{}. @item -GCC 4.9 or newer +GCC 5 or newer -GCC 4.9 or higher is required. In general it is recommended to use +GCC 5 or higher is required. In general it is recommended to use the newest version of the compiler that is known to work for building @theglibc{}, as newer compilers usually produce better code. As of release time, GCC 8.1.1 is the newest compiler verified to work to build