Bug#1054993: haskell-ghc-lib-parser: FTBFS on hppa - needs memory barriers and rules update

John David Anglin dave at parisc-linux.org
Sun Oct 29 03:16:21 GMT 2023


Source: haskell-ghc-lib-parser
Version: 9.4.7.20230826-1
Severity: normal
Tags: ftbfs patch

Dear Maintainer,

Build fails here:

Preprocessing library for ghc-lib-parser-9.4.7.20230826..
compiling dist-ghc/build/GHC/Exts/Heap/FFIClosures_ProfilingDisabled_hsc_make.c failed (exit code 1)
rsp file was: "dist-ghc/build/GHC/Exts/Heap/hsc2hscall3782483-0.rsp"
command was: /usr/bin/hppa-linux-gnu-gcc -c dist-ghc/build/GHC/Exts/Heap/FFIClosures_ProfilingDisabled_hsc_make.c -o dist-ghc/build/GHC/Exts/Heap/FFIClosures_ProfilingDisabled_hsc_make.o -D_HPUX_SOURCE -D_HPUX_SOURCE -fuse-ld=bfd -D_HPUX_SOURCE -UTHREADED_RTS -D__GLASGOW_HASKELL__=904 -Dlinux_BUILD_OS=1 -Dhppa_BUILD_ARCH=1 -Dlinux_HOST_OS=1 -Dhppa_HOST_ARCH=1 -Irts/include -Ighc-lib/stage0/lib -Ighc-lib/stage0/compiler/build -Icompiler -Idist-ghc/build/rts/include -Idist-ghc/build/ghc-lib/stage0/lib -Idist-ghc/build/ghc-lib/stage0/compiler/build -Idist-ghc/build/compiler -DTHREADED_RTS -DTHREADED_RTS -Idist-ghc/build/autogen -Idist-ghc/build/global-autogen -include dist-ghc/build/autogen/cabal_macros.h -I/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/process-1.6.17.0/include -I/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/unix-2.7.3/include -I/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/time-1.12.2/include -I/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/bytestring-0.11.5.2/include -I/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/base-4.17.2.0/include -I/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/ghc-bignum-1.3/include -I/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/rts-1.0.2/include -I/usr/include/
error: In file included from /usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/rts-1.0.2/include/Stg.h:348,
                 from /usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/rts-1.0.2/include/Rts.h:38,
                 from FFIClosures_ProfilingDisabled.hsc:9:
/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/rts-1.0.2/include/stg/SMP.h: In function ‘write_barrier’:
/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/rts-1.0.2/include/stg/SMP.h:416:2: error: #error memory barriers unimplemented on this architecture
  416 | #error memory barriers unimplemented on this architecture
      |  ^~~~~
/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/rts-1.0.2/include/stg/SMP.h: In function ‘store_load_barrier’:
/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/rts-1.0.2/include/stg/SMP.h:440:2: error: #error memory barriers unimplemented on this architecture
  440 | #error memory barriers unimplemented on this architecture
      |  ^~~~~
/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/rts-1.0.2/include/stg/SMP.h: In function ‘load_load_barrier’:
/usr/lib/ghc/lib/../lib/hppa-linux-ghc-9.4.7/rts-1.0.2/include/stg/SMP.h:464:2: error: #error memory barriers unimplemented on this architecture
  464 | #error memory barriers unimplemented on this architecture
      |  ^~~~~

-e: error: debian/hlibrary.setup build --builddir=dist-ghc returned exit code 1
 at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 880.
	Debian::Debhelper::Dh_Lib::error("debian/hlibrary.setup build --builddir=dist-ghc returned exit"...) called at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 610
	Debian::Debhelper::Dh_Lib::error_exitcode("debian/hlibrary.setup build --builddir=dist-ghc") called at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 473
	Debian::Debhelper::Dh_Lib::doit("debian/hlibrary.setup", "build", "--builddir=dist-ghc") called at /usr/share/perl5/Debian/Debhelper/Buildsystem/Haskell/Recipes.pm line 656
	Debian::Debhelper::Buildsystem::Haskell::Recipes::build_recipe() called at -e line 1
make: *** [/usr/share/cdbs/1/class/hlibrary.mk:158: build-ghc-stamp] Error 25
dpkg-buildpackage: error: fakeroot debian/rules binary-arch subprocess returned exit status 2

Note "-D_HPUX_SOURCE" is not relevant in hppa-linux build.

Patch for SMP.h in ghc is attached to fix this issue.

Build will also run out of memory unless rules is updated to reduce gcc
memory usage. Patch is attached to add hppa to build rule for this.

Please update ghc SMP.h and rules files to fix build.

Thanks,
Dave Anglin

-- System Information:
Debian Release: trixie/sid
  APT prefers buildd-unstable
  APT policy: (500, 'buildd-unstable'), (500, 'unstable')
Architecture: hppa (parisc64)

Kernel: Linux 6.1.60+ (SMP w/4 CPU threads)
Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
-------------- next part --------------
--- ./rts/include/stg/SMP.h.save	2023-10-28 00:06:14.205202427 +0000
+++ ./rts/include/stg/SMP.h	2023-10-28 00:08:51.706312556 +0000
@@ -412,6 +412,8 @@
     __asm__ __volatile__ ("dmb  st" : : : "memory");
 #elif defined(riscv64_HOST_ARCH)
     __asm__ __volatile__ ("fence w,w" : : : "memory");
+#elif defined(hppa_HOST_ARCH)
+    __asm__ __volatile__ ("sync" : : : "memory");
 #else
 #error memory barriers unimplemented on this architecture
 #endif
@@ -436,6 +438,8 @@
     __asm__ __volatile__ ("dmb sy" : : : "memory");
 #elif defined(riscv64_HOST_ARCH)
     __asm__ __volatile__ ("fence w,r" : : : "memory");
+#elif defined(hppa_HOST_ARCH)
+    __asm__ __volatile__ ("sync" : : : "memory");
 #else
 #error memory barriers unimplemented on this architecture
 #endif
@@ -460,6 +464,8 @@
     __asm__ __volatile__ ("dmb ld" : : : "memory");
 #elif defined(riscv64_HOST_ARCH)
     __asm__ __volatile__ ("fence r,r" : : : "memory");
+#elif defined(hppa_HOST_ARCH)
+    __asm__ __volatile__ ("sync" : : : "memory");
 #else
 #error memory barriers unimplemented on this architecture
 #endif
-------------- next part --------------
--- rules.save	2023-10-28 13:57:03.017973521 +0000
+++ rules	2023-10-28 13:55:22.197249905 +0000
@@ -5,7 +5,7 @@
 DEB_DEFAULT_COMPILER = ghc
 
 DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
-ifneq (,$(filter $(DEB_BUILD_ARCH),arm64 armhf armel i386 s390x x32))
+ifneq (,$(filter $(DEB_BUILD_ARCH),arm64 armhf armel hppa i386 s390x x32))
        DEB_SETUP_GHC_CONFIGURE_ARGS += --ghc-options="-O0 -optc--param -optcggc-min-expand=10"
 endif
 


More information about the Pkg-haskell-maintainers mailing list