about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog24
-rw-r--r--NEWS7
-rw-r--r--README10
-rw-r--r--ports/ChangeLog.alpha6
-rw-r--r--ports/ChangeLog.ia646
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/configure6
-rw-r--r--ports/sysdeps/unix/sysv/linux/alpha/configure.in6
-rw-r--r--ports/sysdeps/unix/sysv/linux/ia64/configure6
-rw-r--r--ports/sysdeps/unix/sysv/linux/ia64/configure.in6
-rw-r--r--ports/sysdeps/unix/sysv/linux/ia64/kernel-features.h4
-rw-r--r--sysdeps/unix/sysv/linux/configure16
-rw-r--r--sysdeps/unix/sysv/linux/configure.in16
-rw-r--r--sysdeps/unix/sysv/linux/kernel-features.h49
13 files changed, 72 insertions, 90 deletions
diff --git a/ChangeLog b/ChangeLog
index 50010be69b..b31e23fb6d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,27 @@
+2012-08-03  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #13717]
+	* sysdeps/unix/sysv/linux/configure.in (arch_minimum_kernel):
+	Change to 2.6.0 everywhere.
+	* sysdeps/unix/sysv/linux/configure: Regenerated.
+	* sysdeps/unix/sysv/linux/kernel-features.h
+	(__ASSUME_SET_THREAD_AREA_SYSCALL): Remove.
+	(__ASSUME_CLONE_THREAD_FLAGS): Condition on architectures, not
+	kernel versions.
+	(__ASSUME_POSIX_TIMERS): Define unconditionally.
+	(__ASSUME_FUTEX_REQUEUE): Remove.
+	(__ASSUME_STATFS64): Define unconditionally.
+	(__ASSUME_AT_SECURE): Likewise.
+	(__ASSUME_CORRECT_SI_PID): Likewise.
+	(__ASSUME_TGKILL): Define without depending on kernel version for
+	i386.
+	(__ASSUME_UTIMES): Likewise.
+	(__ASSUME_SWAPCONTEXT_SYSCALL): Condition on architecture, not
+	kernel version.
+	(__ASSUME_BRK_PAGE_ROUNDED): Define unconditionally.
+	(__ASSUME_TMPFS_NAME): Likewise.
+	* README: Update reference to Linux kernel versions.
+
 2012-08-02  Marek Polacek  <polacek@redhat.com>
 
 	[BZ#14150]
diff --git a/NEWS b/NEWS
index 5759eddbfd..d5b4944f22 100644
--- a/NEWS
+++ b/NEWS
@@ -9,8 +9,8 @@ Version 2.17
 
 * The following bugs are resolved with this release:
 
-  6778, 6808, 14042, 14150, 14151, 14154, 14157, 14173, 14283, 14298, 14328,
-  14331, 14337, 14347, 14349
+  6778, 6808, 13717, 14042, 14150, 14151, 14154, 14157, 14173, 14283, 14298,
+  14328, 14331, 14337, 14347, 14349
 
 * Support for STT_GNU_IFUNC symbols added for s390 and s390x.
   Optimized versions of memcpy, memset, and memcmp added for System z10 and
@@ -24,6 +24,9 @@ Version 2.17
 * SystemTap static probes have been added into the dynamic linker.
   Implemented by Gary Benson.
 
+* The minimum Linux kernel version that this version of the GNU C Library
+  can be used with is 2.6.0.
+
 
 Version 2.16
 
diff --git a/README b/README
index 1e2e3ba18a..ee43670b30 100644
--- a/README
+++ b/README
@@ -16,14 +16,8 @@ GNU/Hurd system, using configurations i[34567]86-*-gnu.  The current
 GNU/Hurd support requires out-of-tree patches that will eventually be
 incorporated into an official GNU C Library release.
 
-When working with Linux kernels, the GNU C Library version from
-version 2.4 on is intended primarily for use with Linux kernel version
-2.6.0 and later.  We only support using the NPTL implementation of
-pthreads, which is now the default configuration.  The library is
-unlikely to build without NPTL, or to work on Linux kernels prior to
-2.6.  The old LinuxThreads add-on implementation of pthreads for older
-Linux kernels is no longer supported, and we are not distributing it
-with this release.
+When working with Linux kernels, this version of the GNU C Library
+requires Linux kernel version 2.6.0 or later.
 
 All Linux kernel versions prior to 2.6.16 are known to have some bugs that
 may cause some of the tests related to pthreads in "make check" to fail.
diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha
index 3094fcd214..b0d66edea7 100644
--- a/ports/ChangeLog.alpha
+++ b/ports/ChangeLog.alpha
@@ -1,3 +1,9 @@
+2012-08-03  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/alpha/configure.in
+	(arch_minimum_kernel): Remove.
+	* sysdeps/unix/sysv/linux/alpha/configure: Regenerated.
+
 2012-07-26  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/alpha/tst-audit.h (int_retval): Define.
diff --git a/ports/ChangeLog.ia64 b/ports/ChangeLog.ia64
index 31d86da3ee..efb2fa9a73 100644
--- a/ports/ChangeLog.ia64
+++ b/ports/ChangeLog.ia64
@@ -1,3 +1,9 @@
+2012-08-03  Joseph Myers  <joseph@codesourcery.com>
+
+	* sysdeps/unix/sysv/linux/ia64/configure.in (arch_minimum_kernel):
+	Remove.
+	* sysdeps/unix/sysv/linux/ia64/configure: Regenerated.
+
 2012-07-26  Andreas Jaeger  <aj@suse.de>
 
 	* sysdeps/unix/sysv/linux/ia64/sys/ptrace.h (__ptrace_eventcodes):
diff --git a/ports/sysdeps/unix/sysv/linux/alpha/configure b/ports/sysdeps/unix/sysv/linux/alpha/configure
index c7c4feeea1..b5df524c1c 100644
--- a/ports/sysdeps/unix/sysv/linux/alpha/configure
+++ b/ports/sysdeps/unix/sysv/linux/alpha/configure
@@ -1,11 +1,5 @@
 # This file is generated from configure.in by Autoconf.  DO NOT EDIT!
  # Local configure fragment for sysdeps/unix/sysv/linux/alpha
 
-# There are several bits that no longer compile cleanly without
-# realtime signal support (ver 2.2.0).  Given that we also now
-# require TLS (ver 2.6.0), it seems pointless to fix them.
-# ??? Surely this should now be the generic default.
-arch_minimum_kernel=2.6.0
-
 # We did historically export the unwinder from glibc.
 libc_cv_gcc_unwind_find_fde=yes
diff --git a/ports/sysdeps/unix/sysv/linux/alpha/configure.in b/ports/sysdeps/unix/sysv/linux/alpha/configure.in
index 5a1af62073..a8b6996657 100644
--- a/ports/sysdeps/unix/sysv/linux/alpha/configure.in
+++ b/ports/sysdeps/unix/sysv/linux/alpha/configure.in
@@ -1,11 +1,5 @@
 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 # Local configure fragment for sysdeps/unix/sysv/linux/alpha
 
-# There are several bits that no longer compile cleanly without
-# realtime signal support (ver 2.2.0).  Given that we also now
-# require TLS (ver 2.6.0), it seems pointless to fix them.
-# ??? Surely this should now be the generic default.
-arch_minimum_kernel=2.6.0
-
 # We did historically export the unwinder from glibc.
 libc_cv_gcc_unwind_find_fde=yes
diff --git a/ports/sysdeps/unix/sysv/linux/ia64/configure b/ports/sysdeps/unix/sysv/linux/ia64/configure
index 3d025f9dda..71323718af 100644
--- a/ports/sysdeps/unix/sysv/linux/ia64/configure
+++ b/ports/sysdeps/unix/sysv/linux/ia64/configure
@@ -1,10 +1,4 @@
 # This file is generated from configure.in by Autoconf.  DO NOT EDIT!
  # Local configure fragment for sysdeps/unix/sysv/linux/ia64
 
-# There are several bits that no longer compile cleanly without
-# realtime signal support (ver 2.2.0).  Given that we also now
-# require TLS (ver 2.6.0), it seems pointless to fix them.
-# ??? Surely this should now be the generic default.
-arch_minimum_kernel=2.6.0
-
 ldd_rewrite_script=$dir/ldd-rewrite.sed
diff --git a/ports/sysdeps/unix/sysv/linux/ia64/configure.in b/ports/sysdeps/unix/sysv/linux/ia64/configure.in
index 99057b8bd1..4fb564721b 100644
--- a/ports/sysdeps/unix/sysv/linux/ia64/configure.in
+++ b/ports/sysdeps/unix/sysv/linux/ia64/configure.in
@@ -1,10 +1,4 @@
 GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 # Local configure fragment for sysdeps/unix/sysv/linux/ia64
 
-# There are several bits that no longer compile cleanly without
-# realtime signal support (ver 2.2.0).  Given that we also now
-# require TLS (ver 2.6.0), it seems pointless to fix them.
-# ??? Surely this should now be the generic default.
-arch_minimum_kernel=2.6.0
-
 ldd_rewrite_script=$dir/ldd-rewrite.sed
diff --git a/ports/sysdeps/unix/sysv/linux/ia64/kernel-features.h b/ports/sysdeps/unix/sysv/linux/ia64/kernel-features.h
index f8dc4812cf..061a86df5a 100644
--- a/ports/sysdeps/unix/sysv/linux/ia64/kernel-features.h
+++ b/ports/sysdeps/unix/sysv/linux/ia64/kernel-features.h
@@ -22,9 +22,7 @@
 
 /* The late 2.5 kernels saw a lot of new CLONE_* flags.  Summarize
    their availability with one define.  */
-#if __LINUX_KERNEL_VERSION >= 132416
-# define __ASSUME_CLONE_THREAD_FLAGS   1
-#endif
+#define __ASSUME_CLONE_THREAD_FLAGS   1
 
 /* The utimes syscall has been available for some architectures
    forever.  */
diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure
index 0650067e47..ccc4c676d6 100644
--- a/sysdeps/unix/sysv/linux/configure
+++ b/sysdeps/unix/sysv/linux/configure
@@ -284,34 +284,34 @@ test -n "$arch_minimum_kernel" ||
 case "$machine" in
   i386*)
     libc_cv_gcc_unwind_find_fde=yes
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
   powerpc/powerpc32)
     libc_cv_gcc_unwind_find_fde=yes
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
   s390/s390-32)
     libc_cv_gcc_unwind_find_fde=yes
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
   s390/s390-64)
     libc_cv_gcc_unwind_find_fde=yes
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
   sh*)
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     libc_cv_gcc_unwind_find_fde=yes
     ;;
   sparc/sparc64*)
     libc_cv_gcc_unwind_find_fde=yes
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
   sparc*)
     libc_cv_gcc_unwind_find_fde=yes
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
   *)
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
 esac
 if test -n "$minimum_kernel"; then
