summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaphael Kubo da Costa <rakuco@FreeBSD.org>2012-09-11 22:50:13 +0300
committerChristian Beier <dontmind@freeshell.org>2012-09-14 18:47:27 +0200
commit4c148e5f74f764bccbe8b519494addb4aa0d79d0 (patch)
tree06b255232e1018817a2d918f7e55ff69ae46ee91
parent8f1ef3d66cb846ed003b9f88bc56ef3b4859953e (diff)
downloadlibtdevnc-4c148e5f.tar.gz
libtdevnc-4c148e5f.zip
Tune the definitions needed when building with -ansi.
The current definitions were mostly useful to glibc and followed its feature_test_macros(3) documentation. However, this means other platforms still had problems when building with strict compilation flags. _BSD_SOURCE, for example, is only recognized by glibc, and other platforms sometimes need _XOPEN_SOURCE instead, or even the removal of some definitions (such as the outdate _POSIX_SOURCE one). _POSIX_SOURCE also had to be conditionally defined in some places, as what it enables or disables during compilation varies across systems.
-rw-r--r--common/vncauth.c1
-rw-r--r--libvncclient/rfbproto.c1
-rw-r--r--libvncclient/sockets.c5
-rw-r--r--libvncserver/httpd.c5
-rw-r--r--libvncserver/rfbserver.c2
-rw-r--r--libvncserver/sockets.c6
-rw-r--r--libvncserver/websockets.c1
7 files changed, 19 insertions, 2 deletions
diff --git a/common/vncauth.c b/common/vncauth.c
index 82c1b68..0b20f53 100644
--- a/common/vncauth.c
+++ b/common/vncauth.c
@@ -24,6 +24,7 @@
#ifdef __STRICT_ANSI__
#define _BSD_SOURCE
#define _POSIX_SOURCE
+#define _XOPEN_SOURCE 600
#endif
#ifdef LIBVNCSERVER_HAVE_SYS_TYPES_H
#include <sys/types.h>
diff --git a/libvncclient/rfbproto.c b/libvncclient/rfbproto.c
index 505ef50..d18459e 100644
--- a/libvncclient/rfbproto.c
+++ b/libvncclient/rfbproto.c
@@ -26,6 +26,7 @@
#ifdef __STRICT_ANSI__
#define _BSD_SOURCE
#define _POSIX_SOURCE
+#define _XOPEN_SOURCE 600
#endif
#ifndef WIN32
#include <unistd.h>
diff --git a/libvncclient/sockets.c b/libvncclient/sockets.c
index 6c47491..c97a90f 100644
--- a/libvncclient/sockets.c
+++ b/libvncclient/sockets.c
@@ -24,6 +24,11 @@
#ifdef __STRICT_ANSI__
#define _BSD_SOURCE
+#ifdef __linux__
+/* Setting this on other systems hides definitions such as INADDR_LOOPBACK.
+ * The check should be for __GLIBC__ in fact. */
+# define _POSIX_SOURCE
+#endif
#endif
#include <unistd.h>
#include <errno.h>
diff --git a/libvncserver/httpd.c b/libvncserver/httpd.c
index ed91e46..792a52b 100644
--- a/libvncserver/httpd.c
+++ b/libvncserver/httpd.c
@@ -23,6 +23,11 @@
* USA.
*/
+#ifdef __STRICT_ANSI__
+#define _BSD_SOURCE
+#define _POSIX_SOURCE
+#endif
+
#include <rfb/rfb.h>
#include <ctype.h>
diff --git a/libvncserver/rfbserver.c b/libvncserver/rfbserver.c
index cc398f2..ad64ac1 100644
--- a/libvncserver/rfbserver.c
+++ b/libvncserver/rfbserver.c
@@ -28,6 +28,8 @@
#ifdef __STRICT_ANSI__
#define _BSD_SOURCE
+#define _POSIX_SOURCE
+#define _XOPEN_SOURCE 600
#endif
#include <string.h>
#include <rfb/rfb.h>
diff --git a/libvncserver/sockets.c b/libvncserver/sockets.c
index 2345248..ddd8450 100644
--- a/libvncserver/sockets.c
+++ b/libvncserver/sockets.c
@@ -43,7 +43,11 @@
#ifdef __STRICT_ANSI__
#define _BSD_SOURCE
-#define _POSIX_SOURCE
+#ifdef __linux__
+/* Setting this on other systems hides definitions such as INADDR_LOOPBACK.
+ * The check should be for __GLIBC__ in fact. */
+# define _POSIX_SOURCE
+#endif
#endif
#include <rfb/rfb.h>
diff --git a/libvncserver/websockets.c b/libvncserver/websockets.c
index f7e3d04..043e6cb 100644
--- a/libvncserver/websockets.c
+++ b/libvncserver/websockets.c
@@ -28,7 +28,6 @@
#ifdef __STRICT_ANSI__
#define _BSD_SOURCE
-#define _POSIX_SOURCE
#endif
#include <rfb/rfb.h>