From 2ce644fcea660c78bc6a3ce7e05079a730743671 Mon Sep 17 00:00:00 2001 From: Andrei Vagin Date: Sat, 6 Feb 2021 13:57:40 -0800 Subject: build/gvisor: run aquery with all build options Build options can affect a path where runsc will be saved. Signed-off-by: Andrei Vagin --- pkg/build/gvisor.go | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'pkg') diff --git a/pkg/build/gvisor.go b/pkg/build/gvisor.go index 67a92c2e0..ff6219c67 100644 --- a/pkg/build/gvisor.go +++ b/pkg/build/gvisor.go @@ -10,6 +10,7 @@ import ( "strings" "time" + "github.com/google/syzkaller/pkg/log" "github.com/google/syzkaller/pkg/osutil" "github.com/google/syzkaller/sys/targets" ) @@ -27,7 +28,8 @@ func (gvisor gvisor) build(params *Params) error { defer osutil.RunCmd(10*time.Minute, params.KernelDir, params.Compiler, "shutdown") config := strings.Fields(string(params.Config)) - args := []string{"build", "--verbose_failures"} + args := []string{} + target := "//runsc:runsc" race := raceEnabled(config) if race { @@ -57,17 +59,22 @@ func (gvisor gvisor) build(params *Params) error { "--collect_code_coverage", "--instrumentation_filter=" + coverageFiles}...) } - args = append(args, target) + buildArgs := []string{"build", "--verbose_failures"} + buildArgs = append(buildArgs, args...) + buildArgs = append(buildArgs, target) + log.Logf(0, "bazel: %v", buildArgs) // The 1 hour timeout is quite high. But we've seen false positives with 20 mins // on the first build after bazel/deps update. Also other gvisor instances running // on the same machine contribute to longer build times. - if _, err := osutil.RunCmd(60*time.Minute, params.KernelDir, params.Compiler, args...); err != nil { + if _, err := osutil.RunCmd(60*time.Minute, params.KernelDir, params.Compiler, buildArgs...); err != nil { return err } // Find out a path to the runsc binary. - out, err := osutil.RunCmd(time.Minute, params.KernelDir, params.Compiler, - "aquery", fmt.Sprintf("mnemonic(\"GoLink\", %s)", target)) + aqueryArgs := append([]string{"aquery"}, args...) + aqueryArgs = append(aqueryArgs, fmt.Sprintf("mnemonic(\"GoLink\", %s)", target)) + log.Logf(0, "bazel: %v", aqueryArgs) + out, err := osutil.RunCmd(time.Minute, params.KernelDir, params.Compiler, aqueryArgs...) if err != nil { return err } -- cgit mrf-deployment