aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/build/netbsd.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2021-07-20 09:51:49 +0000
committerAleksandr Nogikh <wp32pw@gmail.com>2021-07-20 13:39:45 +0200
commit1d0d9801861138705e655de691d7bb9c8b3aac4b (patch)
treedd34c41d4d900e7aed2df6b2f90f6b3cdc612797 /pkg/build/netbsd.go
parent2fe31df39f956886ef214b5b028362964aa07a53 (diff)
pkg/build: modify builder interface
Modify the `builder` interface in such a way that build method also returns a struct containing extra information about the build process. This allows to fetch compiler ID from individual builders. Also, this makes the `signer` interface obsolete, as this information can also go into that structure.
Diffstat (limited to 'pkg/build/netbsd.go')
-rw-r--r--pkg/build/netbsd.go22
1 files changed, 11 insertions, 11 deletions
diff --git a/pkg/build/netbsd.go b/pkg/build/netbsd.go
index 89b22cf82..b569b9833 100644
--- a/pkg/build/netbsd.go
+++ b/pkg/build/netbsd.go
@@ -22,23 +22,23 @@ import (
type netbsd struct{}
-func (ctx netbsd) build(params Params) error {
+func (ctx netbsd) build(params Params) (ImageDetails, error) {
const kernelName = "GENERIC_SYZKALLER"
confDir := fmt.Sprintf("%v/sys/arch/%v/conf", params.KernelDir, params.TargetArch)
compileDir := fmt.Sprintf("%v/sys/arch/%v/compile/obj/%v", params.KernelDir, params.TargetArch, kernelName)
if err := osutil.WriteFile(filepath.Join(confDir, kernelName), params.Config); err != nil {
- return err
+ return ImageDetails{}, err
}
// Clear the tools.
if _, err := osutil.RunCmd(5*time.Minute, params.KernelDir, "rm", "-rf", "obj/"); err != nil {
- return err
+ return ImageDetails{}, err
}
// Clear the build files.
if _, err := osutil.RunCmd(5*time.Minute, params.KernelDir, "rm", "-rf", compileDir); err != nil {
- return err
+ return ImageDetails{}, err
}
if strings.HasSuffix(params.Compiler, "clang++") {
@@ -46,24 +46,24 @@ func (ctx netbsd) build(params Params) error {
if _, err := osutil.RunCmd(60*time.Minute, params.KernelDir, "./build.sh", "-m", params.TargetArch,
"-U", "-j"+strconv.Itoa(runtime.NumCPU()), "-V", "MKCTF=no",
"-V", "MKLLVM=yes", "-V", "MKGCC=no", "-V", "HAVE_LLVM=yes", "tools"); err != nil {
- return err
+ return ImageDetails{}, err
}
// Build kernel.
if _, err := osutil.RunCmd(20*time.Minute, params.KernelDir, "./build.sh", "-m", params.TargetArch,
"-U", "-j"+strconv.Itoa(runtime.NumCPU()), "-V", "MKCTF=no",
"-V", "MKLLVM=yes", "-V", "MKGCC=no", "-V", "HAVE_LLVM=yes", "kernel="+kernelName); err != nil {
- return err
+ return ImageDetails{}, err
}
} else if strings.HasSuffix(params.Compiler, "g++") {
if _, err := osutil.RunCmd(30*time.Minute, params.KernelDir, "./build.sh", "-m", params.TargetArch,
"-U", "-j"+strconv.Itoa(runtime.NumCPU()), "-V", "MKCTF=no", "tools"); err != nil {
- return err
+ return ImageDetails{}, err
}
if _, err := osutil.RunCmd(20*time.Minute, params.KernelDir, "./build.sh", "-m", params.TargetArch,
"-U", "-j"+strconv.Itoa(runtime.NumCPU()), "-V", "MKCTF=no", "kernel="+kernelName); err != nil {
- return err
+ return ImageDetails{}, err
}
}
@@ -75,14 +75,14 @@ func (ctx netbsd) build(params Params) error {
fullSrc := filepath.Join(s.dir, s.src)
fullDst := filepath.Join(params.OutputDir, s.dst)
if err := osutil.CopyFile(fullSrc, fullDst); err != nil {
- return fmt.Errorf("failed to copy %v -> %v: %v", fullSrc, fullDst, err)
+ return ImageDetails{}, fmt.Errorf("failed to copy %v -> %v: %v", fullSrc, fullDst, err)
}
}
keyFile := filepath.Join(params.OutputDir, "key")
if err := os.Chmod(keyFile, 0600); err != nil {
- return fmt.Errorf("failed to chmod 0600 %v: %v", keyFile, err)
+ return ImageDetails{}, fmt.Errorf("failed to chmod 0600 %v: %v", keyFile, err)
}
- return ctx.copyKernelToDisk(params.TargetArch, params.VMType, params.OutputDir,
+ return ImageDetails{}, ctx.copyKernelToDisk(params.TargetArch, params.VMType, params.OutputDir,
filepath.Join(compileDir, "netbsd"))
}