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

View File

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

View File

@@ -21,8 +21,11 @@ import (
) )
var ( var (
LinuxRustFlags = []string{} LinuxRustFlags = []string{}
LinuxRustLinkFlags = []string{} LinuxRustLinkFlags = []string{
"-B${ccConfig.ClangBin}",
"-fuse-ld=lld",
}
linuxX86Rustflags = []string{} linuxX86Rustflags = []string{}
linuxX86Linkflags = []string{} linuxX86Linkflags = []string{}
linuxX8664Rustflags = []string{} linuxX8664Rustflags = []string{}