Skip to content

Commit

Permalink
Merge pull request #202827 from vcunat/p/glibc-kernel-versions
Browse files Browse the repository at this point in the history
glibc: bump the minimum kernel version
  • Loading branch information
veprbl authored Dec 3, 2022
2 parents 7d04a75 + 68b44c8 commit 68e63f0
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 70 deletions.
39 changes: 0 additions & 39 deletions pkgs/development/libraries/glibc/allow-kernel-2.6.32.patch

This file was deleted.

32 changes: 1 addition & 31 deletions pkgs/development/libraries/glibc/common.nix
Original file line number Diff line number Diff line change
Expand Up @@ -89,36 +89,6 @@ stdenv.mkDerivation ({
patch extends the search path by "/run/current-system/sw/bin". */
./fix_path_attribute_in_getconf.patch

/* Allow running with RHEL 6 -like kernels. The patch adds an exception
for glibc to accept 2.6.32 and to tag the ELFs as 2.6.32-compatible
(otherwise the loader would refuse libc).
Note that glibc will fully work only on their heavily patched kernels
and we lose early mismatch detection on 2.6.32.
On major glibc updates we should check that the patched kernel supports
all the required features. ATM it's verified up to glibc-2.26-131.
# 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
*/
./allow-kernel-2.6.32.patch

/* Provide a fallback for missing prlimit64 syscall on RHEL 6 -like
kernels.
This patch is maintained by @veprbl. If it gives you trouble, feel
free to ping me, I'd be happy to help.
*/
(fetchurl {
url = "https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/patches/glibc-reinstate-prlimit64-fallback.patch?id=eab07e78b691ae7866267fc04d31c7c3ad6b0eeb";
sha256 = "091bk3kyrx1gc380gryrxjzgcmh1ajcj8s2rjhp2d2yzd5mpd5ps";
})

./fix-x64-abi.patch

/* https://github.com/NixOS/nixpkgs/pull/137601 */
Expand Down Expand Up @@ -175,7 +145,7 @@ stdenv.mkDerivation ({
# Enable Intel Control-flow Enforcement Technology (CET) support
"--enable-cet"
] ++ lib.optionals withLinuxHeaders [
"--enable-kernel=3.2.0" # can't get below with glibc >= 2.26
"--enable-kernel=3.10.0" # RHEL 7 and derivatives, seems oldest still supported kernel
] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
(lib.flip lib.withFeature "fp"
(stdenv.hostPlatform.gcc.float or (stdenv.hostPlatform.parsed.abi.float or "hard") == "soft"))
Expand Down

0 comments on commit 68e63f0

Please sign in to comment.