diff --git a/sysdeps/unix/sysv/linux/configure.in b/sysdeps/unix/sysv/linux/configure.in
index fc514fbf4a..1a00329cac 100644
--- a/sysdeps/unix/sysv/linux/configure.in
+++ b/sysdeps/unix/sysv/linux/configure.in
@@ -41,34 +41,34 @@ test -n "$arch_minimum_kernel" ||
 case "$machine" in
   i386*)
     libc_cv_gcc_unwind_find_fde=yes
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
   powerpc/powerpc32)
     libc_cv_gcc_unwind_find_fde=yes
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
   s390/s390-32)
     libc_cv_gcc_unwind_find_fde=yes
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
   s390/s390-64)
     libc_cv_gcc_unwind_find_fde=yes
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
   sh*)
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     libc_cv_gcc_unwind_find_fde=yes
     ;;
   sparc/sparc64*)
     libc_cv_gcc_unwind_find_fde=yes
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
   sparc*)
     libc_cv_gcc_unwind_find_fde=yes
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
   *)
-    arch_minimum_kernel=2.4.21
+    arch_minimum_kernel=2.6.0
     ;;
 esac
 if test -n "$minimum_kernel"; then
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index e97539ba85..b949f168d5 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -92,62 +92,41 @@
 # define __ASSUME_MMAP2_SYSCALL		1
 #endif
 
