More header fiddling: crypt.h is silly, SUSv4 requires crypt() to be prototyped in unistd.h. The fact glibc refuses to do so without a wacky #define is a glibc bug, treat it as such.
diff --git a/toys.h b/toys.h
index 34cf035..a333986 100644
--- a/toys.h
+++ b/toys.h
@@ -8,7 +8,6 @@
 
 #include "lib/portability.h"
 
-#include <crypt.h>
 #include <ctype.h>
 #include <dirent.h>
 #include <errno.h>
@@ -37,18 +36,16 @@
 #include <sys/statvfs.h>
 #include <sys/sysinfo.h>
 #include <sys/swap.h>
+#include <sys/times.h>
 #include <sys/types.h>
 #include <sys/utsname.h>
 #include <sys/wait.h>
 #include <syslog.h>
+#include <time.h>
 #include <unistd.h>
 #include <utime.h>
 #include <utmpx.h>
 
-#undef _XOPEN_SOURCE
-#define _XOPEN_SOURCE 600
-#include <time.h>
-
 #include "lib/lib.h"
 #include "toys/e2fs.h"