This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH v2] Require at least Linux 2.6.33 on alpha


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]