From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?UTF-8?Q?Court=C3=A8s?=) Subject: bug#30537: glibc 2.26 refuses to run on CentOS 6.8 Date: Fri, 23 Feb 2018 23:26:12 +0100 Message-ID: <87fu5r9wcb.fsf__12435.7205736034$1519424714$gmane$org@gnu.org> References: <87eflgstqt.fsf@mdc-berlin.de> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38562) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1epLo3-00044e-B9 for bug-guix@gnu.org; Fri, 23 Feb 2018 17:27:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1epLny-0003uq-UB for bug-guix@gnu.org; Fri, 23 Feb 2018 17:27:07 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:50183) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1epLny-0003uR-QH for bug-guix@gnu.org; Fri, 23 Feb 2018 17:27:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1epLny-000315-Ci for bug-guix@gnu.org; Fri, 23 Feb 2018 17:27:02 -0500 Sender: "Debbugs-submit" Resent-Message-ID: In-Reply-To: <87eflgstqt.fsf@mdc-berlin.de> (Ricardo Wurmus's message of "Mon, 19 Feb 2018 19:46:02 +0100") List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: Ricardo Wurmus Cc: guix-devel@gnu.org, 30537@debbugs.gnu.org Hello, Ricardo Wurmus skribis: > 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. Bah. :-( > 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. It=E2=80=99s annoying, but we can surely apply the patch you sent (though r= ather by passing =E2=80=98--enable-kernel=E2=80=99 if possible, as Danny suggeste= d.) personality(2) has a knob to change the kernel version reported by uname(2) to 2.6. Here it=E2=80=99s a case where we=E2=80=99d need the reve= rse: reporting 3.2 instead of 2.6. That doesn=E2=80=99t seem to exist. Looking for other hacks (or kludges), I found the kernel module below at , which could be adjusted to report a different kernel version: --8<---------------cut here---------------start------------->8--- #include #include #include #ifndef UNAME_DUMB_STEPPING #define UNAME_DUMB_STEPPING '5'; #endif MODULE_AUTHOR("The one who invented the uname hack"); MODULE_DESCRIPTION("Changes the uname output"); MODULE_LICENSE("GPL"); static int uname_hack_init() { save =3D system_utsname.machine[1]; system_utsname.machine[1] =3D UNAME_DUMB_STEPPING; return 0; } static void uname_hack_cleanup() { system_utsname.machine[1] =3D save; } module_init(uname_hack_init); module_exit(uname_hack_cleanup); --8<---------------cut here---------------end--------------->8--- Another option would be to ptrace processes, handle the first =E2=80=98unam= e=E2=80=99 call, and then PTRACE_DETACH. Ugly. Ludo=E2=80=99.