Add logic to work around buggy Android NDKs

Old version of the Android NDK have linker issues with thread local support https://github.com/android-ndk/ndk/issues/8 and isn't actually fixed until r12b https://developer.android.com/ndk/downloads/revision_history.html. ABSL's config.h is being updated to catch this case and having gRPC rely on that will make sure it also gets the fix (rather than repeating a somewhat lengthy macro). 

Since gRPC already has a dependency on ABSL, I figured this wouldn't be an issue.
pull/13173/head
kwasimensah 7 years ago committed by GitHub
parent 21c6405dea
commit 1194782c42
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 16
      include/grpc/impl/codegen/port_platform.h

@ -297,6 +297,22 @@
#endif #endif
#endif /* GPR_NO_AUTODETECT_PLATFORM */ #endif /* GPR_NO_AUTODETECT_PLATFORM */
// Android specifc logic to detect brokeness around TLS support.
#if defined(__ANDROID__) && defined(__clang__)
#include "third_party/absl/base/config.h"
#if !defined(ABSL_HAVE_TLS) && defined(GPR_GCC_TLS)
#undef GPR_GCC_TLS
#define GPR_PTHREAD_TLS 1
#endif //!defined(ABSL_HAVE_TLS) && defined(GPR_GCC_TLS)
// cpu_posix.cc depends on TLS and cpu_linux.cc doesn't.
#if !defined(GPR_GCC_TLS) && defined(GPR_CPU_POSIX)
#undef GPR_CPU_POSIX
#define GPR_CPU_LINUX 1
#endif //! defined(GPR_GCC_TLS) && defined(GPR_CPU_POSIX)
#endif // defined(__ANDROID__) && defined(__clang__)
#if defined(__has_include) #if defined(__has_include)
#if __has_include(<atomic>) #if __has_include(<atomic>)
#define GRPC_HAS_CXX11_ATOMIC #define GRPC_HAS_CXX11_ATOMIC

Loading…
Cancel
Save