[v2] Require at least Linux 2.6.33 on alpha
Commit Message
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
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
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).
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.
@@ -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
@@ -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.
@@ -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.
@@ -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
@@ -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
@@ -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 */