From patchwork Tue Nov 3 21:53:53 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 539620 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 8CD2E1402C3 for ; Wed, 4 Nov 2015 08:54:07 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b=eTLTPpQw; 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:subject:to:references:cc:from:message-id:date :mime-version:in-reply-to:content-type; q=dns; s=default; b=mFAF Mmzt0v6LSjmt1z0AIIAMisET0FnijUDFiADdQ4IFxNOYORnjh6pszBR2My/C9ZHj REAFSQ6JpM40lKy7VL0kfebfOzhR+lXi+S0VyRpmLtC6gxdd9hS3PuzTdrPSMpcC LI/8nM6eiQh0s2kCrLV2zDxzLSkgPBw8UokpzAE= 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:subject:to:references:cc:from:message-id:date :mime-version:in-reply-to:content-type; s=default; bh=/I4RSj23R6 dgI9jueKyFYaoU6R0=; b=eTLTPpQwqi9sYpBNCXdoXUxXLxwhWpFVSiiI+OZQeA /0HD/O/reAwqXEm6t8eAkGXyovXPGbW/qLvC8xj6L3OJulx3pl9hajuA0jKbSnIu I6YlcrXNSf63x8lsBKRJacD5Z7tCCsZM2JKGD0nGgQ4r0Uea6SJj4CjqAmQanJux 0= Received: (qmail 94719 invoked by alias); 3 Nov 2015 21:54:01 -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 94708 invoked by uid 89); 3 Nov 2015 21:54:00 -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 Subject: [PATCH v2] Require at least Linux 2.6.33 on alpha To: Joseph Myers References: <5638E68E.8010003@redhat.com> Cc: GNU C Library From: Florian Weimer Message-ID: <56392CF1.10604@redhat.com> Date: Tue, 3 Nov 2015 22:53:53 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: On 11/03/2015 06:28 PM, Joseph Myers wrote: > INSTALL is a generated file; you need to modify install.texi and > regenerate INSTALL. Oops. thanks. What about the attached version? I don't have access to alpha machines anymore. Debian decommissioned them some time ago. > Does anyone have any more detailed information about when 2.6.32 will > cease to be maintained ( > still says "Mid-2015")? Because at that point we should just move to 3.2 > as minimum kernel version globally, avoiding such architecture-specific > special cases. I want to fix real bugs involving missing O_CLOEXEC, so I'd prefer to make the alpha change now. Florian 2015-11-03 Florian Weimer * manual/install.texi (Linux): Mention the 2.6.33 special case for alpha. * README: Likewise. * INSTALL: Regenerate. * 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..529f8d6 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/manual/install.texi b/manual/install.texi index de9d270..a0fff83 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -490,7 +490,8 @@ patches, although we try to avoid this. @cindex kernel header files If you are installing @theglibc{} on @gnulinuxsystems{}, you need to have -the header files from a 2.6.32 or newer kernel around for reference. +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 @samp{make headers_install}; the headers present in the kernel source directory are not suitable for direct use by @theglibc{}. You do not need to use that kernel, just have 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 */