Make things build on FreeBSD again.
diff --git a/src/cmd/diff/diffdir.c b/src/cmd/diff/diffdir.c
index 41e4fbf..c9446d6 100644
--- a/src/cmd/diff/diffdir.c
+++ b/src/cmd/diff/diffdir.c
@@ -4,9 +4,9 @@
 #include "diff.h"
 
 static int
-itemcmp(void *v1, void *v2)
+itemcmp(const void *v1, const void *v2)
 {
-	char **d1 = v1, **d2 = v2;
+	char *const*d1 = v1, *const*d2 = v2;
 
 	return strcmp(*d1, *d2);
 }
diff --git a/src/lib9/_p9dialparse.c b/src/lib9/_p9dialparse.c
index 44594dc..4502751 100644
--- a/src/lib9/_p9dialparse.c
+++ b/src/lib9/_p9dialparse.c
@@ -1,9 +1,11 @@
+#include <u.h>
+#define NOPLAN9DEFINES
+#include <libc.h>
+
+#include <sys/types.h>
 #include <netdb.h>
 #include <sys/un.h>
 
-#include <u.h>
-#include <libc.h>
-
 static char *nets[] = { "tcp", "udp", nil };
 #define CLASS(p) ((*(uchar*)(p))>>6)
 
diff --git a/src/lib9/_p9dir.c b/src/lib9/_p9dir.c
index 0903c57..d94208c 100644
--- a/src/lib9/_p9dir.c
+++ b/src/lib9/_p9dir.c
@@ -1,3 +1,8 @@
+#include <u.h>
+#define NOPLAN9DEFINES
+#include <libc.h>
+
+#include <sys/types.h>
 #include <sys/stat.h>
 #ifdef _HAVEDISKLABEL
 #include <sys/disklabel.h>
@@ -6,10 +11,6 @@
 #include <pwd.h>
 #include <grp.h>
 
-#include <u.h>
-#define NOPLAN9DEFINES
-#include <libc.h>
-
 int
 _p9dir(struct stat *st, char *name, Dir *d, char **str, char *estr)
 {
diff --git a/src/libsec/port/aes.c b/src/libsec/port/aes.c
index dda9c8a..ac1cac2 100644
--- a/src/libsec/port/aes.c
+++ b/src/libsec/port/aes.c
@@ -950,6 +950,7 @@
 	return 0;
 }
 
+#if 0
 /**
  * Expand the cipher key into the decryption key schedule.
  *
@@ -994,6 +995,7 @@
 	}
 	return Nr;
 }
+#endif
 
 static void rijndaelEncrypt(const u32 rk[/*4*(Nr + 1)*/], int Nr, const u8 pt[16], u8 ct[16]) {
 	u32 s0, s1, s2, s3, t0, t1, t2, t3;
diff --git a/src/libsec/port/md5.c b/src/libsec/port/md5.c
index bb2f3cb..1d57944 100644
--- a/src/libsec/port/md5.c
+++ b/src/libsec/port/md5.c
@@ -28,7 +28,6 @@
  */
 
 static void encode(uchar*, u32int*, ulong);
-static void decode(u32int*, uchar*, ulong);
 
 extern void _md5block(uchar*, ulong, u32int*);
 
diff --git a/src/libthread/proctab.c b/src/libthread/proctab.c
index 222d8c2..5e5dcb2 100644
--- a/src/libthread/proctab.c
+++ b/src/libthread/proctab.c
@@ -26,17 +26,7 @@
 {
 	Proc **l, *p;
 	int h, pid;
-	Thread *t;
-	ulong *s;
 
-/* fails on linux, probably because the main stack
- * has to be grown a page at a time instead of the big jump?
-	s = (ulong*)((ulong)&pid & ~(STKSIZE-1));
-	if(s[0] == STKMAGIC){
-		t = (Thread*)s[1];
-		return t->proc;
-	}
-*/
 	pid = _threadgetpid();
 
 	lock(&ptablock);
diff --git a/src/mkfile b/src/mkfile
index a896be2..23e34ef 100644
--- a/src/mkfile
+++ b/src/mkfile
@@ -13,7 +13,7 @@
 	libthread\
 	libutf\
 	libventi\
-#	cmd\
+	cmd\
 
 <mkdirs
 
diff --git a/src/mkhdr b/src/mkhdr
index d1b6572..3b0384e 100644
--- a/src/mkhdr
+++ b/src/mkhdr
@@ -13,7 +13,7 @@
 BIN=$PLAN9/bin
 LIBDIR=$PLAN9/lib
 
-<$PLAN9/src/mk.$SYSNAME-$OBJTYPE
+<|cat $PLAN9/src/mk.$SYSNAME-$OBJTYPE 2>/dev/null || true
 
 OS=$O
 LD=9l