diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-09-11 15:43:55 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-09-11 15:43:55 +0200 |
| commit | ff2962ae80af567fc346c4e9d4d7b6c743f25e73 (patch) | |
| tree | 4e70a02c287d8188f847162af55b237fb5e0269c | |
| parent | a54c2b7b920e69215f16cd02bb95957902ab1541 (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.go | 3 | ||||
| -rw-r--r-- | sys/targets/targets.go | 4 | ||||
| -rw-r--r-- | syz-ci/manager.go | 26 | ||||
| -rw-r--r-- | syz-manager/manager.go | 3 |
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) } |
