diff options
Diffstat (limited to 'rust/config/global.go')
| -rw-r--r-- | rust/config/global.go | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/rust/config/global.go b/rust/config/global.go index 907316fab..93667ab6a 100644 --- a/rust/config/global.go +++ b/rust/config/global.go @@ -20,12 +20,13 @@ import ( "android/soong/android" _ "android/soong/cc/config" + "android/soong/remoteexec" ) var ( pctx = android.NewPackageContext("android/soong/rust/config") - RustDefaultVersion = "1.83.0" + RustDefaultVersion = "1.84.1" RustDefaultBase = "prebuilts/rust/" DefaultEdition = "2021" Stdlibs = []string{ @@ -48,7 +49,6 @@ var ( "-Z remap-cwd-prefix=.", "-C debuginfo=2", "-C opt-level=3", - "-C relocation-model=pic", "-C overflow-checks=on", "-C force-unwind-tables=yes", // Use v0 mangling to distinguish from C++ symbols @@ -60,7 +60,9 @@ var ( // cfg flag to indicate that we are building in AOSP with Soong "--cfg soong", } - + LinuxHostGlobalRustFlags = []string{ + "-C relocation-model=pic", + } LinuxHostGlobalLinkFlags = []string{ "-lc", "-lrt", @@ -77,11 +79,12 @@ var ( "-Z debug-info-for-profiling", // Android has ELF TLS on platform "-Z tls-model=global-dynamic", + "-C relocation-model=pic", } deviceGlobalLinkFlags = []string{ // Prepend the lld flags from cc_config so we stay in sync with cc - "${cc_config.DeviceGlobalLldflags}", + "${cc_config.DeviceGlobalLdflags}", // Override cc's --no-undefined-version to allow rustc's generated alloc functions "-Wl,--undefined-version", @@ -124,20 +127,40 @@ func init() { pctx.ImportAs("cc_config", "android/soong/cc/config") pctx.StaticVariable("ClangCmd", "${cc_config.ClangBin}/clang++") + pctx.StaticVariable("LlvmDlltool", "${cc_config.ClangBin}/llvm-dlltool") pctx.StaticVariable("DeviceGlobalLinkFlags", strings.Join(deviceGlobalLinkFlags, " ")) pctx.StaticVariable("RUST_DEFAULT_VERSION", RustDefaultVersion) pctx.StaticVariable("GLOBAL_RUSTC_FLAGS", strings.Join(GlobalRustFlags, " ")) pctx.StaticVariable("LINUX_HOST_GLOBAL_LINK_FLAGS", strings.Join(LinuxHostGlobalLinkFlags, " ")) + pctx.StaticVariable("LINUX_HOST_GLOBAL_RUST_FLAGS", strings.Join(LinuxHostGlobalRustFlags, " ")) pctx.StaticVariable("DEVICE_GLOBAL_RUSTC_FLAGS", strings.Join(deviceGlobalRustFlags, " ")) pctx.StaticVariable("DEVICE_GLOBAL_LINK_FLAGS", strings.Join(android.RemoveListFromList(deviceGlobalLinkFlags, []string{ // The cc_config flags are retrieved from cc_toolchain by rust rules. - "${cc_config.DeviceGlobalLldflags}", + "${cc_config.DeviceGlobalLdflags}", "-B${cc_config.ClangBin}", }), " ")) + + pctx.VariableFunc("RERustPool", func(ctx android.PackageVarContext) string { + var defaultPool, overrideEnv string + if ctx.Config().Eng() { + // eng uses codegen-units=16, which can take advantage of the larger java16 machines. + defaultPool = "java16" + overrideEnv = "RBE_RUST_ENG_POOL" + } else { + defaultPool = "default" + overrideEnv = "RBE_RUST_POOL" + } + if override := ctx.Config().Getenv(overrideEnv); override != "" { + return override + } + return defaultPool + }) + pctx.StaticVariableWithEnvOverride("RERustExecStrategy", "RBE_RUST_EXEC_STRATEGY", remoteexec.LocalExecStrategy) + } func HostPrebuiltTag(config android.Config) string { |
