aboutsummaryrefslogtreecommitdiffstats
path: root/tools/syz-kconf
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2022-04-23 13:03:49 +0200
committerDmitry Vyukov <dvyukov@google.com>2022-04-25 11:30:19 +0200
commit5f71dc2811a9d1fce5754aebf828405149827b19 (patch)
treeca26808badffdf51a5c983d6b19e7a82c3f9b8ac /tools/syz-kconf
parentd3cb15ccaccfb22b42c37041700f48bed9a29a6c (diff)
tools/syz-kconf: allow to specify linker
Kernel Makefile uses raw linker in some cases (for version check). So allow to override it as we do for compiler.
Diffstat (limited to 'tools/syz-kconf')
-rw-r--r--tools/syz-kconf/kconf.go3
-rw-r--r--tools/syz-kconf/parser.go8
2 files changed, 11 insertions, 0 deletions
diff --git a/tools/syz-kconf/kconf.go b/tools/syz-kconf/kconf.go
index 9745ad3b8..ec8f3e54a 100644
--- a/tools/syz-kconf/kconf.go
+++ b/tools/syz-kconf/kconf.go
@@ -429,6 +429,9 @@ func (ctx *Context) Make(args ...string) error {
} else if ctx.Target.KernelCompiler != "" {
args = append(args, "CC="+ctx.Target.KernelCompiler)
}
+ if ctx.Inst.Linker != "" {
+ args = append(args, "LD="+ctx.replaceVars(ctx.Inst.Linker))
+ }
_, err := osutil.RunCmd(10*time.Minute, ctx.SourceDir, "make", args...)
return err
}
diff --git a/tools/syz-kconf/parser.go b/tools/syz-kconf/parser.go
index 64aad9403..00455c3e5 100644
--- a/tools/syz-kconf/parser.go
+++ b/tools/syz-kconf/parser.go
@@ -20,6 +20,7 @@ type Instance struct {
Name string
Kernel Kernel
Compiler string
+ Linker string
Verbatim []byte
Shell []Shell
Features Features
@@ -81,6 +82,7 @@ type rawFile struct {
Tag string
}
Compiler string
+ Linker string
Shell []yaml.Node
Verbatim string
Config []yaml.Node
@@ -189,6 +191,12 @@ func mergeFile(inst *Instance, raw *rawFile, file string, errs *Errors) {
}
inst.Compiler = raw.Compiler
}
+ if raw.Linker != "" {
+ if inst.Linker != "" {
+ errs.push("%v: linker is set twice", file)
+ }
+ inst.Linker = raw.Linker
+ }
for _, node := range raw.Shell {
cmd, _, constraints, err := parseNode(node)
if err != nil {