aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2020-10-28 21:32:41 +0100
committerDmitry Vyukov <dvyukov@google.com>2020-10-29 18:02:20 +0100
commita0c7169a00e97fc53358f90c9d9c6f8fffddf904 (patch)
treea980a4ebb36d73565486e3fb9af7868153f5ac51 /tools
parent36e8b020cd7e97bc2ca3a306f48d4c62ece8fc34 (diff)
pkg/kconfig: accept target when parsing Kconfig
Kconfig depends on the target arch. Add target argument for Kconfig parsing. Resolve $(SRCARCH) properly (previously we always assumed x86_64).
Diffstat (limited to 'tools')
-rw-r--r--tools/syz-kconf/kconf.go8
-rw-r--r--tools/syz-minconfig/minconfig.go5
2 files changed, 7 insertions, 6 deletions
diff --git a/tools/syz-kconf/kconf.go b/tools/syz-kconf/kconf.go
index 862e4ff45..e4a68998f 100644
--- a/tools/syz-kconf/kconf.go
+++ b/tools/syz-kconf/kconf.go
@@ -71,10 +71,6 @@ func main() {
failf("failed to checkout %v/%v: %v", inst.Kernel.Repo, inst.Kernel.Tag, err)
}
}
- kconf, err := kconfig.Parse(filepath.Join(*flagSourceDir, "Kconfig"))
- if err != nil {
- fail(err)
- }
releaseTag, err := repo.ReleaseTag("HEAD")
if err != nil {
fail(err)
@@ -95,7 +91,6 @@ func main() {
ConfigDir: filepath.Dir(*flagConfig),
SourceDir: *flagSourceDir,
ReleaseTag: releaseTag,
- Kconf: kconf,
}
go func() {
if err := ctx.generate(); err != nil {
@@ -139,6 +134,9 @@ func (ctx *Context) generate() error {
if err := ctx.setTarget(); err != nil {
return err
}
+ if ctx.Kconf, err = kconfig.Parse(ctx.Target, filepath.Join(ctx.SourceDir, "Kconfig")); err != nil {
+ return err
+ }
if err := ctx.setReleaseFeatures(); err != nil {
return err
}
diff --git a/tools/syz-minconfig/minconfig.go b/tools/syz-minconfig/minconfig.go
index b68c183eb..91a26cdd1 100644
--- a/tools/syz-minconfig/minconfig.go
+++ b/tools/syz-minconfig/minconfig.go
@@ -13,9 +13,11 @@ import (
"fmt"
"os"
"path/filepath"
+ "runtime"
"strings"
"github.com/google/syzkaller/pkg/kconfig"
+ "github.com/google/syzkaller/sys/targets"
)
func main() {
@@ -24,9 +26,10 @@ func main() {
flagBase = flag.String("base", "", "baseline config")
flagFull = flag.String("full", "", "full config")
flagConfigs = flag.String("configs", "", "comma-separated list of configs for the crash predicate")
+ flagArch = flag.String("arch", runtime.GOARCH, "kernel arch")
)
flag.Parse()
- kconf, err := kconfig.Parse(filepath.Join(*flagSourceDir, "Kconfig"))
+ kconf, err := kconfig.Parse(targets.Get("linux", *flagArch), filepath.Join(*flagSourceDir, "Kconfig"))
if err != nil {
failf("%v", err)
}