Define our desires for POSIX and X/OPEN API features properly.
authorKevin P. Fleming <kpfleming@digium.com>
Mon, 17 Aug 2009 16:25:10 +0000 (16:25 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Mon, 17 Aug 2009 16:25:10 +0000 (16:25 +0000)
Based on a post on the gcc-help mailing list and some subsequent reading,
we can increase our portability to various platforms by directly defining
the POSIX and X/OPEN API feature sets we wish to have available. This patch
does that, and also includes a double-check to ensure that the system
we are compiling on can actually provide the requested feature sets.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@212463 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk.h
main/xml.c

index 30a20ee..3a6cdc0 100644 (file)
 
 #include "asterisk/autoconfig.h"
 
+#define _POSIX_C_SOURCE 200112L
+#define _XOPEN_SOURCE 600
+
+#include <unistd.h>
+
+#if _POSIX_VERSION < 200112L
+#error System does not support POSIX version 200112.
+#endif
+#if _XOPEN_VERSION < 600
+#error System does not support XOPEN version 600.
+#endif
+
 #if !defined(NO_MALLOC_DEBUG) && !defined(STANDALONE) && defined(MALLOC_DEBUG)
 #include "asterisk/astmm.h"
 #endif
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/socket.h>
-#include <unistd.h>
 #include <fcntl.h>
 
 #define        open(a,...)     __ast_fdleak_open(__FILE__,__LINE__,__PRETTY_FUNCTION__, a, __VA_ARGS__)
-#define pipe(a)        __ast_fdleak_pipe(a, __FILE__,__LINE__,__PRETTY_FUNCTION__)
+#define pipe(a)                __ast_fdleak_pipe(a, __FILE__,__LINE__,__PRETTY_FUNCTION__)
 #define socket(a,b,c)  __ast_fdleak_socket(a, b, c, __FILE__,__LINE__,__PRETTY_FUNCTION__)
 #define close(a)       __ast_fdleak_close(a)
 #define        fopen(a,b)      __ast_fdleak_fopen(a, b, __FILE__,__LINE__,__PRETTY_FUNCTION__)
 #define        fclose(a)       __ast_fdleak_fclose(a)
 #define        dup2(a,b)       __ast_fdleak_dup2(a, b, __FILE__,__LINE__,__PRETTY_FUNCTION__)
-#define dup(a) __ast_fdleak_dup(a, __FILE__,__LINE__,__PRETTY_FUNCTION__)
+#define dup(a)         __ast_fdleak_dup(a, __FILE__,__LINE__,__PRETTY_FUNCTION__)
 
 int __ast_fdleak_open(const char *file, int line, const char *func, const char *path, int flags, ...);
 int __ast_fdleak_pipe(int *fds, const char *file, int line, const char *func);
index 54da9fe..36e7dd8 100644 (file)
@@ -27,9 +27,6 @@
 ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
 #if defined(HAVE_LIBXML2)
-#ifndef _POSIX_C_SOURCE        /* Needed on Mac OS X */
-#define _POSIX_C_SOURCE 200112L
-#endif
 #include <libxml/parser.h>
 #include <libxml/tree.h>
 #include <libxml/xinclude.h>