From 0e9b88cc4a00851e2ea8d59b2975c96dd7ce44b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Sun, 24 Feb 2013 18:20:57 +0100 Subject: [PATCH] sbcl: fix and minor update --- pkgs/development/compilers/sbcl/default.nix | 13 +++--- .../development/compilers/sbcl/newglibc.patch | 43 +++++++++++++++++++ 2 files changed, 51 insertions(+), 5 deletions(-) create mode 100644 pkgs/development/compilers/sbcl/newglibc.patch 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 + #include + #include ++#include + + #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 + #include + #include +@@ -21,11 +24,7 @@ + #include + #include + #include +- +-#define __USE_GNU + #include +-#undef __USE_GNU +- + + #include "./signal.h" + #include "os.h"