Package: ghc Version: 9.6.6-3 Tags: ftbfs Usertags: hppa
The ghc source package provides this header file for other programs: rts-1.0.2/include/stg/SMP.h So, when building the haskell-ghc-lib-parser package the compiler generates this error: error: In file included from /usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.6.6/rts-1.0.2/include/Stg.h:415, from /usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.6.6/rts-1.0.2/include/Rts.h:38, from FFIClosures_ProfilingDisabled.hsc:9: /usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.6.6/rts-1.0.2/include/stg/SMP.h: In function ‘write_barrier’: /usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.6.6/rts-1.0.2/include/stg/SMP.h:496:2: error: #error memory barriers unimplemented on this architecture 496 | #error memory barriers unimplemented on this architecture | ^~~~~ /usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.6.6/rts-1.0.2/include/stg/SMP.h: In function ‘store_load_barrier’: /usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.6.6/rts-1.0.2/include/stg/SMP.h:522:2: error: #error memory barriers unimplemented on this architecture 522 | #error memory barriers unimplemented on this architecture | ^~~~~ /usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.6.6/rts-1.0.2/include/stg/SMP.h: In function ‘load_load_barrier’: /usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.6.6/rts-1.0.2/include/stg/SMP.h:548:2: error: #error memory barriers unimplemented on this architecture 548 | #error memory barriers unimplemented on this architecture Full log is here: https://buildd.debian.org/status/fetch.php?pkg=haskell-ghc-lib-parser&arch=hppa&ver=9.6.6.20240701-1&stamp=1726567569&raw=0 The attached patch seems to work. Alternatively, __asm__ __volatile__ ("sync" : : : "memory"); should work instead of __sync_synchronize() as well. Can you please verify, apply it and bring this or a similiar patch upstream? Thanks! Helge
diff -up ./SMP.h.org ./SMP.h --- ./SMP.h.org 2024-12-19 12:36:45.182588553 +0000 +++ ./SMP.h 2024-12-19 12:54:30.393622294 +0000 @@ -492,6 +492,8 @@ write_barrier(void) { __asm__ __volatile__ ("fence w,w" : : : "memory"); #elif defined(loongarch64_HOST_ARCH) __asm__ __volatile__ ("dbar 0" : : : "memory"); +#elif defined(hppa_HOST_ARCH) + __sync_synchronize(); #else #error memory barriers unimplemented on this architecture #endif @@ -518,6 +520,8 @@ store_load_barrier(void) { __asm__ __volatile__ ("fence w,r" : : : "memory"); #elif defined(loongarch64_HOST_ARCH) __asm__ __volatile__ ("dbar 0" : : : "memory"); +#elif defined(hppa_HOST_ARCH) + __sync_synchronize(); #else #error memory barriers unimplemented on this architecture #endif @@ -544,6 +548,8 @@ load_load_barrier(void) { __asm__ __volatile__ ("fence r,r" : : : "memory"); #elif defined(loongarch64_HOST_ARCH) __asm__ __volatile__ ("dbar 0" : : : "memory"); +#elif defined(hppa_HOST_ARCH) + __sync_synchronize(); #else #error memory barriers unimplemented on this architecture #endif