From c0ed60040d2430f05f627736299a0e849cc4f6fb Mon Sep 17 00:00:00 2001 From: Ilias Tsitsimpis Date: Fri, 31 Jul 2020 16:48:26 +0100 Subject: [PATCH] Do not define hs_atomic{read,write}64() on non-64bit Bug: https://gitlab.haskell.org/ghc/ghc/issues/17886 Forwarded: https://gitlab.haskell.org/ghc/ghc/merge_requests/2804 Gbp-Pq: Name fix-32bit-atomic --- libraries/ghc-prim/cbits/atomic.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libraries/ghc-prim/cbits/atomic.c b/libraries/ghc-prim/cbits/atomic.c index ea961206..8396e767 100644 --- a/libraries/ghc-prim/cbits/atomic.c +++ b/libraries/ghc-prim/cbits/atomic.c @@ -361,6 +361,7 @@ hs_atomicread32(StgWord x) #endif } +#if WORD_SIZE_IN_BITS == 64 extern StgWord64 hs_atomicread64(StgWord x); StgWord64 hs_atomicread64(StgWord x) @@ -371,6 +372,7 @@ hs_atomicread64(StgWord x) return __sync_add_and_fetch((StgWord64 *) x, 0); #endif } +#endif // AtomicWriteByteArrayOp_Int // Implies a full memory barrier (see compiler/prelude/primops.txt.pp) @@ -409,6 +411,7 @@ hs_atomicwrite32(StgWord x, StgWord val) #endif } +#if WORD_SIZE_IN_BITS == 64 extern void hs_atomicwrite64(StgWord x, StgWord64 val); void hs_atomicwrite64(StgWord x, StgWord64 val) @@ -420,3 +423,5 @@ hs_atomicwrite64(StgWord x, StgWord64 val) #endif } #endif + +#endif -- 2.30.2