summary refs log tree commit diff
path: root/pkgs/development/compilers
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2013-02-24 18:20:57 +0100
committerVladimír Čunát <vcunat@gmail.com>2013-02-24 18:20:57 +0100
commit0e9b88cc4a00851e2ea8d59b2975c96dd7ce44b8 (patch)
treef5890607a35916edaa915bc05406ee5e2158b465 /pkgs/development/compilers
parentf20ff74afe62857376f1e3a081944500cca4e3ce (diff)
downloadnixlib-0e9b88cc4a00851e2ea8d59b2975c96dd7ce44b8.tar
nixlib-0e9b88cc4a00851e2ea8d59b2975c96dd7ce44b8.tar.gz
nixlib-0e9b88cc4a00851e2ea8d59b2975c96dd7ce44b8.tar.bz2
nixlib-0e9b88cc4a00851e2ea8d59b2975c96dd7ce44b8.tar.lz
nixlib-0e9b88cc4a00851e2ea8d59b2975c96dd7ce44b8.tar.xz
nixlib-0e9b88cc4a00851e2ea8d59b2975c96dd7ce44b8.tar.zst
nixlib-0e9b88cc4a00851e2ea8d59b2975c96dd7ce44b8.zip
sbcl: fix and minor update
Diffstat (limited to 'pkgs/development/compilers')
-rw-r--r--pkgs/development/compilers/sbcl/default.nix13
-rw-r--r--pkgs/development/compilers/sbcl/newglibc.patch43
2 files changed, 51 insertions, 5 deletions
diff --git a/pkgs/development/compilers/sbcl/default.nix b/pkgs/development/compilers/sbcl/default.nix
index 794a97b205fa..2535fb603ba7 100644
--- a/pkgs/development/compilers/sbcl/default.nix
+++ b/pkgs/development/compilers/sbcl/default.nix
@@ -4,11 +4,11 @@ let
   s= # Generated upstream information
   rec {
     baseName="sbcl";
-    version="1.1.3";
+    version="1.1.4";
     name="${baseName}-${version}";
-    hash="1qy64fy0nvjdgzlmasswgvzg1b2h2rygnnjvlf9vj7wg16i5383i";
-    url="mirror://sourceforge/project/sbcl/sbcl/1.1.3/sbcl-1.1.3-source.tar.bz2";
-    sha256="1qy64fy0nvjdgzlmasswgvzg1b2h2rygnnjvlf9vj7wg16i5383i";
+    hash="1k7p986hsd3yygzrsc0w68maflvhbg4gcmi3rbylyn0mi8pxb2s6";
+    url="mirror://sourceforge/project/sbcl/sbcl/${version}/sbcl-${version}-source.tar.bz2";
+    sha256="1k7p986hsd3yygzrsc0w68maflvhbg4gcmi3rbylyn0mi8pxb2s6";
   };
   buildInputs = with a; [
     clisp makeWrapper
@@ -21,7 +21,10 @@ rec {
   configureFlags = [];
 
   /* doConfigure should be removed if not needed */
-  phaseNames = ["setVars" "doFixNewer" "doFixTests" "setVersion" "doBuild" "doInstall" "doWrap"];
+  phaseNames = ["setVars" "doFixNewer" "doFixTests" "setVersion" "doPatch" "doBuild" "doInstall" "doWrap"];
+
+  patches = [ ./newglibc.patch ]; # https://bugs.launchpad.net/sbcl/+bug/1095036
+  patchFlags = "-p2";
 
   setVars = a.fullDepEntry (''
     export INSTALL_ROOT=$out
diff --git a/pkgs/development/compilers/sbcl/newglibc.patch b/pkgs/development/compilers/sbcl/newglibc.patch
new file mode 100644
index 000000000000..dbc94b06d4c9
--- /dev/null
+++ b/pkgs/development/compilers/sbcl/newglibc.patch
@@ -0,0 +1,43 @@
+Fixes for glibc 2.17.
+
+linux-os.c is just a missing header (for personality()).
+
+In x86-64-linux-os.c, __USE_GNU is a glibc-internal name that features.h
+defines; _GNU_SOURCE is what it should actually be using to get GNU extensions.
+
+diff -x config.log -x config.status -ru tmp/sbcl-1.1.2/src/runtime/linux-os.c work/sbcl-1.1.2/src/runtime/linux-os.c
+--- tmp/sbcl-1.1.2/src/runtime/linux-os.c	2012-12-01 11:32:38.000000000 +0000
++++ work/sbcl-1.1.2/src/runtime/linux-os.c	2012-12-31 01:20:37.619000000 +0000
+@@ -46,6 +46,7 @@
+ #include <sys/stat.h>
+ #include <unistd.h>
+ #include <linux/version.h>
++#include <sys/personality.h>
+ 
+ #include "validate.h"
+ #include "thread.h"
+diff -x config.log -x config.status -ru tmp/sbcl-1.1.2/src/runtime/x86-64-linux-os.c work/sbcl-1.1.2/src/runtime/x86-64-linux-os.c
+--- tmp/sbcl-1.1.2/src/runtime/x86-64-linux-os.c	2012-12-01 11:32:38.000000000 +0000
++++ work/sbcl-1.1.2/src/runtime/x86-64-linux-os.c	2012-12-31 01:20:25.450000000 +0000
+@@ -14,6 +14,9 @@
+  * files for more information.
+  */
+ 
++/* This is to get REG_RAX etc. from sys/ucontext.h. */
++#define _GNU_SOURCE
++
+ #include <stdio.h>
+ #include <stddef.h>
+ #include <sys/param.h>
+@@ -21,11 +24,7 @@
+ #include <sys/types.h>
+ #include <unistd.h>
+ #include <errno.h>
+-
+-#define __USE_GNU
+ #include <sys/ucontext.h>
+-#undef __USE_GNU
+-
+ 
+ #include "./signal.h"
+ #include "os.h"