rust: Use host linker when building for Mac host.

This behavior is non-hermetic, but matches the behavior of the C++
support. On Linux, using lld works, but on OSX, this fails because lld
does not support Apple's new .tbd files.

Bug: 155302034
Test: On both Linux and Mac hosts:
    cd external/rust; mma

Change-Id: I0ad489113d720bdb9c3b7a67cce9d1e72266f428
This commit is contained in:
Jeff Vander Stoep
2020-07-15 21:34:45 +02:00
parent ec7f59c7df
commit 6e97a7b4a1
3 changed files with 13 additions and 5 deletions

View File

@@ -54,6 +54,9 @@ var (
"-Wl,--pack-dyn-relocs=android+relr",
"-Wl,--no-undefined",
"-Wl,--hash-style=gnu",
"-B${ccConfig.ClangBin}",
"-fuse-ld=lld",
}
)
@@ -80,7 +83,7 @@ func init() {
pctx.ImportAs("ccConfig", "android/soong/cc/config")
pctx.StaticVariable("RustLinker", "${ccConfig.ClangBin}/clang++")
pctx.StaticVariable("RustLinkerArgs", "-B ${ccConfig.ClangBin} -fuse-ld=lld")
pctx.StaticVariable("RustLinkerArgs", "")
pctx.StaticVariable("DeviceGlobalLinkFlags", strings.Join(deviceGlobalLinkFlags, " "))

View File

@@ -22,7 +22,9 @@ import (
var (
DarwinRustFlags = []string{}
DarwinRustLinkFlags = []string{}
DarwinRustLinkFlags = []string{
"-B${ccConfig.MacToolPath}",
}
darwinX8664Rustflags = []string{}
darwinX8664Linkflags = []string{}
)

View File

@@ -22,7 +22,10 @@ import (
var (
LinuxRustFlags = []string{}
LinuxRustLinkFlags = []string{}
LinuxRustLinkFlags = []string{
"-B${ccConfig.ClangBin}",
"-fuse-ld=lld",
}
linuxX86Rustflags = []string{}
linuxX86Linkflags = []string{}
linuxX8664Rustflags = []string{}