diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2022-03-17 11:15:48 +0000 |
|---|---|---|
| committer | Aleksandr Nogikh <wp32pw@gmail.com> | 2022-03-17 16:39:16 +0100 |
| commit | e2d91b1d0dd8c8b4760986ec8114469246022bb8 (patch) | |
| tree | f20ed997e0490ad842a1264d3237bb3784f285de /pkg/instance/instance.go | |
| parent | dfa9a8ed6b12b102fe3625ca8fc786aa86d54a5a (diff) | |
pkg/instance: support older syzkaller revisions
Now we use go1.16+, but sometimes syz-ci still has to compile and run
old syzkaller revisions, which were not meant to be compiled with modern
Go.
In particular, this leads to the following errors:
syzkaller build failed: failed to run ["make" "target"]: exit status 2
tools/syz-make/make.go:14:2: no required module provides package
github.com/google/syzkaller/pkg/osutil: go.mod file not found in
current directory or any parent directory; see 'go help modules'
tools/syz-make/make.go:15:2: no required module provides package
github.com/google/syzkaller/sys/targets: go.mod file not found in
current directory or any parent directory; see 'go help modules'
Makefile:39: *** syz-make failed. Stop.
Fix this by adding GO111MODULE=auto to the environment variables.
Reported-by: Taylor R Campbell <riastradh@netbsd.org>
Diffstat (limited to 'pkg/instance/instance.go')
| -rw-r--r-- | pkg/instance/instance.go | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go index f8e39e589..6ff807850 100644 --- a/pkg/instance/instance.go +++ b/pkg/instance/instance.go @@ -81,9 +81,12 @@ func (env *env) BuildSyzkaller(repoURL, commit string) error { env.optionalFlags = optionalFlags cmd := osutil.Command(MakeBin, "target") cmd.Dir = cfg.Syzkaller - cmd.Env = append([]string{}, os.Environ()...) + goEnvOptions := []string{ + "GOPATH=" + cfg.Syzkaller[:srcIndex], + "GO111MODULE=auto", + } + cmd.Env = append(append([]string{}, os.Environ()...), goEnvOptions...) cmd.Env = append(cmd.Env, - "GOPATH="+cfg.Syzkaller[:srcIndex], "TARGETOS="+cfg.TargetOS, "TARGETVMARCH="+cfg.TargetVMArch, "TARGETARCH="+cfg.TargetArch, @@ -96,7 +99,7 @@ func (env *env) BuildSyzkaller(repoURL, commit string) error { if _, err := osutil.Run(time.Hour, cmd); err != nil { goEnvCmd := osutil.Command("go", "env") goEnvCmd.Dir = cfg.Syzkaller - goEnvCmd.Env = append(append([]string{}, os.Environ()...), "GOPATH="+cfg.Syzkaller[:srcIndex]) + goEnvCmd.Env = append(append([]string{}, os.Environ()...), goEnvOptions...) goEnvOut, goEnvErr := osutil.Run(time.Hour, goEnvCmd) gitStatusOut, gitStatusErr := osutil.RunCmd(time.Hour, cfg.Syzkaller, "git", "status") return fmt.Errorf("syzkaller build failed: %v\ngo env (err=%v)\n%s\ngit status (err=%v)\n%s", |
