rust: Remove libtest from stdlibs list

libtest does not need to be linked for every module type, so remove it
from the stdlibs list. Instead, link it only when building benchmarks or
tests.

Bug: 193782599
Test: cd external/rust/crates/; mma
Test: Rust tests still run correctly.
Merged-In: I536be8754da0987e09340744d9ebf668b8e734d0
Change-Id: I536be8754da0987e09340744d9ebf668b8e734d0
This commit is contained in:
Ivan Lozano 2021-07-15 15:44:10 -04:00 committed by Jorge Moreira Broche
parent 9db406c811
commit b7de10739f
4 changed files with 9 additions and 3 deletions

View File

@ -101,6 +101,7 @@ func (benchmark *benchmarkDecorator) compilerFlags(ctx ModuleContext, flags Flag
func (benchmark *benchmarkDecorator) compilerDeps(ctx DepsContext, deps Deps) Deps { func (benchmark *benchmarkDecorator) compilerDeps(ctx DepsContext, deps Deps) Deps {
deps = benchmark.binaryDecorator.compilerDeps(ctx, deps) deps = benchmark.binaryDecorator.compilerDeps(ctx, deps)
deps.Rustlibs = append(deps.Rustlibs, "libtest")
deps.Rustlibs = append(deps.Rustlibs, "libcriterion") deps.Rustlibs = append(deps.Rustlibs, "libcriterion")
return deps return deps

View File

@ -29,7 +29,6 @@ var (
DefaultEdition = "2018" DefaultEdition = "2018"
Stdlibs = []string{ Stdlibs = []string{
"libstd", "libstd",
"libtest",
} }
// Mapping between Soong internal arch types and std::env constants. // Mapping between Soong internal arch types and std::env constants.

View File

@ -169,3 +169,11 @@ func RustTestHostFactory() android.Module {
func (test *testDecorator) stdLinkage(ctx *depsContext) RustLinkage { func (test *testDecorator) stdLinkage(ctx *depsContext) RustLinkage {
return RlibLinkage return RlibLinkage
} }
func (test *testDecorator) compilerDeps(ctx DepsContext, deps Deps) Deps {
deps = test.binaryDecorator.compilerDeps(ctx, deps)
deps.Rustlibs = append(deps.Rustlibs, "libtest")
return deps
}

View File

@ -162,12 +162,10 @@ func GatherRequiredDepsForTest() string {
name: "libtest", name: "libtest",
crate_name: "test", crate_name: "test",
srcs: ["foo.rs"], srcs: ["foo.rs"],
no_stdlibs: true,
host_supported: true, host_supported: true,
vendor_available: true, vendor_available: true,
vendor_ramdisk_available: true, vendor_ramdisk_available: true,
native_coverage: false, native_coverage: false,
sysroot: true,
apex_available: ["//apex_available:platform", "//apex_available:anyapex"], apex_available: ["//apex_available:platform", "//apex_available:anyapex"],
min_sdk_version: "29", min_sdk_version: "29",
} }