aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2012-06-16 14:19:56 -0500
committerRob Landley <rob@landley.net>2012-06-16 14:19:56 -0500
commit628eb9b22032fb0f2e343f43efa60ec52b01d345 (patch)
tree47e440d45804e876004b98276cbfb620bb8017c3
parentef7e7ebaab86dae90b8fabb6a5dbea08a26db9ba (diff)
downloadtoybox-628eb9b22032fb0f2e343f43efa60ec52b01d345.tar.gz
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.
-rw-r--r--lib/portability.h13
-rw-r--r--toys.h7
2 files changed, 7 insertions, 13 deletions
diff --git a/lib/portability.h b/lib/portability.h
index 9b8d294f..92d8f96f 100644
--- a/lib/portability.h
+++ b/lib/portability.h
@@ -9,21 +9,18 @@
#define _FILE_OFFSET_BITS 64
-#include <features.h>
-
-//#define _POSIX_C_SOURCE 200809L
-//#define _XOPEN_SOURCE 600
-//#define _BSD_SOURCE
-//#define _SVID_SOURCE
+// This isn't in the spec, but it's how we determine what we're using.
-//#include <stdio.h>
-//#define fdprintf(...) dprintf(__VA_ARGS__)
+#include <features.h>
#ifdef __GLIBC__
// An SUSv4 function that glibc refuses to #define without crazy #defines,
// see http://pubs.opengroup.org/onlinepubs/9699919799/functions/strptime.html
#include <time.h>
char *strptime(const char *buf, const char *format, struct tm *tm);
+// Another one. "Function prototypes shall be provided." but aren't.
+// http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/unistd.h.html
+char *crypt(const char *key, const char *salt);
#endif
#ifdef __GNUC__
diff --git a/toys.h b/toys.h
index 34cf035f..a3339868 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"