about summary refs log tree commit diff
path: root/pkgs/development/compilers/sbcl
diff options
context:
space:
mode:
authorMichael Raskin <7c6f434c@mail.ru>2019-01-10 12:05:31 +0100
committerMichael Raskin <7c6f434c@mail.ru>2019-01-10 12:05:55 +0100
commite0fd84cf439f39d31e2c317b228b0c035cc6211d (patch)
tree1a1d3f18923a370f1fefe997df488943377aac39 /pkgs/development/compilers/sbcl
parentc9c1e88dbbe36421108bd8c5c6b76d85fabab40b (diff)
sbcl: fix a thread safety bug with an upstream patch
Diffstat (limited to 'pkgs/development/compilers/sbcl')
-rw-r--r--pkgs/development/compilers/sbcl/default.nix14
1 files changed, 13 insertions, 1 deletions
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index 3283555cd6ee5..5f1c35815c32e 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, writeText, sbclBootstrap
+{ stdenv, fetchurl, fetchpatch, writeText, sbclBootstrap
 , sbclBootstrapHost ? "${sbclBootstrap}/bin/sbcl --disable-debugger --no-userinit --no-sysinit"
 , threadSupport ? (stdenv.isi686 || stdenv.isx86_64 || "aarch64-linux" == stdenv.hostPlatform.system)
   # Meant for sbcl used for creating binaries portable to non-NixOS via save-lisp-and-die.
@@ -19,7 +19,19 @@ stdenv.mkDerivation rec {
 
   buildInputs = [texinfo];
 
+  patches = [
+    # 1.4.15 bug, run-program thread safety, remove for 1.4.16
+    (fetchpatch {
+      url = "https://github.com/sbcl/sbcl/commit/c80672bedb1e4bc16124d0d01d7e37f94dd17a5a.patch";
+      sha256 = "0pjm9yajwij59gdkqhid7sbgmb8z57cz8zrsikxg7yzfgr7sa7hy";
+    })
+  ];
+
   patchPhase = ''
+    for patch in ${toString patches}; do
+      patch -Np1 -i "$patch"
+    done
+
     echo '"${version}.nixos"' > version.lisp-expr
     echo "
     (lambda (features)