[v2] Require at least Linux 2.6.33 on alpha
diff mbox

Message ID 56392CF1.10604@redhat.com
State New
Headers show

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
diff mbox

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