diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2022-10-12 12:11:12 +0000 |
|---|---|---|
| committer | Aleksandr Nogikh <wp32pw@gmail.com> | 2022-10-12 15:22:20 +0200 |
| commit | 89b5a5097a095577d19574ae2fe3070e5af2a065 (patch) | |
| tree | 873483fd5ff14396065e7af0ca02319967e59d53 /pkg/build/linux.go | |
| parent | 16a9c9e0fe35ce296944c5682f4a54d52bd67e71 (diff) | |
all: add support for custom linker
Add this as an option to syz-ci and syz-build tools.
Otherwise we cannot use clang + ld.lld for kernel builds.
Diffstat (limited to 'pkg/build/linux.go')
| -rw-r--r-- | pkg/build/linux.go | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/pkg/build/linux.go b/pkg/build/linux.go index be9a38377..9fae48fc6 100644 --- a/pkg/build/linux.go +++ b/pkg/build/linux.go @@ -148,9 +148,9 @@ func (linux) writeFile(file string, data []byte) error { return osutil.SandboxChown(file) } -func runMakeImpl(arch, compiler, ccache, kernelDir string, addArgs ...string) error { +func runMakeImpl(arch, compiler, linker, ccache, kernelDir string, addArgs ...string) error { target := targets.Get(targets.Linux, arch) - args := LinuxMakeArgs(target, compiler, ccache, "") + args := LinuxMakeArgs(target, compiler, linker, ccache, "") args = append(args, addArgs...) cmd := osutil.Command("make", args...) if err := osutil.Sandbox(cmd, true, true); err != nil { @@ -175,10 +175,10 @@ func runMakeImpl(arch, compiler, ccache, kernelDir string, addArgs ...string) er } func runMake(params Params, addArgs ...string) error { - return runMakeImpl(params.TargetArch, params.Compiler, params.Ccache, params.KernelDir, addArgs...) + return runMakeImpl(params.TargetArch, params.Compiler, params.Linker, params.Ccache, params.KernelDir, addArgs...) } -func LinuxMakeArgs(target *targets.Target, compiler, ccache, buildDir string) []string { +func LinuxMakeArgs(target *targets.Target, compiler, linker, ccache, buildDir string) []string { args := []string{ "-j", fmt.Sprint(runtime.NumCPU()), "ARCH=" + target.KernelArch, @@ -189,7 +189,7 @@ func LinuxMakeArgs(target *targets.Target, compiler, ccache, buildDir string) [] if compiler == "" { compiler = target.KernelCompiler if target.KernelLinker != "" { - args = append(args, "LD="+target.KernelLinker) + linker = target.KernelLinker } } if compiler != "" { @@ -198,6 +198,9 @@ func LinuxMakeArgs(target *targets.Target, compiler, ccache, buildDir string) [] } args = append(args, "CC="+compiler) } + if linker != "" { + args = append(args, "LD="+linker) + } if buildDir != "" { args = append(args, "O="+buildDir) } |
