[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