aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/vcs
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 /pkg/vcs
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 'pkg/vcs')
-rw-r--r--pkg/vcs/linux.go5
-rw-r--r--pkg/vcs/testos.go4
-rw-r--r--pkg/vcs/vcs.go3
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 {