[Haskell-cafe] Re: Support for lock-free/wait-free programming?

Gregory Collins greg at gregorycollins.net
Sat Aug 28 21:22:57 EDT 2010


Gregory Collins <greg at gregorycollins.net> writes:

> Gabriel Wicke <wicke at wikidev.net> 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 <greg at gregorycollins.net>


More information about the Haskell-Cafe mailing list