Subject: Re: glibc 2.26 refuses to run on CentOS 6.8

From: Ricardo Wurmus <[email-masked]>
Date: Mon, 19 Feb 2018 22:22:28 +0100

Hi Danny,

> Can you try just passing --enable-kernel=2.6.32 to "configure" of glibc instead?
>
> It should set the minimal version without any weird patching.

Does this work even though the official minimum kernel version for glibc
2.26 is 3.2.0?

> But newer glibc has moved a lot of kernel definitions into glibc, might cause a
> problem if glibc just assumes it's all there but in fact it's not there at
> runtime (like the recent Haskell problem etc).

The Red Hat kernels are a bit special in that they are not just old
kernels, but heavily patched to work with newer software.  The Nix
people wrote that they have confirmed that 2.6.32 works up to
glibc-2.26-131.

There are additional notes on how that was done:

    # HOWTO: check glibc sources for changes in kernel requirements
    git log -p glibc-2.25.. sysdeps/unix/sysv/linux/x86_64/kernel-features.h sysdeps/unix/sysv/linux/kernel-features.h
    # get kernel sources (update the URL)
    mkdir tmp && cd tmp
    curl http://vault.centos.org/6.9/os/Source/SPackages/kernel-2.6.32-696.el6.src.rpm | rpm2cpio - | cpio -idmv
    tar xf linux-*.bz2
    # check syscall presence, for example
    less linux-*?/arch/x86/kernel/syscall_table_32.S

If there was a way to test for kernel features instead of looking at the
kernel version I’d do that instead of looking for a way to relax the
lower kernel version bound.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net