sbcl: fix and minor update

This commit is contained in:
Vladimír Čunát 2013-02-24 18:20:57 +01:00
parent f20ff74afe
commit 0e9b88cc4a
2 changed files with 51 additions and 5 deletions

@ -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

@ -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"