diff --git a/rust/compiler.go b/rust/compiler.go index 98a61af55..b3f574d57 100644 --- a/rust/compiler.go +++ b/rust/compiler.go @@ -330,14 +330,7 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags) Flag if ctx.Os() == android.Linux { // Add -lc, -lrt, -ldl, -lpthread, -lm and -lgcc_s to glibc builds to match // the default behavior of device builds. - flags.LinkFlags = append(flags.LinkFlags, - "-lc", - "-lrt", - "-ldl", - "-lpthread", - "-lm", - "-lgcc_s", - ) + flags.LinkFlags = append(flags.LinkFlags, config.LinuxHostGlobalLinkFlags...) } else if ctx.Os() == android.Darwin { // Add -lc, -ldl, -lpthread and -lm to glibc darwin builds to match the default // behavior of device builds. diff --git a/rust/config/global.go b/rust/config/global.go index f397ce90d..c37ac4e21 100644 --- a/rust/config/global.go +++ b/rust/config/global.go @@ -52,11 +52,22 @@ var ( "-C force-unwind-tables=yes", // Use v0 mangling to distinguish from C++ symbols "-C symbol-mangling-version=v0", - "--color always", + // This flag requires to have no space so that when it's exported to bazel + // it can be removed. See aosp/2768339 + "--color=always", "-Zdylib-lto", "-Z link-native-libraries=no", } + LinuxHostGlobalLinkFlags = []string{ + "-lc", + "-lrt", + "-ldl", + "-lpthread", + "-lm", + "-lgcc_s", + } + deviceGlobalRustFlags = []string{ "-C panic=abort", // Generate additional debug info for AutoFDO @@ -101,6 +112,8 @@ func init() { pctx.StaticVariable("DeviceGlobalLinkFlags", strings.Join(deviceGlobalLinkFlags, " ")) exportedVars.ExportStringStaticVariable("RUST_DEFAULT_VERSION", RustDefaultVersion) + exportedVars.ExportStringListStaticVariable("GLOBAL_RUSTC_FLAGS", GlobalRustFlags) + exportedVars.ExportStringListStaticVariable("LINUX_HOST_GLOBAL_LINK_FLAGS", LinuxHostGlobalLinkFlags) } func HostPrebuiltTag(config android.Config) string {