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/bisect | |
| 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/bisect')
| -rw-r--r-- | pkg/bisect/bisect.go | 9 |
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 |
