Patchwork Require GCC 4.9 or later for building glibc

login
register
mail settings
Submitter Joseph Myers
Date June 19, 2017, 3:27 p.m.
Message ID <alpine.DEB.2.20.1706191526580.27712@digraph.polyomino.org.uk>
Download mbox | patch
Permalink /patch/21087/
State New
Headers show

Comments

Joseph Myers - June 19, 2017, 3:27 p.m.
This patch makes configure require GCC 4.9 or later for building
glibc, and documents that requirement.  Requiring GCC 4.9 or later
allows use of _Generic (as in tzcode).  It would allow <stdatomic.h>
and _Atomic to be used as well if desired, although we need to avoid
any libatomic dependencies on any platforms.  This patch is explicitly
the minimum to implement a new version requirement, with any
consequent cleanups of conditional code (not in installed headers or
files shared with gnulib etc.) to be done separately.

Tested for x86_64.

2017-06-19  Joseph Myers  <joseph@codesourcery.com>

	* configure.ac (libc_cv_compiler_ok): Require GCC 4.9 or later.
	* configure: Regenerated.
	* manual/install.texi (Tools for Compilation): Document
	requirement for GCC 4.9 or later.
	* INSTALL: Regenerated.
Florian Weimer - June 19, 2017, 3:31 p.m.
On 06/19/2017 05:27 PM, Joseph Myers wrote:
> 2017-06-19  Joseph Myers  <joseph@codesourcery.com>
> 
> 	* configure.ac (libc_cv_compiler_ok): Require GCC 4.9 or later.
> 	* configure: Regenerated.
> 	* manual/install.texi (Tools for Compilation): Document
> 	requirement for GCC 4.9 or later.
> 	* INSTALL: Regenerated.

Okay, as discussed before.

Thanks,
Florian

Patch

diff --git a/INSTALL b/INSTALL
index a2f5a40..71af35b 100644
--- a/INSTALL
+++ b/INSTALL
@@ -420,9 +420,9 @@  build the GNU C Library:
      recommend GNU 'make' version 3.79.  All earlier versions have
      severe bugs or lack features.
 
-   * GCC 4.7 or newer
+   * GCC 4.9 or newer
 
-     GCC 4.7 or higher is required.  In general it is recommended to use
+     GCC 4.9 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 6.3 is the newest compiler
diff --git a/NEWS b/NEWS
index 9ee2218..f81d02f 100644
--- a/NEWS
+++ b/NEWS
@@ -107,6 +107,10 @@  Version 2.26
   PTRACE_DISABLE_TE and PTRACE_TE_ABORT_RAND were added as those are supported
   by the s390 kernel.
 
+* The minimum GCC version that can be used to build this version of the GNU
+  C Library is GCC 4.9.  Older GCC versions, and non-GNU compilers, can
+  still be used to compile programs using the GNU C Library.
+
 Security related changes:
 
 * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes,
diff --git a/configure b/configure
index 8390f2b..97a2dad 100755
--- a/configure
+++ b/configure
@@ -5058,7 +5058,7 @@  int
 main ()
 {
 
-#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7)
+#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9)
 #error insufficient compiler
 #endif
   ;
diff --git a/configure.ac b/configure.ac
index 4c0a18e..16e97d3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1105,7 +1105,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__ < 7)
+#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9)
 #error insufficient compiler
 #endif],
 	       [libc_cv_compiler_ok=yes],
diff --git a/manual/install.texi b/manual/install.texi
index cbc9128..65174a8 100644
--- a/manual/install.texi
+++ b/manual/install.texi
@@ -467,9 +467,9 @@  recommend GNU @code{make} version 3.79.  All earlier versions have severe
 bugs or lack features.
 
 @item
-GCC 4.7 or newer
+GCC 4.9 or newer
 
-GCC 4.7 or higher is required.  In general it is recommended to use
+GCC 4.9 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 6.3 is the newest compiler verified to work to build