Require at least Linux 2.6.33 on alpha

Message ID 5638E68E.8010003@redhat.com
State Superseded
Headers

Commit Message

Florian Weimer Nov. 3, 2015, 4:53 p.m. UTC
  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

Joseph Myers Nov. 3, 2015, 5:28 p.m. UTC | #1
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.
  
Arkadiusz Miśkiewicz Nov. 3, 2015, 5:41 p.m. UTC | #2
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)
  
Arkadiusz Miśkiewicz Jan. 31, 2016, 8:31 a.m. UTC | #3
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
  

Patch

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.

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 <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/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