summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMoritz Angermann <moritz.angermann@gmail.com>2019-05-22 11:19:41 +0800
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-07-02 16:18:05 -0400
commite9abcad4cc3f9f393e7368c082d693ec6dfc60f5 (patch)
tree5708f6807778dcda3fccff3bd3fa40437a15ca06
parent348e3f8eea84bdbfa2f3a8adc772c4b67c27f756 (diff)
downloadhaskell-e9abcad4cc3f9f393e7368c082d693ec6dfc60f5.tar.gz
No atomics on arm32; this will just yield stubs.
As such the internal linker will fail for them. The alternative would be to implement them as stubs in the linker and have them barf when called. > Not all operations are supported by all target processors. If a particular operation cannot be implemented on the target processor, a warning is generated and a call an external function is generated. The external function carries the same name as the built-in version, with an additional suffix ā€˜_nā€™ where n is the size of the data type. (https://gcc.gnu.org/onlinedocs/gcc/_005f_005fsync-Builtins.html)
-rw-r--r--libraries/ghc-prim/cbits/atomic.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libraries/ghc-prim/cbits/atomic.c b/libraries/ghc-prim/cbits/atomic.c
index a7d7544b4f..ac2e608ec2 100644
--- a/libraries/ghc-prim/cbits/atomic.c
+++ b/libraries/ghc-prim/cbits/atomic.c
@@ -1,3 +1,4 @@
+#if !defined(arm_HOST_ARCH)
#include "Rts.h"
// Fallbacks for atomic primops on byte arrays. The builtins used
@@ -418,3 +419,4 @@ hs_atomicwrite64(StgWord x, StgWord64 val)
while (!__sync_bool_compare_and_swap((StgWord64 *) x, *(StgWord64 *) x, (StgWord64) val));
#endif
}
+#endif