diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2022-04-23 13:03:49 +0200 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2022-04-25 11:30:19 +0200 |
| commit | 5f71dc2811a9d1fce5754aebf828405149827b19 (patch) | |
| tree | ca26808badffdf51a5c983d6b19e7a82c3f9b8ac /tools | |
| parent | d3cb15ccaccfb22b42c37041700f48bed9a29a6c (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')
| -rw-r--r-- | tools/syz-kconf/kconf.go | 3 | ||||
| -rw-r--r-- | tools/syz-kconf/parser.go | 8 |
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 { |
