diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-10-28 21:32:41 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-10-29 18:02:20 +0100 |
| commit | a0c7169a00e97fc53358f90c9d9c6f8fffddf904 (patch) | |
| tree | a980a4ebb36d73565486e3fb9af7868153f5ac51 /pkg/vcs | |
| parent | 36e8b020cd7e97bc2ca3a306f48d4c62ece8fc34 (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 'pkg/vcs')
| -rw-r--r-- | pkg/vcs/linux.go | 5 | ||||
| -rw-r--r-- | pkg/vcs/testos.go | 4 | ||||
| -rw-r--r-- | pkg/vcs/vcs.go | 3 |
3 files changed, 8 insertions, 4 deletions
diff --git a/pkg/vcs/linux.go b/pkg/vcs/linux.go index 93a6ca910..a99215528 100644 --- a/pkg/vcs/linux.go +++ b/pkg/vcs/linux.go @@ -18,6 +18,7 @@ import ( "github.com/google/syzkaller/pkg/kconfig" "github.com/google/syzkaller/pkg/osutil" "github.com/google/syzkaller/prog" + "github.com/google/syzkaller/sys/targets" ) type linux struct { @@ -308,13 +309,13 @@ func ParseMaintainersLinux(text []byte) Recipients { const configBisectTag = "# Minimized by syzkaller" -func (ctx *linux) Minimize(original, baseline []byte, trace io.Writer, +func (ctx *linux) Minimize(target *targets.Target, original, baseline []byte, trace io.Writer, pred func(test []byte) (BisectResult, error)) ([]byte, error) { if bytes.HasPrefix(original, []byte(configBisectTag)) { fmt.Fprintf(trace, "# configuration already minimized\n") return original, nil } - kconf, err := kconfig.Parse(filepath.Join(ctx.git.dir, "Kconfig")) + kconf, err := kconfig.Parse(target, filepath.Join(ctx.git.dir, "Kconfig")) if err != nil { return nil, fmt.Errorf("failed to parse Kconfig: %v", err) } diff --git a/pkg/vcs/testos.go b/pkg/vcs/testos.go index 732192398..fa9f7cc9b 100644 --- a/pkg/vcs/testos.go +++ b/pkg/vcs/testos.go @@ -6,6 +6,8 @@ package vcs import ( "fmt" "io" + + "github.com/google/syzkaller/sys/targets" ) type testos struct { @@ -28,7 +30,7 @@ func (ctx *testos) EnvForCommit(binDir, commit string, kernelConfig []byte) (*Bi return &BisectEnv{KernelConfig: kernelConfig}, nil } -func (ctx *testos) Minimize(original, baseline []byte, trace io.Writer, +func (ctx *testos) Minimize(target *targets.Target, original, baseline []byte, trace io.Writer, pred func(test []byte) (BisectResult, error)) ([]byte, error) { if res, err := pred(baseline); err != nil { return nil, err diff --git a/pkg/vcs/vcs.go b/pkg/vcs/vcs.go index e79d1c18f..0f917144a 100644 --- a/pkg/vcs/vcs.go +++ b/pkg/vcs/vcs.go @@ -128,7 +128,8 @@ type Bisecter interface { } type ConfigMinimizer interface { - Minimize(original, baseline []byte, trace io.Writer, pred func(test []byte) (BisectResult, error)) ([]byte, error) + Minimize(target *targets.Target, original, baseline []byte, trace io.Writer, + pred func(test []byte) (BisectResult, error)) ([]byte, error) } type Commit struct { |
