From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: glibc 2.26 refuses to run on CentOS 6.8 Date: Mon, 19 Feb 2018 19:46:02 +0100 Message-ID: <87eflgstqt.fsf@mdc-berlin.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: bug-guix@gnu.org Cc: guix-devel@gnu.org List-Id: bug-guix.gnu.org --=-=-= Content-Type: text/plain Hi Guix, I have a bad day. After the upgrade to glibc 2.26 none of the Guix-installed software runs on the HPC cluster running CentOS 6.8. The glibc 2.26 expects a minimum kernel version of 3.x on x86_64, but CentOS 6.8 only comes with a heavily patched 2.6.32. The NixOS developers patch glibc to make sure that all software still runs on Linux 2.6.32: https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/development/libraries/glibc/allow-kernel-2.6.32.patch Can we please also apply this? Without this Guix on HPC is pretty much dead at the MDC. --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename="allow-kernel-2.6.32.patch" diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure index cace758c01..38fe7fe0b0 100644 --- a/sysdeps/unix/sysv/linux/configure +++ b/sysdeps/unix/sysv/linux/configure @@ -69,7 +69,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for kernel header at least $minimum_kernel" >&5 $as_echo_n "checking for kernel header at least $minimum_kernel... " >&6; } decnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 65536 + \2 * 256 + \3)/'`; -abinum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1,\2,\3/'`; +abinum=`echo "2.6.32.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1,\2,\3/'`; cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include diff --git a/sysdeps/unix/sysv/linux/configure.ac b/sysdeps/unix/sysv/linux/configure.ac index 13abda0a51..6abc12eaed 100644 --- a/sysdeps/unix/sysv/linux/configure.ac +++ b/sysdeps/unix/sysv/linux/configure.ac @@ -50,7 +50,7 @@ fi AC_MSG_CHECKING(for kernel header at least $minimum_kernel) changequote(,)dnl decnum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/(\1 * 65536 + \2 * 256 + \3)/'`; -abinum=`echo "$minimum_kernel.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1,\2,\3/'`; +abinum=`echo "2.6.32.0.0.0" | sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1,\2,\3/'`; changequote([,])dnl AC_TRY_COMPILE([#include #if LINUX_VERSION_CODE < $decnum diff --git a/sysdeps/unix/sysv/linux/dl-osinfo.h b/sysdeps/unix/sysv/linux/dl-osinfo.h index 823cd8224d..482caaeeec 100644 --- a/sysdeps/unix/sysv/linux/dl-osinfo.h +++ b/sysdeps/unix/sysv/linux/dl-osinfo.h @@ -39,7 +39,7 @@ GLRO(dl_osversion) = version; \ \ /* Now we can test with the required version. */ \ - if (__LINUX_KERNEL_VERSION > 0 && version < __LINUX_KERNEL_VERSION) \ + if (__LINUX_KERNEL_VERSION > 0 && version < __LINUX_KERNEL_VERSION && version != 0x020620) \ /* Not sufficent. */ \ FATAL ("FATAL: kernel too old\n"); \ } \ --=-=-= Content-Type: text/plain -- Ricardo --=-=-=--