summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2013-06-10 22:02:34 +0200
committerIvan Maidanski <ivmai@mail.ru>2013-06-10 22:02:34 +0200
commit6ccf07b218f59892265f1b313b85e0feafe04958 (patch)
treef0e97f5af653130fd24cb7d336c1ab4706068953
parent7e378ce7d0c77402ecac6d5a3777bdcaf5956fd6 (diff)
Use compiler TLS for Android NDK gcc/arm
* include/private/thread_local_alloc.h (USE_COMPILER_TLS): Define for Android NDK gcc/arm v4.6 or higher.
-rw-r--r--include/private/thread_local_alloc.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/include/private/thread_local_alloc.h b/include/private/thread_local_alloc.h
index 686b638..0798863 100644
--- a/include/private/thread_local_alloc.h
+++ b/include/private/thread_local_alloc.h
@@ -43,9 +43,11 @@
# else
# define USE_WIN32_COMPILER_TLS
# endif /* !GNU */
-# elif defined(LINUX) && !defined(ARM32) && !defined(AVR32) \
- && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) \
- && !(defined(__clang__) && defined(PLATFORM_ANDROID))
+# elif (defined(LINUX) && !defined(ARM32) && !defined(AVR32) \
+ && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)) \
+ && !(defined(__clang__) && defined(PLATFORM_ANDROID))) \
+ || (defined(PLATFORM_ANDROID) && defined(ARM32) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)))
/* As of Android NDK r8e, Clang cannot find __tls_get_addr. */
# define USE_COMPILER_TLS
# elif defined(GC_DGUX386_THREADS) || defined(GC_OSF1_THREADS) \