From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: glibc 2.26 refuses to run on CentOS 6.8 Date: Fri, 23 Feb 2018 23:26:12 +0100 Message-ID: <87fu5r9wcb.fsf@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]:38371) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1epLnJ-0003t2-0U for guix-devel@gnu.org; Fri, 23 Feb 2018 17:26:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1epLnE-0003Q5-N0 for guix-devel@gnu.org; Fri, 23 Feb 2018 17:26:21 -0500 Received: from hera.aquilenet.fr ([185.233.100.1]:53180) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1epLnE-0003OO-G1 for guix-devel@gnu.org; Fri, 23 Feb 2018 17:26:16 -0500 In-Reply-To: <87eflgstqt.fsf@mdc-berlin.de> (Ricardo Wurmus's message of "Mon, 19 Feb 2018 19:46:02 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." 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: 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.