This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH v2] Require at least Linux 2.6.33 on alpha
- From: Florian Weimer <fweimer at redhat dot com>
- To: Joseph Myers <joseph at codesourcery dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Tue, 3 Nov 2015 22:53:53 +0100
- Subject: [PATCH v2] Require at least Linux 2.6.33 on alpha
- Authentication-results: sourceware.org; auth=none
- References: <5638E68E dot 8010003 at redhat dot com> <alpine dot DEB dot 2 dot 10 dot 1511031725510 dot 32240 at digraph dot polyomino dot org dot uk>
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 (<https://www.kernel.org/category/releases.html>
> 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 <fweimer@redhat.com>
* 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 <regexp.h> has been removed. Programs that require
this header must be updated to use <regex.h> 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 */