Do not define hs_atomic{read,write}64() on non-64bit
authorIlias Tsitsimpis <iliastsi@debian.org>
Sun, 3 Oct 2021 11:27:00 +0000 (12:27 +0100)
committerIlias Tsitsimpis <iliastsi@debian.org>
Sun, 3 Oct 2021 11:27:00 +0000 (12:27 +0100)
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

index ea9612060c0e98bac940d97099233721b193e3ec..8396e767186a822e4884829354281f7c30fae927 100644 (file)
@@ -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