aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-06-21 14:53:21 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-06-22 16:40:45 +0200
commit94ef62054cd1f18fb4deaff776695f5a1670a358 (patch)
tree2d0232ec9f20e636b7c5fa12bcd22167948129f1
parent2a075d57ab619ae5333c823cc260a722ab0c47fe (diff)
pkg/build: move from pkg/kernel
Rename pkg/kernel to pkg/build and prepare for multi-OS support.
-rw-r--r--.gometalinter.json2
-rw-r--r--Makefile2
-rw-r--r--pkg/bisect/bisect.go8
-rw-r--r--pkg/build/build.go5
-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.go6
-rw-r--r--syz-ci/jobs.go4
-rw-r--r--syz-ci/manager.go8
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"
]
}
diff --git a/Makefile b/Makefile
index ce54678f3..46fdc1514 100644
--- a/Makefile
+++ b/Makefile
@@ -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)