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"