<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/82c2fc8d6163aedfd6c7e71b89e815fb343ab159">https://github.com/macports/macports-ports/commit/82c2fc8d6163aedfd6c7e71b89e815fb343ab159</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 82c2fc8d6163aedfd6c7e71b89e815fb343ab159
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Tue Mar 23 17:20:58 2021 +0000
<span style='display:block; white-space:pre;color:#404040;'> bazel PG: Update options to control limits on resource utilisation
</span>---
_resources/port1.0/group/bazel-1.0.tcl | 50 +++++++++++++++++++++-------------
1 file changed, 31 insertions(+), 19 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/bazel-1.0.tcl b/_resources/port1.0/group/bazel-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 3dc94f902e2..02fa0a1db41 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/bazel-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/bazel-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -26,13 +26,16 @@ options bazel.version
</span> default bazel.version "latest"
options bazel.max_idle_secs
<span style='display:block; white-space:pre;background:#ffe0e0;'>-default bazel.max_idle_secs 60
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default bazel.max_idle_secs 30
</span>
options bazel.max_cpu_fraction
default bazel.max_cpu_fraction 0.75
options bazel.max_ram_fraction
<span style='display:block; white-space:pre;background:#ffe0e0;'>-default bazel.max_ram_fraction 0.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default bazel.max_ram_fraction 0.75
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options bazel.limit_build_jobs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default bazel.limit_build_jobs yes
</span>
options bazel.extra_build_opts
default bazel.extra_build_opts ""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -112,17 +115,18 @@ configure.cmd ./configure
</span> pre-configure {
# enforce correct build settings
# note final / is because ${worksrcpath} is a sym-link
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach f [ exec find ${worksrcpath}/ -name "configure" -or -name "configure.py" -or -name "compile.sh" -or -name "*.tpl" -or -name "*.bzl" -or -name "CROSSTOOL" -or -name "configure.py" -or -name "MOCK_CROSSTOOL" ] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach f [ exec find ${worksrcpath}/ -name ".bazelrc" -or -name "configure" -or -name "configure.py" -or -name "compile.sh" -or -name "*.tpl" -or -name "*.bzl" -or -name "CROSSTOOL" -or -name "configure.py" -or -name "MOCK_CROSSTOOL" ] {
</span> foreach cmd {ar nm strip libtool ld objdump} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace -q "s|/usr/bin/${cmd}|${prefix}/bin/${cmd}|g" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -q "s|/usr/bin/${cmd}|${prefix}/bin/${cmd}|g" ${f}
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace -q "s|/usr/bin/clang|\"${configure.cc}\"|g" ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace -q "s|\"clang\"|\"${configure.cc}\"|g" ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace -q "s| clang | ${configure.cc} |g" ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace -q "s|/usr/local/include|${prefix}/include|g" ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace -q "s|std=c++0x|std=c++11|g" ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace -q "s|std=c++1y|std=c++14|g" ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace -q "s|std=c++1z|std=c++17|g" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -q "s|/usr/bin/clang|\"${configure.cc}\"|g" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -q "s|\"clang\"|\"${configure.cc}\"|g" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -q "s| clang | ${configure.cc} |g" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -q "s|/usr/local/include|${prefix}/include|g" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -q "s|std=c++0x|std=c++11|g" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -q "s|std=c++1y|std=c++14|g" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -q "s|std=c++1z|std=c++17|g" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ reinplace -q "s|define=PREFIX=/usr|define=PREFIX=${prefix}|g" ${f}
</span> }
# If not native build, make sure not used...
if {![variant_isset native]} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -147,12 +151,6 @@ pre-build {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# Limit the number of parallel jobs to the number of physical, not logical, cpus.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# First current setting to ensure we would be reducing the current setting.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set physicalcpus [sysctl hw.physicalcpu]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if { ${build.jobs} > ${physicalcpus} } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.jobs ${physicalcpus}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span> # Bazel handles parallel builds its own way..
use_parallel_build no
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -174,9 +172,23 @@ proc bazel::get_cmd {} {
</span> proc bazel::get_opts {} {
global build.jobs configure.cc configure.cflags configure.cxxflags configure.ldflags
# Bazel build options
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set bazel_build_opts "-s -c opt --verbose_failures --config=opt"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set bazel_build_opts "-s -c opt --verbose_failures --config=opt --nouse_action_cache"
</span> # Limit bazel resource utilisation
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set bazel_build_opts "${bazel_build_opts} --nouse_action_cache --jobs ${build.jobs} --local_ram_resources=HOST_RAM*[option bazel.max_ram_fraction] --local_cpu_resources=HOST_CPUS*[option bazel.max_cpu_fraction]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { [option bazel.limit_build_jobs] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Limit the number of parallel jobs to the number of physical, not logical, cpus.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # First current setting to ensure we would be reducing the current setting.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set physicalcpus [sysctl hw.physicalcpu]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${build.jobs} > ${physicalcpus} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.jobs ${physicalcpus}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set bazel_build_opts "${bazel_build_opts} --jobs ${build.jobs}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { [option bazel.max_ram_fraction] > 0 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set bazel_build_opts "${bazel_build_opts} --local_ram_resources=HOST_RAM*[option bazel.max_ram_fraction]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { [option bazel.max_cpu_fraction] > 0 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set bazel_build_opts "${bazel_build_opts} --local_cpu_resources=HOST_CPUS*[option bazel.max_cpu_fraction]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> # Extra user defined build options
set bazel_build_opts "${bazel_build_opts} [option bazel.extra_build_opts]"
# hack to try and transfer MP c, c++ and ld options to bazel...
</pre><pre style='margin:0'>
</pre>