Require at least Linux 2.6.33 on alpha
Commit Message
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
Comments
INSTALL is a generated file; you need to modify install.texi and
regenerate INSTALL.
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.
On Tuesday 03 of November 2015, Joseph Myers wrote:
> 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.
https://lkml.org/lkml/2015/9/18/629
"in a few months" (from september 2015)
On Tuesday 03 of November 2015, Arkadiusz Miśkiewicz wrote:
> On Tuesday 03 of November 2015, Joseph Myers wrote:
> > 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.
>
> https://lkml.org/lkml/2015/9/18/629
>
> "in a few months" (from september 2015)
"As a reminder, EOL for 2.6.32 is set to Feb 2016. "
http://lkml.iu.edu/hypermail/linux/kernel/1601.3/06474.html
2015-11-03 Florian Weimer <fweimer@redhat.com>
* 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.
@@ -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
@@ -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.
@@ -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.
@@ -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
@@ -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