diff --git a/internal/rosa/builtins.go b/internal/rosa/builtins.go index 55ac0cf1..f0527af8 100644 --- a/internal/rosa/builtins.go +++ b/internal/rosa/builtins.go @@ -18,6 +18,11 @@ const ( jobsLE = `"$(expr ` + jobsE + ` '*' 2)"` // jobsLFlagE is expression for flag with double of preferred job count. jobsLFlagE = `"-j$(expr ` + jobsE + ` '*' 2)"` + + // loadE is expression for preferred loadavg target set by [pkg]. + loadE = `"$` + pkg.EnvLoad + `"` + // loadFlagE is expression for flag with preferred loadavg target. + loadFlagE = `"-l$` + pkg.EnvLoad + `"` ) // newTar wraps [pkg.NewHTTPGetTar] with a simpler function signature. diff --git a/internal/rosa/cmake.go b/internal/rosa/cmake.go index b058b5bf..6470758a 100644 --- a/internal/rosa/cmake.go +++ b/internal/rosa/cmake.go @@ -61,10 +61,10 @@ func (attr *CMakeHelper) script(t Toolchain, name string) string { } generate := "Ninja" - test := "ninja " + jobsFlagE + " test" + test := "ninja " + jobsFlagE + " " + loadFlagE + " test" if attr.Make { generate = "'Unix Makefiles'" - test = "make " + jobsFlagE + " test" + test = "make " + jobsFlagE + " " + loadFlagE + " test" } if attr.Test != "" { test = attr.Test @@ -97,7 +97,7 @@ cmake -G ` + generate + ` \ }), " \\\n\t") + ` \ -DCMAKE_INSTALL_PREFIX=/system \ '/usr/src/` + name + `/` + filepath.Join(attr.Append...) + `' -cmake --build . --parallel=` + jobsE + ` +cmake --build . --parallel=` + jobsE + ` -- ` + loadFlagE + ` DESTDIR=/work cmake --install . ` + script } diff --git a/internal/rosa/llvm.go b/internal/rosa/llvm.go index 8fd515d2..40167181 100644 --- a/internal/rosa/llvm.go +++ b/internal/rosa/llvm.go @@ -365,7 +365,7 @@ ln -s clang++ /work/system/bin/c++ // on 3-stage determinism to test later stages. SkipTest: t.stage.isStage0(), - Test: "ninja " + jobsFlagE + " check-all", + Test: "ninja " + jobsFlagE + " " + loadFlagE + " check-all", }, _python, _perl, diff --git a/internal/rosa/make.go b/internal/rosa/make.go index 257c51f1..d143a137 100644 --- a/internal/rosa/make.go +++ b/internal/rosa/make.go @@ -160,7 +160,8 @@ func (attr *MakeHelper) script(t Toolchain, name string) string { scriptMake := ` make \ - ` + jobsFlagE + ` + jobsFlagE + ` \ + ` + loadFlagE if len(attr.Make) > 0 { scriptMake += " \\\n\t" + strings.Join(attr.Make, " \\\n\t") } @@ -170,6 +171,7 @@ make \ (!attr.SkipCheckEarly || !t.stage.isStage0()) { scriptMake += attr.ScriptCheckEarly + `make \ ` + jobsFlagE + ` \ + ` + loadFlagE + ` \ ` if len(attr.Check) > 0 { scriptMake += strings.Join(attr.Check, " \\\n\t") diff --git a/internal/rosa/package/firmware.az b/internal/rosa/package/firmware.az index 7ee77930..6355c93b 100644 --- a/internal/rosa/package/firmware.az +++ b/internal/rosa/package/firmware.az @@ -34,7 +34,7 @@ package firmware { // requires pre-commit skipCheck = true; - install = "make " + jobsFlagE + " DESTDIR=/work/system dedup"; + install = "make " + jobsFlagE + " " + loadFlagE + " DESTDIR=/work/system dedup"; }; inputs = [ diff --git a/internal/rosa/package/git.az b/internal/rosa/package/git.az index f2da8ef5..870c9257 100644 --- a/internal/rosa/package/git.az +++ b/internal/rosa/package/git.az @@ -70,6 +70,7 @@ disable_test t5515-fetch-merge-logic install = `make \ ` + jobsFlagE + ` \ + ` + loadFlagE + ` \ DESTDIR=/work \ NO_INSTALL_HARDLINKS=1 \ install`; diff --git a/internal/rosa/package/kernel/package.az b/internal/rosa/package/kernel/package.az index babfedaf..698266ee 100644 --- a/internal/rosa/package/kernel/package.az +++ b/internal/rosa/package/kernel/package.az @@ -111,6 +111,7 @@ install -Dm0500 \ make \ ` + jobsFlagE + ` \ + ` + loadFlagE + ` \ -f /usr/src/kernel/Makefile \ O=/tmp/kbuild \ LLVM=1 \ diff --git a/internal/rosa/package/ninja.az b/internal/rosa/package/ninja.az index 2eb7694b..cb103656 100644 --- a/internal/rosa/package/ninja.az +++ b/internal/rosa/package/ninja.az @@ -23,7 +23,7 @@ python3 /usr/src/ninja/configure.py \ --bootstrap python3 /usr/src/ninja/configure.py \ --gtest-source-dir=/usr/src/extra/googletest -./ninja ` + jobsFlagE + ` all +./ninja ` + jobsFlagE + ` ` + loadFlagE + ` all `; check = "./ninja_test"; diff --git a/internal/rosa/perl.go b/internal/rosa/perl.go index 3a9f56ac..313f8dc8 100644 --- a/internal/rosa/perl.go +++ b/internal/rosa/perl.go @@ -32,11 +32,13 @@ func (attr *MakeMakerHelper) script(t Toolchain, _ string) string { script := `perl Makefile.PL \ PREFIX=/system make \ - ` + jobsFlagE + ` + jobsFlagE + ` \ + ` + loadFlagE if !attr.SkipCheck && t.opts&OptSkipCheck == 0 { script += ` make \ ` + jobsFlagE + ` \ + ` + loadFlagE + ` \ test ` } diff --git a/internal/rosa/state.go b/internal/rosa/state.go index 088963bf..2939057d 100644 --- a/internal/rosa/state.go +++ b/internal/rosa/state.go @@ -499,6 +499,9 @@ func (s *S) getFrame() azalea.Frame { k("jobsLE"): jobsLE, k("jobsLFlagE"): jobsLFlagE, + k("loadE"): loadE, + k("loadFlagE"): loadFlagE, + k("anityaFallback"): (*Versions).getStable, k("anityaLegacyCPAN"): func(v *Versions) string { for _, e := range v.Stable {