aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/build/linux.go
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2022-10-12 12:11:12 +0000
committerAleksandr Nogikh <wp32pw@gmail.com>2022-10-12 15:22:20 +0200
commit89b5a5097a095577d19574ae2fe3070e5af2a065 (patch)
tree873483fd5ff14396065e7af0ca02319967e59d53 /pkg/build/linux.go
parent16a9c9e0fe35ce296944c5682f4a54d52bd67e71 (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.go13
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)
}