diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2024-04-15 10:37:30 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2024-04-15 10:19:39 +0000 |
| commit | c6f10907c38ce49ddc321539f75aabf0a9ad6c71 (patch) | |
| tree | 1277a1d64e2201b58b550ef0131222eaab9fcf73 /pkg/build | |
| parent | 33fec5a3ec55bce7f1664e70e6f5ff8daf56886d (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.go | 131 | ||||
| -rw-r--r-- | pkg/build/build.go | 1 |
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{}, |
