Bug#1056742: ghc: Please pass number of parallel jobs from DEB_BUILD_OPTIONS to hadrian

John Paul Adrian Glaubitz glaubitz at physik.fu-berlin.de
Sat Nov 25 19:06:17 GMT 2023


Source: ghc
Version: 9.4.7-1
Severity: normal
Tags: patch

Hi!

When src:ghc was switched from GNU Make to Hadrian, the build system lost
the ability to pass the parallel jobs provided in DEB_BUILD_OPTIONS to the
build process.

Luckily, Hadrian knows how to deal with parallel jobs using the -j option,
so we can just extract the number of parallel jobs from DEB_BUILD_OPTIONS
which is what the attached patch does:

--- ghc-9.4.7/debian/rules.orig 2023-10-18 21:49:38.000000000 +0200
+++ ghc-9.4.7/debian/rules      2023-11-25 19:59:40.401680294 +0100
@@ -95,6 +95,10 @@
        EXTRA_HADRIAN_FLAGS += "*.*.rts.*.opts += -O0"
 endif
 
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+    NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+endif
+
 # Use system libffi
 EXTRA_CONFIGURE_FLAGS += --with-system-libffi
 
@@ -152,7 +156,7 @@
        $(error cross-compilation is not supported)
 endif
        hadrian/hadrian \
-               -V -j \
+               -V -j$(NUMJOBS) \
                --docs=no-haddocks --docs=no-sphinx-html --docs=no-sphinx-pdfs \
                binary-dist-dir \
                $(EXTRA_HADRIAN_FLAGS)
@@ -175,7 +179,7 @@
        $(error override_dh_auto_build-indep is not supported when cross compiling)
 endif
        hadrian/hadrian \
-               -V -j \
+               -V -j$(NUMJOBS) \
                --docs=no-sphinx-pdfs \
                binary-dist-dir \
                $(EXTRA_HADRIAN_FLAGS)

I adapted the above snippet from the debian/rules file for src:cmake [1] in case
you want to credit the original authors.

Thanks,
Adrian

> [1] https://salsa.debian.org/cmake-team/cmake/-/blob/master/debian/rules#L54

--
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
-------------- next part --------------
--- ghc-9.4.7/debian/rules.orig	2023-10-18 21:49:38.000000000 +0200
+++ ghc-9.4.7/debian/rules	2023-11-25 19:59:40.401680294 +0100
@@ -95,6 +95,10 @@
 	EXTRA_HADRIAN_FLAGS += "*.*.rts.*.opts += -O0"
 endif
 
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+    NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+endif
+
 # Use system libffi
 EXTRA_CONFIGURE_FLAGS += --with-system-libffi
 
@@ -152,7 +156,7 @@
 	$(error cross-compilation is not supported)
 endif
 	hadrian/hadrian \
-		-V -j \
+		-V -j$(NUMJOBS) \
 		--docs=no-haddocks --docs=no-sphinx-html --docs=no-sphinx-pdfs \
 		binary-dist-dir \
 		$(EXTRA_HADRIAN_FLAGS)
@@ -175,7 +179,7 @@
 	$(error override_dh_auto_build-indep is not supported when cross compiling)
 endif
 	hadrian/hadrian \
-		-V -j \
+		-V -j$(NUMJOBS) \
 		--docs=no-sphinx-pdfs \
 		binary-dist-dir \
 		$(EXTRA_HADRIAN_FLAGS)


More information about the Pkg-haskell-maintainers mailing list