nixpkgs/pkgs/development/compilers/sbcl/newglibc.patch
2013-02-24 18:20:57 +01:00

44 lines
1.3 KiB
Diff

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"