diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2018-06-21 14:53:21 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2018-06-22 16:40:45 +0200 |
| commit | 94ef62054cd1f18fb4deaff776695f5a1670a358 (patch) | |
| tree | 2d0232ec9f20e636b7c5fa12bcd22167948129f1 | |
| parent | 2a075d57ab619ae5333c823cc260a722ab0c47fe (diff) | |
pkg/build: move from pkg/kernel
Rename pkg/kernel to pkg/build and prepare for multi-OS support.
| -rw-r--r-- | .gometalinter.json | 2 | ||||
| -rw-r--r-- | Makefile | 2 | ||||
| -rw-r--r-- | pkg/bisect/bisect.go | 8 | ||||
| -rw-r--r-- | pkg/build/build.go | 5 | ||||
| -rw-r--r-- | pkg/build/build_test.go (renamed from pkg/kernel/kernel_test.go) | 2 | ||||
| -rw-r--r-- | pkg/build/linux.go (renamed from pkg/kernel/kernel.go) | 14 | ||||
| -rw-r--r-- | pkg/build/linux_generated.go (renamed from pkg/kernel/generated.go) | 2 | ||||
| -rw-r--r-- | pkg/instance/instance.go | 6 | ||||
| -rw-r--r-- | syz-ci/jobs.go | 4 | ||||
| -rw-r--r-- | syz-ci/manager.go | 8 |
10 files changed, 28 insertions, 25 deletions
diff --git a/.gometalinter.json b/.gometalinter.json index acec4888c..86aa760b4 100644 --- a/.gometalinter.json +++ b/.gometalinter.json @@ -37,6 +37,6 @@ "(sys/(akaros|freebsd|fuchsia|linux|netbsd|test|windows)/init.*|sys/targets/common.go).* don't use ALL_CAPS in Go names", "exported .* should have comment", "comment on .* should be of the form", - "(pkg/csource/.*_common.go|pkg/csource/gen.go|pkg/report/linux.go|pkg/kernel/generated.go).* line is [0-9]+ characters" + "(pkg/csource/.*_common.go|pkg/csource/gen.go|pkg/report/linux.go|pkg/build/linux_generated.go).* line is [0-9]+ characters" ] } @@ -146,7 +146,7 @@ generate: generate_go generate_sys $(MAKE) format generate_go: bin/syz-sysgen - $(GO) generate ./pkg/csource ./executor ./pkg/ifuzz ./pkg/kernel + $(GO) generate ./pkg/csource ./executor ./pkg/ifuzz ./pkg/build generate_sys: bin/syz-sysgen bin/syz-sysgen diff --git a/pkg/bisect/bisect.go b/pkg/bisect/bisect.go index f2770d6ce..4e2ee143f 100644 --- a/pkg/bisect/bisect.go +++ b/pkg/bisect/bisect.go @@ -9,9 +9,9 @@ import ( "path/filepath" "time" + "github.com/google/syzkaller/pkg/build" "github.com/google/syzkaller/pkg/git" "github.com/google/syzkaller/pkg/instance" - "github.com/google/syzkaller/pkg/kernel" "github.com/google/syzkaller/pkg/osutil" "github.com/google/syzkaller/syz-manager/mgrconfig" ) @@ -101,7 +101,7 @@ func (env *env) bisect() (*git.Commit, error) { if env.head, err = git.Poll(cfg.Manager.KernelSrc, cfg.Kernel.Repo, cfg.Kernel.Branch); err != nil { return nil, err } - if err := kernel.Clean(cfg.Manager.KernelSrc); err != nil { + if err := build.Clean(cfg.Manager.KernelSrc); err != nil { return nil, fmt.Errorf("kernel clean failed: %v", err) } env.log("building syzkaller on %v", cfg.Syzkaller.Commit) @@ -214,13 +214,13 @@ func (env *env) test() (git.BisectResult, error) { if err != nil { return 0, err } - compilerID, err := kernel.CompilerIdentity(be.compiler) + compilerID, err := build.CompilerIdentity(be.compiler) if err != nil { return 0, err } env.log("testing commit %v with %v", current.Hash, compilerID) buildStart := time.Now() - if err := kernel.Clean(cfg.Manager.KernelSrc); err != nil { + if err := build.Clean(cfg.Manager.KernelSrc); err != nil { return 0, fmt.Errorf("kernel clean failed: %v", err) } err = env.inst.BuildKernel(be.compiler, cfg.Kernel.Userspace, diff --git a/pkg/build/build.go b/pkg/build/build.go new file mode 100644 index 000000000..b53391ea3 --- /dev/null +++ b/pkg/build/build.go @@ -0,0 +1,5 @@ +// Copyright 2018 syzkaller project authors. All rights reserved. +// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. + +// Package build contains helper functions for building kernels/images. +package build diff --git a/pkg/kernel/kernel_test.go b/pkg/build/build_test.go index 18d7936d0..40422b42a 100644 --- a/pkg/kernel/kernel_test.go +++ b/pkg/build/build_test.go @@ -1,7 +1,7 @@ // Copyright 2017 syzkaller project authors. All rights reserved. // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. -package kernel +package build import ( "os/exec" diff --git a/pkg/kernel/kernel.go b/pkg/build/linux.go index 5bcc0fc42..e8c2d0f6d 100644 --- a/pkg/kernel/kernel.go +++ b/pkg/build/linux.go @@ -1,15 +1,13 @@ // Copyright 2017 syzkaller project authors. All rights reserved. // Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file. -//go:generate bash -c "echo -en '// AUTOGENERATED FILE\n\n' > generated.go" -//go:generate bash -c "echo -en 'package kernel\n\n' >> generated.go" -//go:generate bash -c "echo -en 'const createImageScript = `#!/bin/bash\n' >> generated.go" -//go:generate bash -c "cat ../../tools/create-gce-image.sh | grep -v '#' >> generated.go" -//go:generate bash -c "echo -en '`\n\n' >> generated.go" +//go:generate bash -c "echo -en '// AUTOGENERATED FILE\n\n' > linux_generated.go" +//go:generate bash -c "echo -en 'package build\n\n' >> linux_generated.go" +//go:generate bash -c "echo -en 'const createImageScript = `#!/bin/bash\n' >> linux_generated.go" +//go:generate bash -c "cat ../../tools/create-gce-image.sh | grep -v '#' >> linux_generated.go" +//go:generate bash -c "echo -en '`\n\n' >> linux_generated.go" -// Package kernel contains helper functions for working with Linux kernel -// (building kernel/image). -package kernel +package build import ( "bytes" diff --git a/pkg/kernel/generated.go b/pkg/build/linux_generated.go index 9c8fe51e8..95da10aee 100644 --- a/pkg/kernel/generated.go +++ b/pkg/build/linux_generated.go @@ -1,6 +1,6 @@ // AUTOGENERATED FILE -package kernel +package build const createImageScript = `#!/bin/bash diff --git a/pkg/instance/instance.go b/pkg/instance/instance.go index e7ab3c9ec..2294fed9b 100644 --- a/pkg/instance/instance.go +++ b/pkg/instance/instance.go @@ -14,9 +14,9 @@ import ( "strings" "time" + "github.com/google/syzkaller/pkg/build" "github.com/google/syzkaller/pkg/csource" "github.com/google/syzkaller/pkg/git" - "github.com/google/syzkaller/pkg/kernel" "github.com/google/syzkaller/pkg/log" "github.com/google/syzkaller/pkg/osutil" "github.com/google/syzkaller/pkg/report" @@ -79,13 +79,13 @@ func (env *Env) BuildSyzkaller(repo, commit string) error { func (env *Env) BuildKernel(compilerBin, userspaceDir, cmdlineFile, sysctlFile string, kernelConfig []byte) error { cfg := env.cfg - if err := kernel.Build(cfg.KernelSrc, compilerBin, kernelConfig); err != nil { + if err := build.Build(cfg.KernelSrc, compilerBin, kernelConfig); err != nil { return osutil.PrependContext("kernel build failed", err) } cfg.KernelObj = cfg.KernelSrc cfg.Image = filepath.Join(cfg.Workdir, "syz-image") cfg.SSHKey = filepath.Join(cfg.Workdir, "syz-key") - if err := kernel.CreateImage(cfg.TargetOS, cfg.TargetVMArch, cfg.Type, + if err := build.CreateImage(cfg.TargetOS, cfg.TargetVMArch, cfg.Type, cfg.KernelSrc, userspaceDir, cmdlineFile, sysctlFile, cfg.Image, cfg.SSHKey); err != nil { return osutil.PrependContext("image build failed", err) } diff --git a/syz-ci/jobs.go b/syz-ci/jobs.go index 3866c8a60..b4268344d 100644 --- a/syz-ci/jobs.go +++ b/syz-ci/jobs.go @@ -11,9 +11,9 @@ import ( "time" "github.com/google/syzkaller/dashboard/dashapi" + "github.com/google/syzkaller/pkg/build" "github.com/google/syzkaller/pkg/git" "github.com/google/syzkaller/pkg/instance" - "github.com/google/syzkaller/pkg/kernel" "github.com/google/syzkaller/pkg/log" "github.com/google/syzkaller/pkg/osutil" "github.com/google/syzkaller/syz-manager/mgrconfig" @@ -204,7 +204,7 @@ func (jp *JobProcessor) test(job *Job) error { resp.Build.KernelCommitTitle = kernelCommit.Title resp.Build.KernelCommitDate = kernelCommit.Date - if err := kernel.Clean(kernelDir); err != nil { + if err := build.Clean(kernelDir); err != nil { return fmt.Errorf("kernel clean failed: %v", err) } if len(req.Patch) != 0 { diff --git a/syz-ci/manager.go b/syz-ci/manager.go index 1341004ce..10794beeb 100644 --- a/syz-ci/manager.go +++ b/syz-ci/manager.go @@ -11,11 +11,11 @@ import ( "time" "github.com/google/syzkaller/dashboard/dashapi" + "github.com/google/syzkaller/pkg/build" "github.com/google/syzkaller/pkg/config" "github.com/google/syzkaller/pkg/git" "github.com/google/syzkaller/pkg/hash" "github.com/google/syzkaller/pkg/instance" - "github.com/google/syzkaller/pkg/kernel" "github.com/google/syzkaller/pkg/log" "github.com/google/syzkaller/pkg/osutil" "github.com/google/syzkaller/pkg/report" @@ -75,7 +75,7 @@ func createManager(cfg *Config, mgrcfg *ManagerConfig, stop chan struct{}) *Mana } // Assume compiler and config don't change underneath us. - compilerID, err := kernel.CompilerIdentity(mgrcfg.Compiler) + compilerID, err := build.CompilerIdentity(mgrcfg.Compiler) if err != nil { log.Fatal(err) } @@ -271,7 +271,7 @@ func (mgr *Manager) build() error { return fmt.Errorf("failed to write tag file: %v", err) } - if err := kernel.Build(mgr.kernelDir, mgr.mgrcfg.Compiler, kernelConfigData); err != nil { + if err := build.Build(mgr.kernelDir, mgr.mgrcfg.Compiler, kernelConfigData); err != nil { rep := &report.Report{ Title: fmt.Sprintf("%v build error", mgr.mgrcfg.RepoAlias), Output: []byte(err.Error()), @@ -288,7 +288,7 @@ func (mgr *Manager) build() error { image := filepath.Join(tmpDir, "image") key := filepath.Join(tmpDir, "key") - err = kernel.CreateImage(mgr.managercfg.TargetOS, mgr.managercfg.TargetVMArch, mgr.managercfg.Type, + err = build.CreateImage(mgr.managercfg.TargetOS, mgr.managercfg.TargetVMArch, mgr.managercfg.Type, mgr.kernelDir, mgr.mgrcfg.Userspace, mgr.mgrcfg.KernelCmdline, mgr.mgrcfg.KernelSysctl, image, key) if err != nil { return fmt.Errorf("image build failed: %v", err) |
