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