
Gregory Collins
Gabriel Wicke
writes: On Tue, 17 Aug 2010 01:09:41 -0400, Gregory Collins wrote:
Hello all,
Does GHC expose any primitives for things like atomic compare-and-swap? I can't seem to find anything in the docs.
Hello Gregory,
I have recently published experimental and low-level FFI bindings to GCC's atomic primitives including CAS as 'bits-extras' on Hackage [1]. Instances for Int and Word types are included.
This is likely lower-level than what you are after, but might still be handy for experimentation.
On OSX libgcc_s is only supplied as a dynamic library, which GHC doesn't seem to be able to link with. Any ideas would be appreciated.
It works with this patch:
------------------------------------------------------------------------------
Remove cc-options field from .cabal; the flags given don't work on OSX
diff --git a/bits-extras.cabal b/bits-extras.cabal
--- a/bits-extras.cabal
+++ b/bits-extras.cabal
@@ -42,8 +42,6 @@
--CC-Options: -O3 -fomit-frame-pointer -march=native -Wall
-- Try link-time optimization (inlining) with gcc 4.5:
-- CC-Options: -fomit-frame-pointer -march=native -Wall -flto
- CC-Options: -fomit-frame-pointer -march=native -Wall
- Extra-Libraries: gcc_s
Include-Dirs: cbits
Install-Includes: bitops-gcc.h atomic-bitops-gcc.h
Extensions: ForeignFunctionInterface
------------------------------------------------------------------------------
G
--
Gregory Collins