aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/bisect/bisect.go
diff options
context:
space:
mode:
authorSpace Meyer <meyerpatrick@google.com>2022-07-30 12:16:05 +0000
committerAleksandr Nogikh <wp32pw@gmail.com>2022-09-01 10:42:40 +0200
commitd8e6f911090ec0020f34e094005284b5c8ac1e7f (patch)
treea66996629b5aa75ac0a06a58af547dafa73f94a7 /pkg/bisect/bisect.go
parent3f79a9101d6ae91acf7edde3727992988bb01ae1 (diff)
pkg/bisect: support clang for crash bisection
Before we hardcoded bisection to use gcc, now the compiler family can be configured in the bisection config.
Diffstat (limited to 'pkg/bisect/bisect.go')
-rw-r--r--pkg/bisect/bisect.go25
1 files changed, 13 insertions, 12 deletions
diff --git a/pkg/bisect/bisect.go b/pkg/bisect/bisect.go
index 0948bc653..1813abaa5 100644
--- a/pkg/bisect/bisect.go
+++ b/pkg/bisect/bisect.go
@@ -19,15 +19,16 @@ import (
)
type Config struct {
- Trace debugtracer.DebugTracer
- Fix bool
- BinDir string
- Ccache string
- Timeout time.Duration
- Kernel KernelConfig
- Syzkaller SyzkallerConfig
- Repro ReproConfig
- Manager *mgrconfig.Config
+ Trace debugtracer.DebugTracer
+ Fix bool
+ BisectCompiler string
+ BinDir string
+ Ccache string
+ Timeout time.Duration
+ Kernel KernelConfig
+ Syzkaller SyzkallerConfig
+ Repro ReproConfig
+ Manager *mgrconfig.Config
}
type KernelConfig struct {
@@ -375,7 +376,7 @@ func (env *env) commitRangeForFix() (*vcs.Commit, *vcs.Commit, *report.Report, [
func (env *env) commitRangeForBug() (*vcs.Commit, *vcs.Commit, *report.Report, []*testResult, error) {
cfg := env.cfg
- tags, err := env.bisecter.PreviousReleaseTags(cfg.Kernel.Commit)
+ tags, err := env.bisecter.PreviousReleaseTags(cfg.Kernel.Commit, cfg.BisectCompiler)
if err != nil {
return nil, nil, nil, nil, err
}
@@ -420,11 +421,11 @@ func (env *env) build() (*vcs.Commit, string, error) {
return nil, "", err
}
- bisectEnv, err := env.bisecter.EnvForCommit(env.cfg.BinDir, current.Hash, env.kernelConfig)
+ bisectEnv, err := env.bisecter.EnvForCommit(env.cfg.BisectCompiler, env.cfg.BinDir, current.Hash, env.kernelConfig)
if err != nil {
return current, "", err
}
- env.log("testing commit %v", current.Hash)
+ env.log("testing commit %v %v", current.Hash, env.cfg.BisectCompiler)
buildStart := time.Now()
mgr := env.cfg.Manager
if err := build.Clean(mgr.TargetOS, mgr.TargetVMArch, mgr.Type, mgr.KernelSrc); err != nil {