diff options
| -rw-r--r-- | pkg/bisect/bisect.go | 2 | ||||
| -rw-r--r-- | pkg/build/build.go | 1 | ||||
| -rw-r--r-- | pkg/build/linux.go | 13 | ||||
| -rw-r--r-- | pkg/instance/instance.go | 2 | ||||
| -rw-r--r-- | syz-ci/jobs.go | 1 | ||||
| -rw-r--r-- | syz-ci/manager.go | 1 | ||||
| -rw-r--r-- | syz-ci/syz-ci.go | 1 | ||||
| -rw-r--r-- | tools/syz-bisect/bisect.go | 2 | ||||
| -rw-r--r-- | tools/syz-build/build.go | 4 |
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: "", |
