gnu: Graft glibc to allow execution on Linux 2.6.32.
* gnu/packages/patches/glibc-allow-kernel-2.6.32.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/base.scm (glibc/linux)[replacement]: New field. (glibc-2.26-patched): New variable.
This commit is contained in:
parent
b79e1fbe96
commit
b672a81607
|
@ -7,7 +7,7 @@
|
|||
# Copyright © 2016, 2017, 2018 Kei Kebreau <kkebreau@posteo.net>
|
||||
# Copyright © 2016, 2017 Rene Saavedra <rennes@openmailbox.org>
|
||||
# Copyright © 2016 Adonay "adfeno" Felipe Nogueira <https://libreplanet.org/wiki/User:Adfeno> <adfeno@openmailbox.org>
|
||||
# Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
|
||||
# Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
# Copyright © 2016 Ben Woodcroft <donttrustben@gmail.com>
|
||||
# Copyright © 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
|
||||
# Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
|
||||
|
@ -708,6 +708,7 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/glibc-CVE-2017-1000366-pt1.patch \
|
||||
%D%/packages/patches/glibc-CVE-2017-1000366-pt2.patch \
|
||||
%D%/packages/patches/glibc-CVE-2017-1000366-pt3.patch \
|
||||
%D%/packages/patches/glibc-allow-kernel-2.6.32.patch \
|
||||
%D%/packages/patches/glibc-bootstrap-system.patch \
|
||||
%D%/packages/patches/glibc-ldd-x86_64.patch \
|
||||
%D%/packages/patches/glibc-locales.patch \
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
|
||||
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
|
||||
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
|
||||
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -537,6 +538,7 @@ store.")
|
|||
;; Note: Always use a dot after the minor version since various places rely
|
||||
;; on "version-major+minor" to determine where locales are found.
|
||||
(version "2.26.105-g0890d5379c")
|
||||
(replacement glibc-2.26-patched)
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/"
|
||||
|
@ -839,6 +841,15 @@ GLIBC/HURD for a Hurd host"
|
|||
;; Below are old libc versions, which we use mostly to build locale data in
|
||||
;; the old format (which the new libc cannot cope with.)
|
||||
|
||||
(define glibc-2.26-patched
|
||||
(package
|
||||
(inherit glibc)
|
||||
(replacement #f)
|
||||
(source (origin
|
||||
(inherit (package-source glibc))
|
||||
(patches (cons (search-patch "glibc-allow-kernel-2.6.32.patch")
|
||||
(origin-patches (package-source glibc))))))))
|
||||
|
||||
(define-public glibc-2.25
|
||||
(package
|
||||
(inherit glibc)
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
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 <linux/version.h>
|
||||
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 <linux/version.h>
|
||||
#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"); \
|
||||
} \
|
Loading…
Reference in New Issue