<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/44bfb68acf8e29d2d828199b6fd55cf083640999">https://github.com/macports/macports-ports/commit/44bfb68acf8e29d2d828199b6fd55cf083640999</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 44bfb68acf8 ghc: Disable parallel builds due to excessive memory usage
</span>44bfb68acf8 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 44bfb68acf8e29d2d828199b6fd55cf083640999
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Wed Apr 28 13:24:40 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    ghc: Disable parallel builds due to excessive memory usage
</span>---
 lang/ghc/Portfile | 40 ++++++++++++++++++++++++++++++----------
 1 file changed, 30 insertions(+), 10 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/ghc/Portfile b/lang/ghc/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index f1b006e0afa..8853596b6b8 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/ghc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/ghc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -146,6 +146,28 @@ proc fix_workpath_rpath { binname workpath_destdir_pattern libdir_glob rpath_re
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# `make install` in bootstrap build cannot use a parallel build.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Also during the main build the 'ghc-stage1' processes can use huge amounts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# of memory, leading to build failures (particularly on the buildbots or VMs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# with limited resources). So disable parallel builds there as well, at the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# expense of a longer build time (mitigated by fact most users witll then get
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# the binary installation).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_parallel_build  no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Get the correct number of build jobs. Note the number from portbuild::build_getjobsarg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# is currently incorrect if parallel builds are disabled, due to a bug in base
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/macports/macports-base/pull/236#issuecomment-826309036
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# This can be removed once the above fix is in a released version of base for a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# reasonable amount of time.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc get_njobs_arg { } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global use_parallel_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![tbool use_parallel_build]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return -j1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return [portbuild::build_getjobsarg]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # Note: ghc has DESTDIR; however, specifying --prefix=${prefix} installs
 # binaries into ${prefix}, not DESTDIR.  Work around this by setting
 # --prefix=${destroot}${prefix} and not setting DESTDIR
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -176,7 +198,9 @@ if { [variant_isset "prebuilt"] } {
</span>                     port:autoconf \
                     port:automake \
                     port:bash \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:bzip2 \
</span>                     port:cctools \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:gzip \
</span>                     port:happy \
                     port:HsColour \
                     port:python${python3_version} \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -184,7 +208,8 @@ if { [variant_isset "prebuilt"] } {
</span>                     port:texlive \
                     port:texlive-fonts-extra \
                     port:texlive-fonts-recommended \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:texlive-latex-extra
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:texlive-latex-extra \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:xz
</span> 
     # Add these MacPorts dependencies after this issue is fixed:
     # https://gitlab.haskell.org/ghc/ghc/-/issues/18752
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -235,8 +260,6 @@ if { [variant_isset "prebuilt"] } {
</span>     post-build {
         # bootstrap build/destroot from ${distname}-src${extract.suffix}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        use_parallel_build yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>         # extract
         extract.dir     ${srcpath}
         extract.only    ${distname}-src${extract.suffix}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -290,17 +313,14 @@ if { [variant_isset "prebuilt"] } {
</span> 
         # build and destroot the second stage: `make && make install`
         system -W ${srcpath}/${distname} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-           "export ${build.env};\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           ${build.cmd} [portbuild::build_getjobsarg]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "export ${build.env};\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${build.cmd} [get_njobs_arg]"
</span>         system -W ${srcpath}/${distname} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-           "export ${build.env};\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           ${build.cmd} ${destroot.pre_args}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            "export ${build.env};\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ${build.cmd} ${destroot.pre_args}"
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Note: `make install` in bootstrap build cannot use a parallel build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-use_parallel_build  no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> build.target        install
 
 destroot {
</pre><pre style='margin:0'>

</pre>