On Tue, 19 Dec 2006, Nicolas Pitre wrote: > > Because _XOPEN_SOURCE must be defined before including unistd.h > otherwise pread is not declared and a warning is issued. May I actually suggest we handle _all_ of these issues in one central place, namely "git-compat-util.h" It's nice to have just one single file that tries to hide the details of all the differences between systems. Sure, that file ends up having to include a lot of standard header files that some of the .c files don't actually _need_, but git compiles reasonably quickly, so I don't think we need to try to optimize compile speed much. It's the C++ people who tend to have sucky compile times. So how about something like the appended? And then just have the rule that we try to include "cache.h" early, because that brings in ALL the really basic system header files? Linus --- diff --git a/convert-objects.c b/convert-objects.c index 8812583..a630132 100644 --- a/convert-objects.c +++ b/convert-objects.c @@ -1,7 +1,3 @@ -#define _XOPEN_SOURCE 600 /* glibc2 and AIX 5.3L need 500, OpenBSD needs 600 for S_ISLNK() */ -#define _XOPEN_SOURCE_EXTENDED 1 /* AIX 5.3L needs this */ -#define _GNU_SOURCE -#include <time.h> #include "cache.h" #include "blob.h" #include "commit.h" diff --git a/git-compat-util.h b/git-compat-util.h index 0272d04..e619e29 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -11,6 +11,10 @@ #define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) +#define _XOPEN_SOURCE 600 /* glibc2 and AIX 5.3L need 500, OpenBSD needs 600 for S_ISLNK() */ +#define _XOPEN_SOURCE_EXTENDED 1 /* AIX 5.3L needs this */ +#define _GNU_SOURCE + #include <unistd.h> #include <stdio.h> #include <sys/stat.h> @@ -25,6 +29,10 @@ #include <netinet/in.h> #include <sys/types.h> #include <dirent.h> +#include <sys/time.h> +#include <time.h> +#include <signal.h> +#include <sys/wait.h> /* On most systems <limits.h> would have given us this, but * not on some systems (e.g. GNU/Hurd). - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html