[commit: ghc] master: - fix gc_thread related compilation failure on Solaris/i386 platform (84f6739)

git at git.haskell.org git at git.haskell.org
Wed Dec 23 09:42:12 UTC 2015


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/84f673961942c90e28c215e2c31a62444fbc8237/ghc

>---------------------------------------------------------------

commit 84f673961942c90e28c215e2c31a62444fbc8237
Author: Karel Gardas <karel.gardas at centrum.cz>
Date:   Tue Dec 22 22:53:00 2015 +0100

    - fix gc_thread related compilation failure on Solaris/i386 platform
    
    Summary:
    This patch fixes gc_thread related compilation failure
    on Solaris/i386 platform. It uses Linux way of __thread declared
    gc_thread variable for register starving i386 from now.
    
    Reviewers: bgamari, austin, erikd
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1688


>---------------------------------------------------------------

84f673961942c90e28c215e2c31a62444fbc8237
 rts/sm/GCTDecl.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/rts/sm/GCTDecl.h b/rts/sm/GCTDecl.h
index 5602cb8..f1f9516 100644
--- a/rts/sm/GCTDecl.h
+++ b/rts/sm/GCTDecl.h
@@ -78,7 +78,8 @@ extern __thread gc_thread* gct;
    x86/Linux, because we have too few registers available. In my
    tests it was worth about 5% in GC performance, but of course that
    might change as gcc improves. -- SDM 2009/04/03 */
-#elif (defined(i386_HOST_ARCH) && defined(linux_HOST_OS))
+#elif (defined(i386_HOST_ARCH) && (defined(linux_HOST_OS) \
+                                   || defined(solaris2_HOST_OS)))
 extern __thread gc_thread* gct;
 #define SET_GCT(to) gct = (to)
 #define DECLARE_GCT __thread gc_thread* gct;



More information about the ghc-commits mailing list