
#10244: "memory barriers unimplemented on this architecture" on ARM pre-ARMv7 -------------------------------------+------------------------------------- Reporter: rwbarton | Owner: simonmar Type: bug | Status: new Priority: normal | Milestone: 7.10.2 Component: Runtime System | Version: 7.10.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: arm Type of failure: Building GHC | Test Case: failed | Blocking: Blocked By: | Differential Revisions: Related Tickets: | -------------------------------------+------------------------------------- Changes (by slyfox): * cc: slyfox (added) Comment: Do you have a particular build error? I wonder what else is visible there. From what I see in the '''includes/stg/SMP.h''' it's just omission in implementation. There is properly-looking '''write_barrier''' {{{ EXTERN_INLINE void write_barrier(void) { ... #elif arm_HOST_ARCH && defined(arm_HOST_ARCH_PRE_ARMv7) __asm__ __volatile__ ("" : : : "memory"); #elif (arm_HOST_ARCH && !defined(arm_HOST_ARCH_PRE_ARMv7)) || aarch64_HOST_ARCH __asm__ __volatile__ ("dmb st" : : : "memory"); ... }}} but not load_load: {{{ EXTERN_INLINE void load_load_barrier(void) { ... #elif arm_HOST_ARCH && !defined(arm_HOST_ARCH_PRE_ARMv7) __asm__ __volatile__ ("dmb" : : : "memory"); ... }}} I think stubbing out with {{{ __asm__ __volatile__ ("" : : : "memory"); }}} is best we can do there. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10244#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler