[commit: ghc] ghc-7.8: Fix iOS build (fallout from 28b031c506) (967d234)
git at git.haskell.org
git at git.haskell.org
Thu Jan 30 13:34:22 UTC 2014
Repository : ssh://git@git.haskell.org/ghc
On branch : ghc-7.8
Link : http://ghc.haskell.org/trac/ghc/changeset/967d234ad4b42c1e411348e43bcadc0da5042f36/ghc
>---------------------------------------------------------------
commit 967d234ad4b42c1e411348e43bcadc0da5042f36
Author: Austin Seipp <austin at well-typed.com>
Date: Thu Jan 30 07:03:29 2014 -0600
Fix iOS build (fallout from 28b031c506)
As Luke Iannini reported, the Clang iOS cross compiler apparently
doesn't support __thread for some bizarre reason, so unfortunately they
too must fall back to pthread_{get,set}specific.
(cherry picked from commit 48326cfb1ef4b455f81fbbece7a17dab17f7c932)
Signed-off-by: Austin Seipp <austin at well-typed.com>
>---------------------------------------------------------------
967d234ad4b42c1e411348e43bcadc0da5042f36
rts/sm/GCTDecl.h | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/rts/sm/GCTDecl.h b/rts/sm/GCTDecl.h
index affb852..2489430 100644
--- a/rts/sm/GCTDecl.h
+++ b/rts/sm/GCTDecl.h
@@ -53,8 +53,11 @@ extern StgWord8 the_gc_thread[];
/* Now, llvm-gcc and some older Clang compilers do not support
__thread. So we have to fallback to the extremely slow case,
- unfortunately. Note: clang_CC_FLAVOR implies llvm_CC_FLAVOR */
-#if defined(llvm_CC_FLAVOR) && (CC_SUPPORTS_TLS == 0)
+ unfortunately. Note: clang_CC_FLAVOR implies llvm_CC_FLAVOR.
+
+ Also, the iOS Clang compiler doesn't support __thread either for
+ some bizarre reason, so there's not much we can do about that... */
+#if (defined(llvm_CC_FLAVOR) && (CC_SUPPORTS_TLS == 0)) || defined(ios_HOST_OS)
#define gct ((gc_thread *)(pthread_getspecific(gctKey)))
#define SET_GCT(to) (pthread_setspecific(gctKey, to))
#define DECLARE_GCT ThreadLocalKey gctKey;
More information about the ghc-commits
mailing list