Require GCC 4.9 or later for building glibc.

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.

	* 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.
This commit is contained in:
Joseph Myers 2017-06-19 16:33:00 +00:00
parent f6110a8fee
commit 4add86749a
6 changed files with 18 additions and 6 deletions

View File

@ -1,3 +1,11 @@
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.
2017-06-19 Florian Weimer <fweimer@redhat.com> 2017-06-19 Florian Weimer <fweimer@redhat.com>
[BZ #21624] [BZ #21624]

View File

@ -420,9 +420,9 @@ build the GNU C Library:
recommend GNU 'make' version 3.79. All earlier versions have recommend GNU 'make' version 3.79. All earlier versions have
severe bugs or lack features. 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 the newest version of the compiler that is known to work for
building the GNU C Library, as newer compilers usually produce building the GNU C Library, as newer compilers usually produce
better code. As of release time, GCC 6.3 is the newest compiler better code. As of release time, GCC 6.3 is the newest compiler

4
NEWS
View File

@ -107,6 +107,10 @@ Version 2.26
PTRACE_DISABLE_TE and PTRACE_TE_ABORT_RAND were added as those are supported PTRACE_DISABLE_TE and PTRACE_TE_ABORT_RAND were added as those are supported
by the s390 kernel. 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: Security related changes:
* The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes,

2
configure vendored
View File

@ -5058,7 +5058,7 @@ int
main () main ()
{ {
#if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) #if !defined __GNUC__ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9)
#error insufficient compiler #error insufficient compiler
#endif #endif
; ;

View File

@ -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_CACHE_CHECK([if $CC is sufficient to build libc], libc_cv_compiler_ok, [
AC_TRY_COMPILE([], [ 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 #error insufficient compiler
#endif], #endif],
[libc_cv_compiler_ok=yes], [libc_cv_compiler_ok=yes],

View File

@ -467,9 +467,9 @@ recommend GNU @code{make} version 3.79. All earlier versions have severe
bugs or lack features. bugs or lack features.
@item @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 the newest version of the compiler that is known to work for building
@theglibc{}, as newer compilers usually produce better code. As of @theglibc{}, as newer compilers usually produce better code. As of
release time, GCC 6.3 is the newest compiler verified to work to build release time, GCC 6.3 is the newest compiler verified to work to build