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] Require at least Linux 2.6.33 on alpha


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


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