Mercurial > hg > toybox
changeset 600:58d2fd7484bd
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.
author | Rob Landley <rob@landley.net> |
---|---|
date | Sat, 16 Jun 2012 14:19:56 -0500 |
parents | 4d0498e1f657 |
children | a6a541b7fc34 |
files | lib/portability.h toys.h |
diffstat | 2 files changed, 7 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/portability.h Thu Jun 14 00:33:33 2012 -0500 +++ b/lib/portability.h Sat Jun 16 14:19:56 2012 -0500 @@ -9,21 +9,18 @@ #define _FILE_OFFSET_BITS 64 -#include <features.h> +// This isn't in the spec, but it's how we determine what we're using. -//#define _POSIX_C_SOURCE 200809L -//#define _XOPEN_SOURCE 600 -//#define _BSD_SOURCE -//#define _SVID_SOURCE - -//#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__
--- a/toys.h Thu Jun 14 00:33:33 2012 -0500 +++ b/toys.h Sat Jun 16 14:19:56 2012 -0500 @@ -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"