Patch-Source: https://github.com/void-linux/void-packages/raw/master/srcpkgs/ccl/patches/musl-fixes.patch

--- a/lisp-kernel/lisp-debug.c	2015-11-07 07:10:11.000000000 +1100
+++ b/lisp-kernel/lisp-debug.c	2016-12-18 10:35:29.070710875 +1100
@@ -36,6 +36,11 @@
 #include <dlfcn.h>
 #endif
 
+#ifndef __GLIBC__
+struct _libc_xmmreg {
+  unsigned int element[4];
+};
+#endif
 
 FILE *dbgout = NULL, *dbgin=NULL;
 
--- a/lisp-kernel/pmcl-kernel.c	2015-11-07 07:10:11.000000000 +1100
+++ b/lisp-kernel/pmcl-kernel.c	2016-12-18 10:34:36.854708181 +1100
@@ -36,7 +36,7 @@
 #endif
 
 #ifdef LINUX
-#ifndef ANDROID
+#ifdef __GLIBC__
 #include <mcheck.h>
 #endif
 #include <dirent.h>
@@ -1702,6 +1702,10 @@
 ensure_gs_available(char *progname)
 {
   LispObj fs_addr = 0L, gs_addr = 0L, cur_thread = (LispObj)pthread_self();
+  #ifdef __GLIBC__
   char *gnu_get_libc_version(void);
+  #else
+  #define gnu_get_libc_version() ""
+  #endif
   /*
    * According arch_prctl(2), there's no function prototype for
--- a/lisp-kernel/thread_manager.c	2015-11-07 07:10:11.000000000 +1100
+++ b/lisp-kernel/thread_manager.c	2016-12-18 10:32:35.095701899 +1100
@@ -185,7 +185,7 @@
 void
 set_thread_affinity(TCR *target, unsigned cpuno)
 {
-#ifdef LINUX
+#ifdef __GLIBC__
 #ifndef ANDROID                 /* too useful to be in Android ... */
   pthread_t thread = (pthread_t)(target->osid);
   cpu_set_t mask;
--- a/lisp-kernel/x86-exceptions.c	2015-11-07 07:10:11.000000000 +1100
+++ b/lisp-kernel/x86-exceptions.c	2016-12-18 10:30:47.952696372 +1100
@@ -29,7 +29,9 @@
 #ifdef LINUX
 #include <strings.h>
 #include <sys/mman.h>
+#ifdef __GLIBC__
 #include <fpu_control.h>
+#endif
 #include <linux/prctl.h>
 #endif
 #ifdef DARWIN