-/* On x86, the set_thread_area syscall was introduced in 2.5.29, but its
-   semantics was changed in 2.5.30, and again after 2.5.31.  */
-#if __LINUX_KERNEL_VERSION >= 132384 && defined __i386__
-# define __ASSUME_SET_THREAD_AREA_SYSCALL	1
-#endif
-
 /* The late 2.5 kernels saw a lot of new CLONE_* flags.  Summarize
    their availability with one define.  The changes were made first
    for i386 and the have to be done separately for the other archs.
    For i386 we pick 2.5.50 as the first version with support.
    For s390*, SPARC, PPC, x86-64, and SH we pick 2.5.64 as the first
    version with support.  */
-#if ((__LINUX_KERNEL_VERSION >= 132402 && defined __i386__)		\
-     || (__LINUX_KERNEL_VERSION >= 132416				\
-	 && (defined __s390__ || defined __sparc__			\
-	     || defined __powerpc__ || defined __x86_64__ || defined __sh__)))
+#if (defined __i386__ || defined __s390__ || defined __sparc__		\
+     || defined __powerpc__ || defined __x86_64__ || defined __sh__)
 # define __ASSUME_CLONE_THREAD_FLAGS	1
 #endif
 
 /* Beginning with 2.5.63 support for realtime and monotonic clocks and
    timers based on them is available.  */
