diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-04-23 16:24:48 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-04-23 16:26:26 +0200 |
| commit | 8b5dcf17b0f9fa01f9a4f93c144c56fe3f7468f2 (patch) | |
| tree | cdd10049a2a59a3dc15fe215c4914243f5b22c26 | |
| parent | ff12bea91c22bba93d3ffc3034d813d686bc7eeb (diff) | |
syz-ci: clean kernel dir before patch test build
This leads to false errors when we are switching between gcc and clang:
kernel build failed: failed to run /usr/bin/make [make bzImage -j 32 CC=/syzkaller/clang-kmsan/bin/clang]: exit status 2
arch/x86/Makefile:184: *** Compiler lacks asm-goto support.. Stop.
Fixes #568
| -rw-r--r-- | pkg/kernel/kernel.go | 12 | ||||
| -rw-r--r-- | syz-ci/jobs.go | 3 |
2 files changed, 15 insertions, 0 deletions
diff --git a/pkg/kernel/kernel.go b/pkg/kernel/kernel.go index f1bdcdc83..7fe3ef6d8 100644 --- a/pkg/kernel/kernel.go +++ b/pkg/kernel/kernel.go @@ -52,6 +52,18 @@ func Build(dir, compiler, config string) error { return err } +func Clean(dir string) error { + cmd := osutil.Command("make", "distclean") + if err := osutil.Sandbox(cmd, true, true); err != nil { + return err + } + cmd.Dir = dir + if _, err := osutil.Run(10*time.Minute, cmd); err != nil { + return err + } + return nil +} + // CreateImage creates a disk image that is suitable for syzkaller. // Kernel is taken from kernelDir, userspace system is taken from userspaceDir. // If cmdlineFile is not empty, contents of the file are appended to the kernel command line. diff --git a/syz-ci/jobs.go b/syz-ci/jobs.go index 68d69010f..42f8e585a 100644 --- a/syz-ci/jobs.go +++ b/syz-ci/jobs.go @@ -228,6 +228,9 @@ func (jp *JobProcessor) buildImage(job *Job) error { resp.Build.KernelCommitTitle = kernelCommit.Title resp.Build.KernelCommitDate = kernelCommit.Date + if err := kernel.Clean(kernelDir); err != nil { + return fmt.Errorf("kernel clean failed: %v", err) + } if err := git.Patch(kernelDir, req.Patch); err != nil { return err } |
