aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/bisect
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/bisect
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/bisect')
-rw-r--r--pkg/bisect/bisect.go9
1 files changed, 8 insertions, 1 deletions
diff --git a/pkg/bisect/bisect.go b/pkg/bisect/bisect.go
index 9360bbab1..129a6686e 100644
--- a/pkg/bisect/bisect.go
+++ b/pkg/bisect/bisect.go
@@ -16,6 +16,7 @@ import (
"github.com/google/syzkaller/pkg/osutil"
"github.com/google/syzkaller/pkg/report"
"github.com/google/syzkaller/pkg/vcs"
+ "github.com/google/syzkaller/sys/targets"
)
type Config struct {
@@ -62,6 +63,7 @@ type ReproConfig struct {
type env struct {
cfg *Config
+ target *targets.Target
repo vcs.Repo
bisecter vcs.Bisecter
minimizer vcs.ConfigMinimizer
@@ -132,8 +134,13 @@ func runImpl(cfg *Config, repo vcs.Repo, inst instance.Env) (*Result, error) {
if !ok && len(cfg.Kernel.BaselineConfig) != 0 {
return nil, fmt.Errorf("config minimization is not implemented for %v", cfg.Manager.TargetOS)
}
+ target := targets.Get(cfg.Manager.TargetOS, cfg.Manager.TargetVMArch)
+ if target == nil {
+ return nil, fmt.Errorf("unknown target %v/%v", cfg.Manager.TargetOS, cfg.Manager.TargetVMArch)
+ }
env := &env{
cfg: cfg,
+ target: target,
repo: repo,
bisecter: bisecter,
minimizer: minimizer,
@@ -298,7 +305,7 @@ func (env *env) minimizeConfig() (*testResult, error) {
testResults[hash.Hash(test)] = testRes
return testRes.verdict, err
}
- minConfig, err := env.minimizer.Minimize(env.cfg.Kernel.Config,
+ minConfig, err := env.minimizer.Minimize(env.target, env.cfg.Kernel.Config,
env.cfg.Kernel.BaselineConfig, env.cfg.Trace, predMinimize)
if err != nil {
return nil, err