aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Nicolas "Pixel" Noble <pixel@nobis-crew.org>2015-02-14 00:23:07 +0100
committerGravatar Nicolas "Pixel" Noble <pixel@nobis-crew.org>2015-02-14 00:23:19 +0100
commitfbdd7abdca3a22b70576ab359f42710765735188 (patch)
tree16421f598b89d869441a529a9ad7913505588891
parent3793267edec1208fd37dcc196d0302f1a07bc65c (diff)
Cleaning up our posix definition / usage.
-) Let's not use _POSIX_SOURCE. It usually implies too much C99. _BSD_SOURCE would be the right thing to do here. -) _BSD_SOURCE is getting deprecated by glibc, so we also have to define _DEFAULT_SOURCE under Linux. -) accept4 and eventfd arn't as old as we may think; let's detect for it. -) stdint.h interferes with all these definitions if included too early; let's move it down.
-rw-r--r--include/grpc/support/port_platform.h33
-rw-r--r--src/core/iomgr/socket_utils_linux.c5
-rw-r--r--src/core/support/file_posix.c13
-rw-r--r--src/core/support/log_posix.c10
-rw-r--r--src/core/support/string_posix.c7
-rw-r--r--src/core/support/sync_posix.c7
-rw-r--r--src/core/support/time_posix.c8
7 files changed, 29 insertions, 54 deletions
diff --git a/include/grpc/support/port_platform.h b/include/grpc/support/port_platform.h
index fbaefe6d09..5b9b3c47a6 100644
--- a/include/grpc/support/port_platform.h
+++ b/include/grpc/support/port_platform.h
@@ -37,10 +37,6 @@
/* Override this file with one for your platform if you need to redefine
things. */
-/* For a common case, assume that the platform has a C99-like stdint.h */
-
-#include <stdint.h>
-
#if !defined(GPR_NO_AUTODETECT_PLATFORM)
#if defined(_WIN64) || defined(WIN64)
#define GPR_WIN32 1
@@ -70,20 +66,40 @@
#define GPR_POSIX_TIME 1
#define GPR_GETPID_IN_UNISTD_H 1
#elif defined(__linux__)
+#ifndef _BSD_SOURCE
+#define _BSD_SOURCE
+#endif
+#ifndef _DEFAULT_SOURCE
+#define _DEFAULT_SOURCE
+#endif
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
#include <features.h>
#define GPR_CPU_LINUX 1
#define GPR_GCC_ATOMIC 1
#define GPR_LINUX 1
#define GPR_LINUX_MULTIPOLL_WITH_EPOLL 1
#define GPR_POSIX_WAKEUP_FD 1
-#define GPR_LINUX_EVENTFD 1
#define GPR_POSIX_SOCKET 1
#define GPR_POSIX_SOCKETADDR 1
#ifdef __GLIBC_PREREQ
+#if __GLIBC_PREREQ(2, 9)
+#define GPR_LINUX_EVENTFD 1
+#endif
+#if __GLIBC_PREREQ(2, 10)
+#define GPR_LINUX_SOCKETUTILS 1
+#endif
#if __GLIBC_PREREQ(2, 17)
#define GPR_LINUX_ENV 1
#endif
#endif
+#ifndef GPR_LINUX_EVENTFD
+#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1
+#endif
+#ifndef GPR_LINUX_SOCKETUTILS
+#define GPR_POSIX_SOCKETUTILS
+#endif
#ifndef GPR_LINUX_ENV
#define GPR_POSIX_ENV 1
#endif
@@ -98,6 +114,9 @@
#define GPR_ARCH_32 1
#endif /* _LP64 */
#elif defined(__APPLE__)
+#ifndef _BSD_SOURCE
+#define _BSD_SOURCE
+#endif
#define GPR_CPU_POSIX 1
#define GPR_GCC_ATOMIC 1
#define GPR_POSIX_LOG 1
@@ -123,6 +142,10 @@
#endif
#endif /* GPR_NO_AUTODETECT_PLATFORM */
+/* For a common case, assume that the platform has a C99-like stdint.h */
+
+#include <stdint.h>
+
/* Cache line alignment */
#ifndef GPR_CACHELINE_SIZE
#if defined(__i386__) || defined(__x86_64__)
diff --git a/src/core/iomgr/socket_utils_linux.c b/src/core/iomgr/socket_utils_linux.c
index 7ef58940c2..f3c22187d7 100644
--- a/src/core/iomgr/socket_utils_linux.c
+++ b/src/core/iomgr/socket_utils_linux.c
@@ -31,12 +31,9 @@
*
*/
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
#include <grpc/support/port_platform.h>
-#ifdef GPR_LINUX
+#ifdef GPR_LINUX_SOCKETUTILS
#include "src/core/iomgr/socket_utils_posix.h"
diff --git a/src/core/support/file_posix.c b/src/core/support/file_posix.c
index cb48b3d52f..e1765666db 100644
--- a/src/core/support/file_posix.c
+++ b/src/core/support/file_posix.c
@@ -31,19 +31,6 @@
*
*/
-/* Posix code for gpr fdopen and mkstemp support. */
-
-#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 200112L
-#undef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 200112L
-#endif
-
-/* Don't know why I have to do this for mkstemp, looks like _POSIX_C_SOURCE
- should be enough... */
-#ifndef _BSD_SOURCE
-#define _BSD_SOURCE
-#endif
-
#include <grpc/support/port_platform.h>
#ifdef GPR_POSIX_FILE
diff --git a/src/core/support/log_posix.c b/src/core/support/log_posix.c
index 05f45de130..36479baeed 100644
--- a/src/core/support/log_posix.c
+++ b/src/core/support/log_posix.c
@@ -31,16 +31,6 @@
*
*/
-#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 200112L
-#undef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 200112L
-#endif
-
-/* FIXME: "posix" files probably shouldn't depend on _GNU_SOURCE */
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-
#include <grpc/support/port_platform.h>
#if defined(GPR_POSIX_LOG)
diff --git a/src/core/support/string_posix.c b/src/core/support/string_posix.c
index a6bb8058e6..b6f0cd4af0 100644
--- a/src/core/support/string_posix.c
+++ b/src/core/support/string_posix.c
@@ -31,13 +31,6 @@
*
*/
-/* Posix code for gpr snprintf support. */
-
-#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 200112L
-#undef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 200112L
-#endif
-
#include <grpc/support/port_platform.h>
#ifdef GPR_POSIX_STRING
diff --git a/src/core/support/sync_posix.c b/src/core/support/sync_posix.c
index a28a4c6bf4..94fc1b0bec 100644
--- a/src/core/support/sync_posix.c
+++ b/src/core/support/sync_posix.c
@@ -31,13 +31,6 @@
*
*/
-/* Posix gpr synchroization support code. */
-
-#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 199309L
-#undef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 199309L
-#endif
-
#include <grpc/support/port_platform.h>
#ifdef GPR_POSIX_SYNC
diff --git a/src/core/support/time_posix.c b/src/core/support/time_posix.c
index 7f0f028183..d206174edf 100644
--- a/src/core/support/time_posix.c
+++ b/src/core/support/time_posix.c
@@ -31,14 +31,6 @@
*
*/
-/* Posix code for gpr time support. */
-
-/* So we get nanosleep and clock_* */
-#if !defined _POSIX_C_SOURCE || _POSIX_C_SOURCE < 199309L
-#undef _POSIX_C_SOURCE
-#define _POSIX_C_SOURCE 199309L
-#endif
-
#include <grpc/support/port_platform.h>
#ifdef GPR_POSIX_TIME