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: 539550 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4D20A1413CD for ; Wed, 4 Nov 2015 03:53:47 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b=Dn0OuSXK; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:to:from:subject:message-id:date:mime-version :content-type; q=dns; s=default; b=EjGvU+m+53BI/CeWIvyxSltFuOISt ISOod3Zi0/NLRUllxdiYA28ILoRbl41DY5i6gc/5V0yiiK50gxYHoasLTfVPDUa2 MKDKQxhb+Ogm8klMs7W2UgbK2tTZQlhRa/2PPXHdwk2Q8IzcAVSiSbOZ2kOAK7DT /O1z0LbUfeY1AU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:to:from:subject:message-id:date:mime-version :content-type; s=default; bh=dbdMZYrWTo8YqQ8SStPAlH2/joc=; b=Dn0 OuSXKdr4VVHHR/ZBxhVTwBMAb1j7i9S6WvZpYePjNLnxlgx+tjE6G4I2XN41S7Rx I05s3e/Kv/lP24Qm6LLBzMLfMk27Nbe2nTraf7rxhn1YXPF/aEmV8t1El5TlQZvw afqeM0qZVB0P89ZTgkuFIH54136+VKjBz2K9aE5E= 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