-#if __LINUX_KERNEL_VERSION >= 132415
-# define __ASSUME_POSIX_TIMERS		1
-#endif
+#define __ASSUME_POSIX_TIMERS		1
 
 /* Beginning with 2.6.12 the clock and timer supports CPU clocks.  */
 #if __LINUX_KERNEL_VERSION >= 0x2060c
 # define __ASSUME_POSIX_CPU_TIMERS	1
 #endif
 
-/* The requeue futex functionality was introduced in 2.5.70.  */
-#if __LINUX_KERNEL_VERSION >= 132422
-# define __ASSUME_FUTEX_REQUEUE	1
-#endif
-
-/* The statfs64 syscalls are available in 2.5.74.  */
-#if __LINUX_KERNEL_VERSION >= 132426
-# define __ASSUME_STATFS64	1
-#endif
+/* The statfs64 syscalls are available in 2.5.74 (but not for alpha).  */
+#define __ASSUME_STATFS64	1
 
 /* Starting with at least 2.5.74 the kernel passes the setuid-like exec
    flag unconditionally up to the child.  */
-#if __LINUX_KERNEL_VERSION >= 132426
-# define __ASSUME_AT_SECURE	1
-#endif
+#define __ASSUME_AT_SECURE	1
 
 /* Starting with the 2.5.75 kernel the kernel fills in the correct value
    in the si_pid field passed as part of the siginfo_t struct to signal
    handlers.  */
-#if __LINUX_KERNEL_VERSION >= 132427
-# define __ASSUME_CORRECT_SI_PID	1
-#endif
+#define __ASSUME_CORRECT_SI_PID	1
 
 /* The tgkill syscall was instroduced for i386 in 2.5.75.  On x86-64,
    sparc, SH, ppc, and ppc64 it was introduced in 2.6.0-test3. */
-#if (__LINUX_KERNEL_VERSION >= 132427 && defined __i386__) \
+#if defined __i386__ \
     || (__LINUX_KERNEL_VERSION >= 132609 \
         && (defined __x86_64__ || defined __powerpc__ \
             || defined __sh__ || defined __sparc__))
@@ -158,7 +137,7 @@
    forever.  For x86 it was introduced after 2.5.75, for x86-64,
    ppc, and ppc64 it was introduced in 2.6.0-test3.  */
 #if defined __sparc__ \
-    || (__LINUX_KERNEL_VERSION > 132427 && defined __i386__) \
+    || defined __i386__ \
     || (__LINUX_KERNEL_VERSION > 132609 && defined __x86_64__) \
     || (__LINUX_KERNEL_VERSION >= 132609 && defined __powerpc__) \
     || (__LINUX_KERNEL_VERSION >= 132609 && defined __sh__)
@@ -192,7 +171,7 @@
 /* Starting with 2.6.0 PowerPC adds signal/swapcontext support for Vector
    SIMD (AKA Altivec, VMX) instructions and register state.  This changes
    the overall size of the sigcontext and adds the swapcontext syscall.  */
-#if __LINUX_KERNEL_VERSION >= 132608 && defined __powerpc__
+#ifdef __powerpc__
 # define __ASSUME_SWAPCONTEXT_SYSCALL	1
 #endif
 
@@ -212,9 +191,7 @@
 
 /* Starting with version 2.5.3, the initial location returned by `brk'
    after exec is always rounded up to the next page.  */
-#if __LINUX_KERNEL_VERSION >= 132355
-# define __ASSUME_BRK_PAGE_ROUNDED	1
-#endif
+#define __ASSUME_BRK_PAGE_ROUNDED	1
 
 /* Starting with version 2.6.9, the waitid system call is available.
    Except for powerpc{,64} and s390{,x}, where it is available in 2.6.12.  */
@@ -234,9 +211,7 @@
 /* Early kernel used "shm" as the filesystem name for the filesystem used
    for shm_open etc.  Later it is "tmpfs".  2.4.20 is a safe bet for the
    cutover.  */
-#if __LINUX_KERNEL_VERSION >= 0x02041a
-# define __ASSUME_TMPFS_NAME	1
-#endif
+#define __ASSUME_TMPFS_NAME	1
 
 /* pselect/ppoll were introduced just after 2.6.16-rc1.  Due to the way
    the kernel versions are advertised we can only rely on 2.6.17 to have