From b677ba51cf8131a6f6ddcdfee8dd2a8c4c2b4ac7 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sat, 17 Jan 2015 14:27:13 +0000 Subject: [PATCH 1/3] CMM: add a mechanism to import C data labels Fixes threaded runtime on ia64. sm_mutex there was not referenced correctly. Signed-off-by: Sergei Trofimovich --- compiler/cmm/CmmParse.y | 4 ++++ rts/Exception.cmm | 2 +- rts/PrimOps.cmm | 6 +++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/compiler/cmm/CmmParse.y.source b/compiler/cmm/CmmParse.y.source index 6b51e51..fd9489b 100644 --- a/compiler/cmm/CmmParse.y.source +++ b/compiler/cmm/CmmParse.y.source @@ -575,6 +575,10 @@ importName : NAME { ($1, mkForeignLabel $1 Nothing ForeignLabelInExternalPackage IsFunction) } + -- as previous 'NAME', but 'IsData' + | 'CLOSURE' NAME + { ($2, mkForeignLabel $2 Nothing ForeignLabelInExternalPackage IsData) } + -- A label imported with an explicit packageId. | STRING NAME { ($2, mkCmmCodeLabel (fsToPackageKey (mkFastString $1)) $2) } diff --git a/rts/Exception.cmm b/rts/Exception.cmm index 5007ef3..8d19c14 100644 --- a/rts/Exception.cmm +++ b/rts/Exception.cmm @@ -13,7 +13,7 @@ #include "Cmm.h" #include "RaiseAsync.h" -import ghczmprim_GHCziTypes_True_closure; +import CLOSURE ghczmprim_GHCziTypes_True_closure; /* ----------------------------------------------------------------------------- Exception Primitives diff --git a/rts/PrimOps.cmm b/rts/PrimOps.cmm index 3e8612c..2e6ca46 100644 --- a/rts/PrimOps.cmm +++ b/rts/PrimOps.cmm @@ -28,12 +28,12 @@ import pthread_mutex_lock; import pthread_mutex_unlock; #endif -import base_ControlziExceptionziBase_nestedAtomically_closure; +import CLOSURE base_ControlziExceptionziBase_nestedAtomically_closure; import EnterCriticalSection; import LeaveCriticalSection; -import ghczmprim_GHCziTypes_False_closure; +import CLOSURE ghczmprim_GHCziTypes_False_closure; #if defined(USE_MINIINTERPRETER) || !defined(mingw32_HOST_OS) -import sm_mutex; +import CLOSURE sm_mutex; #endif /*----------------------------------------------------------------------------- -- 2.2.1