Simon M, do I need to add atomic.c in any other place than ghc-prim.cabal? I for example found this file includes/stg/Prim.h that list some other primops.
On Wed, Jul 16, 2014 at 6:36 PM, Johan Tibell <johan.tib...@gmail.com> wrote: > We are on x86(-64), but not on other archs. Simon, which arch are you on? > > > On Wed, Jul 16, 2014 at 5:58 PM, Carter Schonwald < > carter.schonw...@gmail.com> wrote: > >> Huh. We're not generating the atomics assembly directly ourselves? >> >> >> On Wednesday, July 16, 2014, Johan Tibell <johan.tib...@gmail.com> wrote: >> >>> I added some primops about a month ago >>> (4ee4ab01c1d97845aecb7707ad2f9a80933e7a49) that call __sync_fetch_and_add, >>> a gcc/llvm builtin. I'm a bit surprised to see this error. The GCC manual >>> [1] says: >>> >>> > " Not all operations are supported by all target processors. If a >>> particular operation cannot be implemented on the target processor, a >>> warning will be generated and a call an external function will be >>> generated. The external function will carry the same name as the builtin, >>> with an additional suffix `_n' where n is the size of the data type." >>> >>> I'm a bit surprised by this error for two reasons: >>> >>> * A call to that symbol should only be generated if the CPU doesn't >>> support the atomic instructions. What CPU model does Windows report that >>> you have? >>> >>> * gcc should define such a symbol. For me the following test program >>> compiles: >>> >>> #include <stdint.h> >>> >>> uint8_t test(uint8_t* ptr, uint8_t val) { >>> return __sync_fetch_and_add_1(ptr, val); >>> } >>> >>> int main(void) { >>> uint8_t n; >>> return test(&n, 1); >>> } >>> >>> Does that compile for you? Which version of GCC do we end up using on >>> Windows? >>> >>> The reported symbol (___sync_fetch_and_add_1) has three leading >>> underscores, that looks weird. Can you compile just >>> libraries/ghc-prim/cbits/atomic.c and see if it's indeed GCC that generates >>> a reference to that symbol? >>> >>> 1. http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins.html >>> >>> >>> On Wed, Jul 16, 2014 at 12:29 AM, Simon Peyton Jones < >>> simo...@microsoft.com> wrote: >>> >>>> Aargh! The Windows build has broken – again. I can’t build GHC on >>>> my laptop any more. >>>> >>>> A clean ‘sh validate’ finishes as below. What on earth is >>>> `___sync_fetch_and_add_1'? >>>> >>>> Can anyone help? Thanks! >>>> >>>> Simon >>>> >>>> "inplace/bin/ghc-stage2.exe" -hisuf hi -osuf o -hcsuf hc -static >>>> -H32m -O -Werror -Wall -H64m -O0 -package-name vector-0.10.9.1 >>>> -hide-all-packages -i -ilibraries/vector/. >>>> -ilibraries/vector/dist-install/build >>>> -ilibraries/vector/dist-install/build/autogen >>>> -Ilibraries/vector/dist-install/build >>>> -Ilibraries/vector/dist-install/build/autogen -Ilibraries/vector/include >>>> -Ilibraries/vector/internal -optP-DVECTOR_BOUNDS_CHECKS -optP-include >>>> -optPlibraries/vector/dist-install/build/autogen/cabal_macros.h -package >>>> base-4.7.1.0 -package deepseq-1.3.0.2 -package ghc-prim-0.3.1.0 -package >>>> primitive-0.5.2.1 -O2 -XHaskell98 -XCPP -XDeriveDataTypeable -O2 -O >>>> -dcore-lint -fno-warn-deprecated-flags -no-user-package-db -rtsopts >>>> -Wwarn -odir libraries/vector/dist-install/build -hidir >>>> libraries/vector/dist-install/build -stubdir >>>> libraries/vector/dist-install/build -c >>>> libraries/vector/./Data/Vector/Fusion/Stream/Monadic.hs -o >>>> libraries/vector/dist-install/build/Data/Vector/Fusion/Stream/Monadic.o >>>> >>>> Loading package ghc-prim ... linking ... ghc-stage2.exe: unable to load >>>> package `ghc-prim' >>>> >>>> ghc-stage2.exe: >>>> C:\code\HEAD\libraries\ghc-prim\dist-install\build\HSghc-prim-0.3.1.0.o: >>>> unknown symbol `___sync_fetch_and_add_1' >>>> >>>> libraries/vector/ghc.mk:5: recipe for target >>>> 'libraries/vector/dist-install/build/Data/Vector/Fusion/Stream/Monadic.o' >>>> failed >>>> >>>> make[1]: *** >>>> [libraries/vector/dist-install/build/Data/Vector/Fusion/Stream/Monadic.o] >>>> Error 1 >>>> >>>> >>>> >>>> I >>>> >>>> _______________________________________________ >>>> ghc-devs mailing list >>>> ghc-devs@haskell.org >>>> http://www.haskell.org/mailman/listinfo/ghc-devs >>>> >>>> >>> >
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs