From patchwork Tue Nov 3 16:53:34 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 9543 Received: (qmail 43731 invoked by alias); 3 Nov 2015 16:53:39 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 43720 invoked by uid 89); 3 Nov 2015 16:53:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.6 required=5.0 tests=AWL, BAYES_00, SPF_HELO_PASS, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2 X-HELO: mx1.redhat.com To: GNU C Library From: Florian Weimer X-Enigmail-Draft-Status: N1110 Subject: [PATCH] Require at least Linux 2.6.33 on alpha Message-ID: <5638E68E.8010003@redhat.com> Date: Tue, 3 Nov 2015 17:53:34 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 Some system calls were added late on the alpha architecture. Requiring Linux 2.6.33 on alpha means that we can assume that they exist unconditionally. This is more or less a precondition for the O_CLOEXEC cleanups I'm planning to submit. I'll try to find a Linux/alpha system to test this. Florian 2015-11-03 Florian Weimer * INSTALL: Mention the 2.6.33 special case for alpha. * README: Likewise. * sysdeps/unix/sysv/linux/alpha/kernel-features.h: (__ASSUME_PREADV, __ASSUME_PWRITEV, __ASSUME_IN_NONBLOCK) (__ASSUME_PIPE2, __ASSUME_EVENTFD2, __ASSUME_SIGNALFD4) (__ASSUME_DUP3): Remove #undefs. * sysdeps/unix/sysv/linux/alpha/configure.ac (arch_minimum_kernel): Set to 2.6.33. * sysdeps/unix/sysv/linux/alpha/configure: Regenerate. diff --git a/INSTALL b/INSTALL index c70ea9f..0a46e13 100644 --- a/INSTALL +++ b/INSTALL @@ -427,21 +427,21 @@ Specific advice for GNU/Linux systems ===================================== If you are installing the GNU C Library on GNU/Linux systems, you need -to have the header files from a 2.6.32 or newer kernel around for -reference. These headers must be installed using 'make -headers_install'; the headers present in the kernel source directory are -not suitable for direct use by the GNU C Library. You do not need to -use that kernel, just have its headers installed where the GNU C Library -can access them, referred to here as INSTALL-DIRECTORY. The easiest way -to do this is to unpack it in a directory such as -'/usr/src/linux-VERSION'. In that directory, run 'make headers_install -INSTALL_HDR_PATH=INSTALL-DIRECTORY'. Finally, configure the GNU C -Library with the option '--with-headers=INSTALL-DIRECTORY/include'. Use -the most recent kernel you can get your hands on. (If you are -cross-compiling the GNU C Library, you need to specify -'ARCH=ARCHITECTURE' in the 'make headers_install' command, where -ARCHITECTURE is the architecture name used by the Linux kernel, such as -'x86' or 'powerpc'.) +to have the header files from a 2.6.32 or newer kernel (on the alpha +architecture: 2.6.33 or newer) around for reference. These headers +must be installed using 'make headers_install'; the headers present in +the kernel source directory are not suitable for direct use by the GNU +C Library. You do not need to use that kernel, just have its headers +installed where the GNU C Library can access them, referred to here as +INSTALL-DIRECTORY. The easiest way to do this is to unpack it in a +directory such as '/usr/src/linux-VERSION'. In that directory, run +'make headers_install INSTALL_HDR_PATH=INSTALL-DIRECTORY'. Finally, +configure the GNU C Library with the option +'--with-headers=INSTALL-DIRECTORY/include'. Use the most recent +kernel you can get your hands on. (If you are cross-compiling the GNU +C Library, you need to specify 'ARCH=ARCHITECTURE' in the 'make +headers_install' command, where ARCHITECTURE is the architecture name +used by the Linux kernel, such as 'x86' or 'powerpc'.) After installing the GNU C Library, you may need to remove or rename directories such as '/usr/include/linux' and '/usr/include/asm', and diff --git a/NEWS b/NEWS index 896eb02..18a1cda 100644 --- a/NEWS +++ b/NEWS @@ -44,6 +44,10 @@ Version 2.23 * The obsolete header has been removed. Programs that require this header must be updated to use instead. +* The minimum supported kernel version for the alpha architecture is now + 2.6.33. The minimum supported version for other architectures remains + at 2.6.32. + * Optimized string, wcsmbs and memory functions for IBM z13. Implemented by Stefan Liebler. diff --git a/README b/README index e5d584a..ef23abf 100644 --- a/README +++ b/README @@ -17,7 +17,8 @@ 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, this version of the GNU C Library -requires Linux kernel version 2.6.32 or later. +requires Linux kernel version 2.6.32 or later, except on alpha, where +kernel version 2.6.33 or later is needed. Also note that the shared version of the libgcc_s library must be installed for the pthread library to work correctly. diff --git a/sysdeps/unix/sysv/linux/alpha/configure.ac b/sysdeps/unix/sysv/linux/alpha/configure.ac index a8b6996..8f23825 100644 --- a/sysdeps/unix/sysv/linux/alpha/configure.ac +++ b/sysdeps/unix/sysv/linux/alpha/configure.ac @@ -3,3 +3,6 @@ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory. # We did historically export the unwinder from glibc. libc_cv_gcc_unwind_find_fde=yes + +# Some system calls were wired up very late on alpha. +arch_minimum_kernel=2.6.33 diff --git a/sysdeps/unix/sysv/linux/alpha/kernel-features.h b/sysdeps/unix/sysv/linux/alpha/kernel-features.h index 7ae9924..da31591 100644 --- a/sysdeps/unix/sysv/linux/alpha/kernel-features.h +++ b/sysdeps/unix/sysv/linux/alpha/kernel-features.h @@ -44,15 +44,4 @@ #undef __ASSUME_STATFS64 #define __ASSUME_STATFS64 0 -/* Support for various syscalls was added for alpha in 2.6.33. */ -#if __LINUX_KERNEL_VERSION < 0x020621 -# undef __ASSUME_PREADV -# undef __ASSUME_PWRITEV -# undef __ASSUME_IN_NONBLOCK -# undef __ASSUME_PIPE2 -# undef __ASSUME_EVENTFD2 -# undef __ASSUME_SIGNALFD4 -# undef __ASSUME_DUP3 -#endif - #endif /* _KERNEL_FEATURES_H */ -- 2.4.3