aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/base.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2017-04-26 13:03:48 +0200
committerRicardo Wurmus <rekado@elephly.net>2017-04-29 23:31:35 +0200
commitb2fd8f63679aa4f244c36fdca62f23c00b8eded9 (patch)
tree399d35304a4a9d9624e06897ecee53ae9ec6e653 /gnu/packages/base.scm
parente18e17ea4ea9172402e782d69477bf15c1c25776 (diff)
downloadguix-b2fd8f63679aa4f244c36fdca62f23c00b8eded9.tar
guix-b2fd8f63679aa4f244c36fdca62f23c00b8eded9.tar.gz
gnu: glibc/linux: Fix runtime crashes on i686 systems.
* gnu/packages/patches/glibc-memchr-overflow-i686.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash)[native-inputs]: Add the patch conditionally for i686 systems. * gnu/packages/base.scm (glibc/linux)[native-inputs]: Add the patch conditionally for i686 systems. [arguments]: Apply the patch conditionally on i686 systems.
Diffstat (limited to 'gnu/packages/base.scm')
-rw-r--r--gnu/packages/base.scm20
1 files changed, 19 insertions, 1 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 9fcca45a54..6dc9e97c34 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -666,6 +666,16 @@ store.")
;; 4.7.1.
((" -lgcc_s") ""))
+ ;; Apply patch only on i686.
+ ;; TODO: Move the patch to 'patches' in the next update cycle.
+ ,@(if (string-prefix? "i686" (or (%current-target-system)
+ (%current-system)))
+ `(zero? (system* "patch" "-p1" "--force"
+ "--input"
+ (assoc-ref native-inputs
+ "glibc-memchr-overflow-i686.patch")))
+ '())
+
;; Have `system' use that Bash.
(substitute* "sysdeps/posix/system.c"
(("#define[[:blank:]]+SHELL_PATH.*$")
@@ -709,7 +719,15 @@ store.")
;; install the message catalogs, with 'msgfmt'.
(native-inputs `(("texinfo" ,texinfo)
("perl" ,perl)
- ("gettext" ,gettext-minimal)))
+ ("gettext" ,gettext-minimal)
+
+ ;; Apply this patch only on i686 to avoid a full rebuild.
+ ;; TODO: Move to 'patches' in the next update cycle.
+ ,@(if (string-prefix? "i686" (or (%current-target-system)
+ (%current-system)))
+ `(("glibc-memchr-overflow-i686.patch"
+ ,(search-patch "glibc-memchr-overflow-i686.patch")))
+ '())))
(native-search-paths
;; Search path for packages that provide locale data. This is useful