aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/kernel/kernel.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-04-23 16:24:48 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-04-23 16:26:26 +0200
commit8b5dcf17b0f9fa01f9a4f93c144c56fe3f7468f2 (patch)
treecdd10049a2a59a3dc15fe215c4914243f5b22c26 /pkg/kernel/kernel.go
parentff12bea91c22bba93d3ffc3034d813d686bc7eeb (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
Diffstat (limited to 'pkg/kernel/kernel.go')
-rw-r--r--pkg/kernel/kernel.go12
1 files changed, 12 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.