aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-09-11 15:43:55 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-09-11 15:43:55 +0200
commitff2962ae80af567fc346c4e9d4d7b6c743f25e73 (patch)
tree4e70a02c287d8188f847162af55b237fb5e0269c
parenta54c2b7b920e69215f16cd02bb95957902ab1541 (diff)
syz-ci: de-hardcode kernel object file names
We used to have this list in syz-ci and syz-managers. Now we have kernel object in sys/targets, so use it instead. Update #712
-rw-r--r--pkg/build/build.go3
-rw-r--r--sys/targets/targets.go4
-rw-r--r--syz-ci/manager.go26
-rw-r--r--syz-manager/manager.go3
4 files changed, 21 insertions, 15 deletions
diff --git a/pkg/build/build.go b/pkg/build/build.go
index 615cc7ad7..8882748b1 100644
--- a/pkg/build/build.go
+++ b/pkg/build/build.go
@@ -23,7 +23,8 @@ import (
// - kernel: kernel for injected boot
// - initrd: initrd for injected boot
// - kernel.config: actual kernel config used during build
-// - obj/: directory with kernel object files (e.g. vmlinux for linux)
+// - obj/: directory with kernel object files (this should match KernelObject
+// specified in sys/targets, e.g. vmlinux for linux)
func Image(targetOS, targetArch, vmType, kernelDir, outputDir, compiler, userspaceDir,
cmdlineFile, sysctlFile string, config []byte) error {
builder, err := getBuilder(targetOS, targetArch, vmType)
diff --git a/sys/targets/targets.go b/sys/targets/targets.go
index abe8ccc74..8d2e37f3f 100644
--- a/sys/targets/targets.go
+++ b/sys/targets/targets.go
@@ -278,7 +278,7 @@ var oses = map[string]osCommon{
SyscallNumbers: false,
ExecutorUsesShmem: false,
ExecutorUsesForkServer: false,
- KernelObject: "vmlinux",
+ KernelObject: "zircon.elf",
},
"windows": {
SyscallNumbers: false,
@@ -292,7 +292,7 @@ var oses = map[string]osCommon{
SyscallPrefix: "SYS_",
ExecutorUsesShmem: false,
ExecutorUsesForkServer: true,
- KernelObject: "vmlinux",
+ KernelObject: "akaros-kernel-64b",
},
}
diff --git a/syz-ci/manager.go b/syz-ci/manager.go
index 7ad0617e7..e1b4ded1a 100644
--- a/syz-ci/manager.go
+++ b/syz-ci/manager.go
@@ -20,6 +20,7 @@ import (
"github.com/google/syzkaller/pkg/osutil"
"github.com/google/syzkaller/pkg/report"
"github.com/google/syzkaller/pkg/vcs"
+ "github.com/google/syzkaller/sys/targets"
"github.com/google/syzkaller/vm"
)
@@ -32,15 +33,22 @@ const kernelRebuildPeriod = syzkallerRebuildPeriod + time.Hour
// List of required files in kernel build (contents of latest/current dirs).
var imageFiles = map[string]bool{
- "tag": true, // serialized BuildInfo
- "kernel.config": false, // kernel config used for build
- "image": true, // kernel image
- "kernel": false,
- "initrd": false,
- "key": false, // root ssh key for the image
- "obj/vmlinux": false, // Linux object file with debug info
- "obj/zircon.elf": false, // Zircon object file with debug info
- "obj/akaros-kernel-64b": false, // Akaros object file with debug info
+ "tag": true, // serialized BuildInfo
+ "kernel.config": false, // kernel config used for build
+ "image": true, // kernel image
+ "kernel": false,
+ "initrd": false,
+ "key": false, // root ssh key for the image
+}
+
+func init() {
+ for _, arches := range targets.List {
+ for _, arch := range arches {
+ if arch.KernelObject != "" {
+ imageFiles["obj/"+arch.KernelObject] = false
+ }
+ }
+ }
}
// Manager represents a single syz-manager instance.
diff --git a/syz-manager/manager.go b/syz-manager/manager.go
index d2e9f784f..57e2e5073 100644
--- a/syz-manager/manager.go
+++ b/syz-manager/manager.go
@@ -1094,9 +1094,6 @@ func (mgr *Manager) collectUsedFiles() {
if vmlinux := filepath.Join(cfg.KernelObj, mgr.sysTarget.KernelObject); osutil.IsExist(vmlinux) {
addUsedFile(vmlinux)
}
- if zircon := filepath.Join(cfg.KernelObj, "zircon.elf"); osutil.IsExist(zircon) {
- addUsedFile(zircon)
- }
if cfg.Image != "9p" {
addUsedFile(cfg.Image)
}