From 4616dd0685e954a3c617bdb14e73a19c93a85f89 Mon Sep 17 00:00:00 2001 From: Alexander Polcyn Date: Sat, 3 Jun 2017 13:44:40 -0700 Subject: dont use clock_gettime in grpc compatibiltiy mode --- third_party/cares/config_linux/ares_config.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'third_party') diff --git a/third_party/cares/config_linux/ares_config.h b/third_party/cares/config_linux/ares_config.h index 265974cfae..5be5010ed7 100644 --- a/third_party/cares/config_linux/ares_config.h +++ b/third_party/cares/config_linux/ares_config.h @@ -70,8 +70,14 @@ /* Define to 1 if bool is an available type. */ #define HAVE_BOOL_T 1 -/* Define to 1 if you have the clock_gettime function and monotonic timer. */ -#define HAVE_CLOCK_GETTIME_MONOTONIC 1 +/* Define HAVE_CLOCK_GETTIME_MONOTONIC to 1 if you have the clock_gettime + * function and monotonic timer. + * + * Note: setting HAVE_CLOCK_GETTIME_MONOTONIC causes use of the clock_gettime + * function from glibc, don't set it to support glibc < 2.17 */ +#ifndef GPR_BACKWARDS_COMPATIBILITY_MODE + #define HAVE_CLOCK_GETTIME_MONOTONIC 1 +#endif /* Define to 1 if you have the closesocket function. */ /* #undef HAVE_CLOSESOCKET */ -- cgit v1.2.3 From c3735cbe90445f2ef71955f9ab48b0ae7e976af3 Mon Sep 17 00:00:00 2001 From: Alexander Polcyn Date: Thu, 1 Jun 2017 08:23:52 -0700 Subject: hack to reimplement FDS macros --- third_party/cares/config_linux/ares_config.h | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'third_party') diff --git a/third_party/cares/config_linux/ares_config.h b/third_party/cares/config_linux/ares_config.h index 265974cfae..d95bbb36ab 100644 --- a/third_party/cares/config_linux/ares_config.h +++ b/third_party/cares/config_linux/ares_config.h @@ -505,6 +505,34 @@ # define _DARWIN_USE_64_BIT_INODE 1 #endif +#ifdef GPR_BACKWARDS_COMPATIBILITY_MODE + /* Redefine the fd_set macros for GLIBC < 2.15 support. + * This is a backwards compatibility hack. At version 2.15, GLIBC introduces + * the __fdelt_chk function, and starts using it within its fd_set macros + * (which c-ares uses). For compatibility with GLIBC < 2.15, we need to redefine + * the fd_set macros to not use __fdelt_chk. */ + #include + #undef FD_SET + #undef FD_CLR + #undef FD_ISSET + /* 'FD_ZERO' doesn't use __fdelt_chk, no need to redefine. */ + + #ifdef __FDS_BITS + #define GRPC_CARES_FDS_BITS(set) __FDS_BITS(set) + #else + #define GRPC_CARES_FDS_BITS(set) ((set)->fds_bits) + #endif + + #define GRPC_CARES_FD_MASK(d) ((long int)(1UL << (d) % NFDBITS)) + + #define FD_SET(d, set) \ + ((void) (GRPC_CARES_FDS_BITS (set)[ (d) / NFDBITS ] |= GRPC_CARES_FD_MASK(d))) + #define FD_CLR(d, set) \ + ((void) (GRPC_CARES_FDS_BITS (set)[ (d) / NFDBITS ] &= ~GRPC_CARES_FD_MASK(d))) + #define FD_ISSET(d, set) \ + ((GRPC_CARES_FDS_BITS (set)[ (d) / NFDBITS ] & GRPC_CARES_FD_MASK(d)) != 0) +#endif /* GPR_BACKWARDS_COMPATIBILITY_MODE */ + /* Number of bits in a file offset, on hosts where this is settable. */ /* #undef _FILE_OFFSET_BITS */ -- cgit v1.2.3