From 7aab07e4e57334af621797aa43c2d71ad488b7cd Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Fri, 3 Aug 2012 13:42:47 +0000 Subject: Remove pre-2.6.0 Linux kernel support (bug 13717). --- ChangeLog | 24 +++++++++++ NEWS | 7 +++- README | 10 +---- ports/ChangeLog.alpha | 6 +++ ports/ChangeLog.ia64 | 6 +++ ports/sysdeps/unix/sysv/linux/alpha/configure | 6 --- ports/sysdeps/unix/sysv/linux/alpha/configure.in | 6 --- ports/sysdeps/unix/sysv/linux/ia64/configure | 6 --- ports/sysdeps/unix/sysv/linux/ia64/configure.in | 6 --- .../sysdeps/unix/sysv/linux/ia64/kernel-features.h | 4 +- sysdeps/unix/sysv/linux/configure | 16 +++---- sysdeps/unix/sysv/linux/configure.in | 16 +++---- sysdeps/unix/sysv/linux/kernel-features.h | 49 ++++++---------------- 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 + + [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 [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 + + * sysdeps/unix/sysv/linux/alpha/configure.in + (arch_minimum_kernel): Remove. + * sysdeps/unix/sysv/linux/alpha/configure: Regenerated. + 2012-07-26 Joseph Myers * 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 + + * sysdeps/unix/sysv/linux/ia64/configure.in (arch_minimum_kernel): + Remove. + * sysdeps/unix/sysv/linux/ia64/configure: Regenerated. + 2012-07-26 Andreas Jaeger * 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 -- cgit 1.4.1