aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/build
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2024-04-15 10:37:30 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-04-15 10:19:39 +0000
commitc6f10907c38ce49ddc321539f75aabf0a9ad6c71 (patch)
tree1277a1d64e2201b58b550ef0131222eaab9fcf73 /pkg/build
parent33fec5a3ec55bce7f1664e70e6f5ff8daf56886d (diff)
all: remove akaros support
Akaros support is unused, it was shutdown on syzbot for a while, the akaros development seems to be frozen for years as well. We have a bunch of hacks for Akaros since it supported only super old gcc and haven't supported Go. Remove it.
Diffstat (limited to 'pkg/build')
-rw-r--r--pkg/build/akaros.go131
-rw-r--r--pkg/build/build.go1
2 files changed, 0 insertions, 132 deletions
diff --git a/pkg/build/akaros.go b/pkg/build/akaros.go
deleted file mode 100644
index 67b044f04..000000000
--- a/pkg/build/akaros.go
+++ /dev/null
@@ -1,131 +0,0 @@
-// 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
-
-import (
- "fmt"
- "os"
- "path/filepath"
- "runtime"
- "strconv"
- "time"
-
- "github.com/google/syzkaller/pkg/osutil"
-)
-
-type akaros struct{}
-
-func (ctx akaros) build(params Params) (ImageDetails, error) {
- configFile := filepath.Join(params.KernelDir, ".config")
- if err := osutil.WriteFile(configFile, params.Config); err != nil {
- return ImageDetails{}, fmt.Errorf("failed to write config file: %w", err)
- }
- if err := osutil.SandboxChown(configFile); err != nil {
- return ImageDetails{}, err
- }
- sshkey := filepath.Join(params.KernelDir, "key")
- sshkeyPub := sshkey + ".pub"
- os.Remove(sshkey)
- os.Remove(sshkeyPub)
- if _, err := osutil.RunCmd(10*time.Minute, "", "ssh-keygen", "-t", "rsa", "-b", "2048",
- "-N", "", "-C", "", "-f", sshkey); err != nil {
- return ImageDetails{}, err
- }
- if err := osutil.SandboxChown(sshkeyPub); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "", "olddefconfig", "ARCH=x86"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "", "xcc"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "tools/dev-libs/elfutils", "install"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "", "apps-install"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "", "fill-kfs"); err != nil {
- return ImageDetails{}, err
- }
- targetKey := filepath.Join(params.KernelDir, "kern", "kfs", ".ssh", "authorized_keys")
- if err := osutil.Rename(sshkeyPub, targetKey); err != nil {
- return ImageDetails{}, err
- }
- const init = `#!/bin/bash
-/ifconfig
-dropbear -F 2>db_out &
-bash
-`
- initFile := filepath.Join(params.KernelDir, "kern", "kfs", "init.sh")
- if err := osutil.WriteFile(initFile, []byte(init)); err != nil {
- return ImageDetails{}, fmt.Errorf("failed to write init script: %w", err)
- }
- if err := osutil.SandboxChown(initFile); err != nil {
- return ImageDetails{}, err
- }
- if err := os.Chmod(initFile, 0770); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.cmd(params.KernelDir, "dropbear", "./CONFIGURE_AKAROS"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "dropbear/build"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, "dropbear/build", "install"); err != nil {
- return ImageDetails{}, err
- }
- if err := ctx.make(params.KernelDir, ""); err != nil {
- return ImageDetails{}, err
- }
- if err := osutil.WriteFile(filepath.Join(params.OutputDir, "image"), nil); err != nil {
- return ImageDetails{}, fmt.Errorf("failed to write image file: %w", err)
- }
- for src, dst := range map[string]string{
- ".config": "kernel.config",
- "key": "key",
- "obj/kern/akaros-kernel": "kernel",
- "obj/kern/akaros-kernel-64b": "obj/akaros-kernel-64b",
- } {
- fullSrc := filepath.Join(params.KernelDir, filepath.FromSlash(src))
- fullDst := filepath.Join(params.OutputDir, filepath.FromSlash(dst))
- if err := osutil.CopyFile(fullSrc, fullDst); err != nil {
- return ImageDetails{}, fmt.Errorf("failed to copy %v: %w", src, err)
- }
- }
- return ImageDetails{}, nil
-}
-
-func (ctx akaros) clean(kernelDir, targetArch string) error {
- // Note: this does not clean toolchain and elfutils.
- return ctx.make(kernelDir, "", "realclean")
-}
-
-func (ctx akaros) make(kernelDir, runDir string, args ...string) error {
- args = append([]string{"-j", strconv.Itoa(runtime.NumCPU())}, args...)
- return ctx.cmd(kernelDir, runDir, "make", args...)
-}
-
-func (ctx akaros) cmd(kernelDir, runDir, bin string, args ...string) error {
- cmd := osutil.Command(bin, args...)
- if err := osutil.Sandbox(cmd, true, false); err != nil {
- return err
- }
- cmd.Dir = kernelDir
- if runDir != "" {
- cmd.Dir = filepath.Join(kernelDir, filepath.FromSlash(runDir))
- }
- cmd.Env = append([]string{}, os.Environ()...)
- cmd.Env = append(cmd.Env, []string{
- "MAKE_JOBS=" + strconv.Itoa(runtime.NumCPU()),
- "AKAROS_ROOT=" + kernelDir,
- "AKAROS_TOOLCHAINS=" + filepath.Join(kernelDir, "toolchain"),
- "PATH=" + filepath.Join(kernelDir, "toolchain", "x86_64-ucb-akaros-gcc", "bin") +
- string(filepath.ListSeparator) + os.Getenv("PATH"),
- }...)
- _, err := osutil.Run(time.Hour, cmd)
- return err
-}
diff --git a/pkg/build/build.go b/pkg/build/build.go
index 52873e3b2..a489f04dc 100644
--- a/pkg/build/build.go
+++ b/pkg/build/build.go
@@ -144,7 +144,6 @@ func getBuilder(targetOS, targetArch, vmType string) (builder, error) {
builders := map[string]builder{
targets.Linux: linux{},
targets.Fuchsia: fuchsia{},
- targets.Akaros: akaros{},
targets.OpenBSD: openbsd{},
targets.NetBSD: netbsd{},
targets.FreeBSD: freebsd{},