From ea1cd5ff3029315c1f89b98b820ceeebfba0e4df Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Wed, 21 Aug 2024 14:28:06 +0200 Subject: pkg/build: introduce the build jobs parameter This parameter defines the number of cores dedicated to the kernel build process. By default, it's equal to the number of available CPUs. --- pkg/build/freebsd.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'pkg/build/freebsd.go') diff --git a/pkg/build/freebsd.go b/pkg/build/freebsd.go index 2f4aa1313..2c6e0fcc9 100644 --- a/pkg/build/freebsd.go +++ b/pkg/build/freebsd.go @@ -45,12 +45,12 @@ options DIAGNOSTIC return ImageDetails{}, err } objPrefix := filepath.Join(params.KernelDir, "obj") - output, err := ctx.make(params.KernelDir, objPrefix, "kernel-toolchain") + output, err := ctx.make(params.KernelDir, objPrefix, params.BuildJobs, "kernel-toolchain") if err != nil { return ImageDetails{}, err } - if _, err := ctx.make(params.KernelDir, objPrefix, "buildkernel", "WITH_EXTRA_TCP_STACKS=", - fmt.Sprintf("KERNCONF=%v", confFile)); err != nil { + if _, err := ctx.make(params.KernelDir, objPrefix, params.BuildJobs, "buildkernel", + "WITH_EXTRA_TCP_STACKS=", fmt.Sprintf("KERNCONF=%v", confFile)); err != nil { // The kernel-toolchain make target has to be built separately // because FreeBSD's build doesn't correctly order the two // targets. Its output is useful for debugging though, so @@ -121,16 +121,16 @@ sudo mdconfig -d -u ${md#md} func (ctx freebsd) clean(kernelDir, targetArch string) error { objPrefix := filepath.Join(kernelDir, "obj") - _, err := ctx.make(kernelDir, objPrefix, "cleanworld") + _, err := ctx.make(kernelDir, objPrefix, runtime.NumCPU(), "cleanworld") return err } -func (ctx freebsd) make(kernelDir, objPrefix string, makeArgs ...string) ([]byte, error) { +func (ctx freebsd) make(kernelDir, objPrefix string, jobs int, makeArgs ...string) ([]byte, error) { args := append([]string{ fmt.Sprintf("MAKEOBJDIRPREFIX=%v", objPrefix), "make", "-C", kernelDir, - "-j", strconv.Itoa(runtime.NumCPU()), + "-j", strconv.Itoa(jobs), }, makeArgs...) output, err := osutil.RunCmd(3*time.Hour, kernelDir, "sh", "-c", strings.Join(args, " ")) return output, err -- cgit mrf-deployment