]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Require GCC 4.7 or later to build glibc.
authorJoseph Myers <joseph@codesourcery.com>
Tue, 27 Oct 2015 16:34:12 +0000 (16:34 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Tue, 27 Oct 2015 16:34:12 +0000 (16:34 +0000)
This patch implements a requirement of GCC 4.7 or later to build
glibc.

This was discussed in the thread starting at
<https://sourceware.org/ml/libc-alpha/2015-08/msg00851.html>.
Concerns were expressed by Mike and David.  At
<https://sourceware.org/ml/libc-alpha/2015-10/msg00453.html> I have
provided a 14-patch series showing in outline the cleanups facilitated
by this version requirement, as requested by Mike (this patch is the
first in that series, with the addition of a NEWS entry).  Given the
absence of further concerns or alternative proposals for criteria for
updates to this version requirement as requested in
<https://sourceware.org/ml/libc-alpha/2015-10/msg00065.html>, I am
interpreting this as "absence of sustained opposition" under Carlos's
definition at <https://sourceware.org/glibc/wiki/Consensus> and
proposing this patch for inclusion in glibc.  I'd like to remind
people testing with 4.6 that if they move to testing with GCC 5 then
it will probably be about four years before they need to update the
compiler they use to test glibc again.

Although on the principles of time-based updates I think a move to
requiring binutils 2.23 would be reasonable, I'm not currently aware
of any cleanups that would facilitate so am not proposing that at this
time (but would expect to propose a move to requiring binutils 2.24 in
a year's time, as that brings features such as AVX512 support that
should allow some conditionals to be cleaned up).  If someone thinks a
move to requiring 2.23 would help clean things up for their
architecture, please speak up.  (And in general, I suspect there are
lots of architecture-specific configure tests that could be removed on
the basis of current GCC and binutils version requirements, given how
I've found architecture-independent tests obsolete on the basis of
version requirements going back 20 years.)

Tested for x86_64 and x86 (testsuite, and that installed shared
libraries are unchanged by the patch).

* configure.ac (libc_cv_compiler_ok): Require GCC 4.7 or later.
* configure: Regenerated.
* manual/install.texi (Tools for Compilation): Document
requirement for GCC 4.7 or later.
* INSTALL: Regenerated.

ChangeLog
INSTALL
NEWS
configure
configure.ac
manual/install.texi

index 29ec9125a2f5f8e1944936efc0db337dea38bd01..d4af4ec086f84263510ae42d4da9670b798c468e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2015-10-27  Joseph Myers  <joseph@codesourcery.com>
+
+       * configure.ac (libc_cv_compiler_ok): Require GCC 4.7 or later.
+       * configure: Regenerated.
+       * manual/install.texi (Tools for Compilation): Document
+       requirement for GCC 4.7 or later.
+       * INSTALL: Regenerated.
+
 2015-10-27  Ludovic Courtès  <ludo@gnu.org>
 
        * locale/loadlocale.c (_nl_intern_locale_data): Change assertion
diff --git a/INSTALL b/INSTALL
index ddee6e1969ad971beb3dea4e27407688ff21b9dd..c70ea9f26f2a077dc06b7c62430ec523e17244c5 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -357,9 +357,9 @@ build the GNU C Library:
      recommend GNU 'make' version 3.79.  All earlier versions have
      severe bugs or lack features.
 
-   * GCC 4.6 or newer
+   * GCC 4.7 or newer
 
-     GCC 4.6 or higher is required.  In general it is recommended to use
+     GCC 4.7 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 4.9.2 is the newest compiler
diff --git a/NEWS b/NEWS
index e1d34e8c708bfca50898af92647c2202a2a8e4ac..1122affd0dfc0642551561fe9dcefc877ddd6879 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -36,6 +36,10 @@ Version 2.23
 
 * Optimized string, wcsmbs and memory functions for IBM z13.
   Implemented by Stefan Liebler.
+
+* The minimum GCC version that can be used to build this version of the GNU
+  C Library is GCC 4.7.  Older GCC versions, and non-GNU compilers, can
+  still be used to compile programs using the GNU C Library.
 \f
 Version 2.22
 
index 45708b111baac4ebc48bce07c7a9e8f8a8e77a44..8f4bb72118b6060a6063faf6b3395217aef36683 100755 (executable)
--- a/configure
+++ b/configure
@@ -4834,7 +4834,7 @@ int
 main ()
 {
 
-#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6)
+#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7)
 #error insufficient compiler
 #endif
   ;
index 1be44f596e830448fdfb4e243a10273ea1a78eaf..ad5f3ccf5173dc03992fd2740d53a640340b6af2 100644 (file)
@@ -976,7 +976,7 @@ AC_CHECK_PROG_VER(AWK, gawk, --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__ < 6)
+#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7)
 #error insufficient compiler
 #endif],
               [libc_cv_compiler_ok=yes],
index f940d6572e7fcc9554138c48c4b1dc53d5c68f92..de9d27048897f6c3b844ab8d1f7875d45e5536cc 100644 (file)
@@ -400,9 +400,9 @@ recommend GNU @code{make} version 3.79.  All earlier versions have severe
 bugs or lack features.
 
 @item
-GCC 4.6 or newer
+GCC 4.7 or newer
 
-GCC 4.6 or higher is required.  In general it is recommended to use
+GCC 4.7 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 4.9.2 is the newest compiler verified to work to build