[v2] Require at least Linux 2.6.33 on alpha

Message ID 56392CF1.10604@redhat.com
State Superseded
Headers

Commit Message

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

Comments

Florian Weimer Nov. 6, 2015, 3:04 p.m. UTC | #1
On 11/03/2015 10:53 PM, Florian Weimer wrote:
> 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.

There is a emulated VM in the GCC compile farm, but new account signup
for the GCC compile farm is currently stalled.

May I commit this?  I'll be around to fix any fallout should someone
show up who's affected by this.  As I said, it enables a ton of further
cleanups.

Florian
  
Joseph Myers Nov. 6, 2015, 3:27 p.m. UTC | #2
On Fri, 6 Nov 2015, Florian Weimer wrote:

> On 11/03/2015 10:53 PM, Florian Weimer wrote:
> > 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.
> 
> There is a emulated VM in the GCC compile farm, but new account signup
> for the GCC compile farm is currently stalled.
> 
> May I commit this?  I'll be around to fix any fallout should someone
> show up who's affected by this.  As I said, it enables a ton of further
> cleanups.

As far as I'm concerned, I'm happy to leave the decision on the 
appropriateness of this version requirement to Richard as alpha 
maintainer.  My intent is to propose a 3.2 requirement for all 
architectures as soon as 2.6.32 ceases to be maintained (so for glibc 2.23 
if that's before the release freeze, or 2.24 if later than that).
  

Patch

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