Skip to content

Commit

Permalink
Add logic to work around buggy Android NDKs
Browse files Browse the repository at this point in the history
Old version of the Android NDK have linker issues with thread local support android/ndk#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.
  • Loading branch information
kwasimensah authored Oct 27, 2017
1 parent 21c6405 commit 1194782
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions include/grpc/impl/codegen/port_platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,22 @@
#endif
#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 __has_include(<atomic>)
#define GRPC_HAS_CXX11_ATOMIC
Expand Down

0 comments on commit 1194782

Please sign in to comment.