aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pkg/bisect/bisect.go2
-rw-r--r--pkg/build/build.go1
-rw-r--r--pkg/build/linux.go13
-rw-r--r--pkg/instance/instance.go2
-rw-r--r--syz-ci/jobs.go1
-rw-r--r--syz-ci/manager.go1
-rw-r--r--syz-ci/syz-ci.go1
-rw-r--r--tools/syz-bisect/bisect.go2
-rw-r--r--tools/syz-build/build.go4
9 files changed, 21 insertions, 6 deletions
diff --git a/pkg/bisect/bisect.go b/pkg/bisect/bisect.go
index e00c54c68..9515126dc 100644
--- a/pkg/bisect/bisect.go
+++ b/pkg/bisect/bisect.go
@@ -27,6 +27,7 @@ type Config struct {
Fix bool
DefaultCompiler string
CompilerType string
+ Make string
Linker string
BinDir string
Ccache string
@@ -612,6 +613,7 @@ func (env *env) build() (*vcs.Commit, string, error) {
kern := &env.cfg.Kernel
_, imageDetails, err := env.inst.BuildKernel(&instance.BuildKernelConfig{
CompilerBin: bisectEnv.Compiler,
+ MakeBin: env.cfg.Make,
LinkerBin: env.cfg.Linker,
CcacheBin: env.cfg.Ccache,
UserspaceDir: kern.Userspace,
diff --git a/pkg/build/build.go b/pkg/build/build.go
index ec47822a6..764cc1ed5 100644
--- a/pkg/build/build.go
+++ b/pkg/build/build.go
@@ -31,6 +31,7 @@ type Params struct {
KernelDir string
OutputDir string
Compiler string
+ Make string
Linker string
Ccache string
UserspaceDir string
diff --git a/pkg/build/linux.go b/pkg/build/linux.go
index db629411d..5728005da 100644
--- a/pkg/build/linux.go
+++ b/pkg/build/linux.go
@@ -142,7 +142,7 @@ func (linux) createImage(params Params, kernelPath string) error {
}
func (linux) clean(kernelDir, targetArch string) error {
- return runMakeImpl(targetArch, "", "", "", kernelDir, runtime.NumCPU(), []string{"distclean"})
+ return runMakeImpl(targetArch, "", "", "", "", kernelDir, runtime.NumCPU(), []string{"distclean"})
}
func (linux) writeFile(file string, data []byte) error {
@@ -152,11 +152,14 @@ func (linux) writeFile(file string, data []byte) error {
return osutil.SandboxChown(file)
}
-func runMakeImpl(arch, compiler, linker, ccache, kernelDir string, jobs int, extraArgs []string) error {
+func runMakeImpl(arch, compiler, linker, ccache, makeBin, kernelDir string, jobs int, extraArgs []string) error {
target := targets.Get(targets.Linux, arch)
args := LinuxMakeArgs(target, compiler, linker, ccache, "", jobs)
args = append(args, extraArgs...)
- cmd := osutil.Command("make", args...)
+ if makeBin == "" {
+ makeBin = "make"
+ }
+ cmd := osutil.Command(makeBin, args...)
if err := osutil.Sandbox(cmd, true, true); err != nil {
return err
}
@@ -179,8 +182,8 @@ func runMakeImpl(arch, compiler, linker, ccache, kernelDir string, jobs int, ext
}
func runMake(params Params, extraArgs ...string) error {
- return runMakeImpl(params.TargetArch, params.Compiler, params.Linker, params.Ccache,
- params.KernelDir, params.BuildCPUs, extraArgs)
+ return runMakeImpl(params.TargetArch, params.Compiler, params.Linker,
+ params.Ccache, params.Make, params.KernelDir, params.BuildCPUs, extraArgs)
}
func LinuxMakeArgs(target *targets.Target, compiler, linker, ccache, buildDir string, jobs int) []string {
diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go
index e4415a86e..e1e222a3f 100644
--- a/pkg/instance/instance.go
+++ b/pkg/instance/instance.go
@@ -42,6 +42,7 @@ type env struct {
}
type BuildKernelConfig struct {
+ MakeBin string
CompilerBin string
LinkerBin string
CcacheBin string
@@ -147,6 +148,7 @@ func (env *env) BuildKernel(buildCfg *BuildKernelConfig) (
VMType: env.cfg.Type,
KernelDir: env.cfg.KernelSrc,
OutputDir: imageDir,
+ Make: buildCfg.MakeBin,
Compiler: buildCfg.CompilerBin,
Linker: buildCfg.LinkerBin,
Ccache: buildCfg.CcacheBin,
diff --git a/syz-ci/jobs.go b/syz-ci/jobs.go
index 566ed7a67..91ef57f6b 100644
--- a/syz-ci/jobs.go
+++ b/syz-ci/jobs.go
@@ -645,6 +645,7 @@ func (jp *JobProcessor) testPatch(job *Job, mgrcfg *mgrconfig.Config) error {
log.Logf(0, "job: building kernel...")
kernelConfig, details, err := env.BuildKernel(&instance.BuildKernelConfig{
CompilerBin: mgr.mgrcfg.Compiler,
+ MakeBin: mgr.mgrcfg.Make,
LinkerBin: mgr.mgrcfg.Linker,
CcacheBin: mgr.mgrcfg.Ccache,
UserspaceDir: mgr.mgrcfg.Userspace,
diff --git a/syz-ci/manager.go b/syz-ci/manager.go
index fd19a8780..872825c34 100644
--- a/syz-ci/manager.go
+++ b/syz-ci/manager.go
@@ -370,6 +370,7 @@ func (mgr *Manager) build(kernelCommit *vcs.Commit) error {
VMType: mgr.managercfg.Type,
KernelDir: mgr.kernelBuildDir,
OutputDir: tmpDir,
+ Make: mgr.mgrcfg.Make,
Compiler: mgr.mgrcfg.Compiler,
Linker: mgr.mgrcfg.Linker,
Ccache: mgr.mgrcfg.Ccache,
diff --git a/syz-ci/syz-ci.go b/syz-ci/syz-ci.go
index a4acc8876..b8b358652 100644
--- a/syz-ci/syz-ci.go
+++ b/syz-ci/syz-ci.go
@@ -191,6 +191,7 @@ type ManagerConfig struct {
// explicit plumbing for every os/compiler combination.
CompilerType string `json:"compiler_type"` // Defaults to "gcc"
Compiler string `json:"compiler"`
+ Make string `json:"make"`
Linker string `json:"linker"`
Ccache string `json:"ccache"`
Userspace string `json:"userspace"`
diff --git a/tools/syz-bisect/bisect.go b/tools/syz-bisect/bisect.go
index b74cf6fd8..6b0ab07e3 100644
--- a/tools/syz-bisect/bisect.go
+++ b/tools/syz-bisect/bisect.go
@@ -47,6 +47,7 @@ type Config struct {
// Currently either 'gcc' or 'clang'. Note that pkg/bisect requires
// explicit plumbing for every os/compiler combination.
CompilerType string `json:"compiler_type"`
+ Make string `json:"make"`
// BinDir must point to a dir that contains compilers required to build
// older versions of the kernel. For linux, it needs to include several
// compiler versions.
@@ -103,6 +104,7 @@ func main() {
Fix: *flagFix,
DefaultCompiler: mycfg.Compiler,
CompilerType: mycfg.CompilerType,
+ Make: mycfg.Make,
Linker: mycfg.Linker,
BinDir: mycfg.BinDir,
Ccache: mycfg.Ccache,
diff --git a/tools/syz-build/build.go b/tools/syz-build/build.go
index c50edaabc..49398bc68 100644
--- a/tools/syz-build/build.go
+++ b/tools/syz-build/build.go
@@ -20,7 +20,8 @@ var (
flagArch = flag.String("arch", runtime.GOARCH, "arch to build")
flagVM = flag.String("vm", "gce", "VM type to build")
flagKernelSrc = flag.String("kernel_src", "", "path to kernel checkout")
- flagCompiler = flag.String("compiler", "", "non-defult compiler")
+ flagMake = flag.String("make", "", "non-default make")
+ flagCompiler = flag.String("compiler", "", "non-default compiler")
flagLinker = flag.String("linker", "", "non-default linker")
flagKernelConfig = flag.String("config", "", "kernel config file")
flagKernelSysctl = flag.String("sysctl", "", "kernel sysctl file")
@@ -53,6 +54,7 @@ func main() {
VMType: *flagVM,
KernelDir: *flagKernelSrc,
OutputDir: wd,
+ Make: *flagMake,
Compiler: *flagCompiler,
Linker: *flagLinker,
Ccache: "",