diff -r b334e60eb121 lib9/_p9dir.c
--- a/lib9/_p9dir.c	Thu Nov 01 18:42:41 2012 +0100
+++ b/lib9/_p9dir.c	Mon Nov 26 20:50:28 2012 -0500
@@ -61,7 +61,7 @@
 	return (vlong)lab.d_partitions[n].p_size * lab.d_secsize;
 }
 
-#elif defined(__linux__)
+#elif defined(__linux__) && !defined(__MUSL__)
 #include <linux/hdreg.h>
 #include <linux/fs.h>
 #include <sys/ioctl.h>
diff -r b334e60eb121 lib9/dirread.c
--- a/lib9/dirread.c	Thu Nov 01 18:42:41 2012 +0100
+++ b/lib9/dirread.c	Mon Nov 26 20:50:28 2012 -0500
@@ -21,6 +21,12 @@
 mygetdents(int fd, struct dirent *buf, int n) {
   return syscall (getdents, fd, (void*) buf, n);
 }
+# elif defined(__MUSL__)
+static int
+mygetdents(int fd, struct dirent *buf, int n)
+{
+	return getdents(fd, (void*)buf, n);
+}
 # else
 static int
 mygetdents(int fd, struct dirent *buf, int n)
diff -r b334e60eb121 lib9/libc.h
--- a/lib9/libc.h	Thu Nov 01 18:42:41 2012 +0100
+++ b/lib9/libc.h	Mon Nov 26 20:50:28 2012 -0500
@@ -438,6 +438,7 @@
 #define decrypt		p9decrypt
 #define getenv		p9getenv
 #define	getwd		p9getwd
+#undef longjmp
 #define	longjmp		p9longjmp
 #undef  setjmp
 #define setjmp		p9setjmp
diff -r b334e60eb121 lib9/readcons.c
--- a/lib9/readcons.c	Thu Nov 01 18:42:41 2012 +0100
+++ b/lib9/readcons.c	Mon Nov 26 20:50:28 2012 -0500
@@ -2,7 +2,9 @@
 #define NOPLAN9DEFINES
 #include <libc.h>
 #include <termios.h>
-#include <sys/termios.h>
+#ifndef (__MUSL__)
+# include <sys/termios.h>
+#endif
 
 static int
 rawx(int fd, int echoing)
