summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2013-06-09 17:34:43 +0200
committerIvan Maidanski <ivmai@mail.ru>2013-06-09 17:34:43 +0200
commitff8b8651529810f88f658a5d3a13c72e2f4f5f6a (patch)
treec0ee17476f6a1b1fdb3485f3f060d8503ce3d049
parent77f4e5fb482b20342f3e766412926460a5514629 (diff)
Workaround 'unresolved __tls_get_addr' error for Android NDK clang/mips
* include/private/thread_local_alloc.h (USE_COMPILER_TLS): Do not use for Android NDK Clang/mips (to workaround "unresolved __tls_get_addr" linker error).
-rw-r--r--include/private/thread_local_alloc.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/include/private/thread_local_alloc.h b/include/private/thread_local_alloc.h
index b454c8e..98a9b97 100644
--- a/include/private/thread_local_alloc.h
+++ b/include/private/thread_local_alloc.h
@@ -44,7 +44,9 @@
# define USE_WIN32_COMPILER_TLS
# endif /* !GNU */
# elif defined(LINUX) && !defined(ARM32) && !defined(AVR32) \
- && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >=3))
+ && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) \
+ && !(defined(__clang__) && defined(MIPS) && defined(PLATFORM_ANDROID))
+ /* As of Android NDK r8e, Clang/mips cannot find __tls_get_addr. */
# define USE_COMPILER_TLS
# elif defined(GC_DGUX386_THREADS) || defined(GC_OSF1_THREADS) \
|| defined(GC_AIX_THREADS) || defined(GC_DARWIN_THREADS) \