summaryrefslogtreecommitdiff
path: root/cc
diff options
context:
space:
mode:
Diffstat (limited to 'cc')
-rw-r--r--cc/afdo.go2
-rw-r--r--cc/api_level.go6
-rw-r--r--cc/binary.go4
-rw-r--r--cc/cc.go56
-rw-r--r--cc/fuzz.go2
-rw-r--r--cc/genrule_test.go40
-rw-r--r--cc/library.go18
-rw-r--r--cc/llndk_library.go39
-rw-r--r--cc/ndk_abi.go4
-rw-r--r--cc/ndk_sysroot.go2
-rw-r--r--cc/object.go4
-rw-r--r--cc/strip.go12
-rw-r--r--cc/test.go23
-rw-r--r--cc/tidy.go2
14 files changed, 174 insertions, 40 deletions
diff --git a/cc/afdo.go b/cc/afdo.go
index 1233e332e..9be39185c 100644
--- a/cc/afdo.go
+++ b/cc/afdo.go
@@ -108,6 +108,8 @@ func (afdo *afdo) flags(ctx ModuleContext, flags Flags) Flags {
// Salvage stale profile by fuzzy matching and use the remapped location for sample profile query.
flags.Local.CFlags = append([]string{"-mllvm", "--salvage-stale-profile=true"}, flags.Local.CFlags...)
flags.Local.CFlags = append([]string{"-mllvm", "--salvage-stale-profile-max-callsites=2000"}, flags.Local.CFlags...)
+ // Salvage stale profile by fuzzy matching renamed functions.
+ flags.Local.CFlags = append([]string{"-mllvm", "--salvage-unused-profile=true"}, flags.Local.CFlags...)
flags.Local.LdFlags = append([]string{profileUseFlag, "-Wl,-mllvm,-no-warn-sample-unused=true"}, flags.Local.LdFlags...)
// Update CFlagsDeps and LdFlagsDeps so the module is rebuilt
diff --git a/cc/api_level.go b/cc/api_level.go
index deca72366..fa8dfaf2f 100644
--- a/cc/api_level.go
+++ b/cc/api_level.go
@@ -31,11 +31,7 @@ func MinApiForArch(ctx android.EarlyModuleContext,
case android.Arm64, android.X86_64:
return android.FirstLp64Version
case android.Riscv64:
- apiLevel, err := android.ApiLevelFromUser(ctx, "VanillaIceCream")
- if err != nil {
- panic(err)
- }
- return apiLevel
+ return android.FutureApiLevel
default:
panic(fmt.Errorf("Unknown arch %q", arch))
}
diff --git a/cc/binary.go b/cc/binary.go
index 627d5e560..608251afc 100644
--- a/cc/binary.go
+++ b/cc/binary.go
@@ -551,6 +551,10 @@ func (binary *binaryDecorator) moduleInfoJSON(ctx ModuleContext, moduleInfoJSON
binary.baseLinker.moduleInfoJSON(ctx, moduleInfoJSON)
}
+func (binary *binaryDecorator) testSuiteInfo(ctx ModuleContext) {
+ // not a test
+}
+
var _ overridable = (*binaryDecorator)(nil)
func init() {
diff --git a/cc/cc.go b/cc/cc.go
index 4da110307..ae6f3b068 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -81,12 +81,13 @@ type LinkerInfo struct {
HeaderLibs []string
ImplementationModuleName *string
- BinaryDecoratorInfo *BinaryDecoratorInfo
- LibraryDecoratorInfo *LibraryDecoratorInfo
- TestBinaryInfo *TestBinaryInfo
- BenchmarkDecoratorInfo *BenchmarkDecoratorInfo
- ObjectLinkerInfo *ObjectLinkerInfo
- StubDecoratorInfo *StubDecoratorInfo
+ BinaryDecoratorInfo *BinaryDecoratorInfo
+ LibraryDecoratorInfo *LibraryDecoratorInfo
+ TestBinaryInfo *TestBinaryInfo
+ BenchmarkDecoratorInfo *BenchmarkDecoratorInfo
+ ObjectLinkerInfo *ObjectLinkerInfo
+ StubDecoratorInfo *StubDecoratorInfo
+ PrebuiltLibraryLinkerInfo *PrebuiltLibraryLinkerInfo
}
type BinaryDecoratorInfo struct{}
@@ -96,6 +97,7 @@ type LibraryDecoratorInfo struct {
// Location of the static library in the sysroot. Empty if the library is
// not included in the NDK.
NdkSysrootPath android.Path
+ VndkFileName string
}
type SnapshotInfo struct {
@@ -120,6 +122,10 @@ type ObjectLinkerInfo struct {
NdkSysrootPath android.Path
}
+type PrebuiltLibraryLinkerInfo struct {
+ VndkFileName string
+}
+
type LibraryInfo struct {
BuildStubs bool
}
@@ -128,6 +134,13 @@ type InstallerInfo struct {
StubDecoratorInfo *StubDecoratorInfo
}
+type LocalOrGlobalFlagsInfo struct {
+ CommonFlags []string // Flags that apply to C, C++, and assembly source files
+ CFlags []string // Flags that apply to C and C++ source files
+ ConlyFlags []string // Flags that apply to C source files
+ CppFlags []string // Flags that apply to C++ source files
+}
+
// Common info about the cc module.
type CcInfo struct {
IsPrebuilt bool
@@ -148,6 +161,7 @@ type LinkableInfo struct {
StaticExecutable bool
Static bool
Shared bool
+ Header bool
HasStubsVariants bool
StubsVersion string
IsStubs bool
@@ -195,7 +209,11 @@ type LinkableInfo struct {
APIListCoverageXMLPath android.ModuleOutPath
// FuzzSharedLibraries returns the shared library dependencies for this module.
// Expects that IsFuzzModule returns true.
- FuzzSharedLibraries android.RuleBuilderInstalls
+ FuzzSharedLibraries android.RuleBuilderInstalls
+ IsVndkPrebuiltLibrary bool
+ HasLLNDKStubs bool
+ IsLLNDKMovedToApex bool
+ ImplementationModuleName string
}
var LinkableInfoProvider = blueprint.NewProvider[*LinkableInfo]()
@@ -779,6 +797,8 @@ type linker interface {
defaultDistFiles() []android.Path
moduleInfoJSON(ctx ModuleContext, moduleInfoJSON *android.ModuleInfoJSON)
+
+ testSuiteInfo(ctx ModuleContext)
}
// specifiedDeps is a tuple struct representing dependencies of a linked binary owned by the linker.
@@ -2356,9 +2376,11 @@ func (c *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
case *binaryDecorator:
ccInfo.LinkerInfo.BinaryDecoratorInfo = &BinaryDecoratorInfo{}
case *libraryDecorator:
+ lk := c.linker.(*libraryDecorator)
ccInfo.LinkerInfo.LibraryDecoratorInfo = &LibraryDecoratorInfo{
- InjectBsslHash: Bool(c.linker.(*libraryDecorator).Properties.Inject_bssl_hash),
- NdkSysrootPath: c.linker.(*libraryDecorator).ndkSysrootPath,
+ InjectBsslHash: Bool(lk.Properties.Inject_bssl_hash),
+ NdkSysrootPath: lk.ndkSysrootPath,
+ VndkFileName: lk.getLibNameHelper(c.BaseModuleName(), true, false) + ".so",
}
case *testBinary:
ccInfo.LinkerInfo.TestBinaryInfo = &TestBinaryInfo{
@@ -2372,6 +2394,11 @@ func (c *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
}
case *stubDecorator:
ccInfo.LinkerInfo.StubDecoratorInfo = &StubDecoratorInfo{}
+ case *prebuiltLibraryLinker:
+ ccInfo.LinkerInfo.PrebuiltLibraryLinkerInfo = &PrebuiltLibraryLinkerInfo{
+ VndkFileName: c.linker.(*prebuiltLibraryLinker).getLibNameHelper(
+ c.BaseModuleName(), true, false) + ".so",
+ }
}
if s, ok := c.linker.(SnapshotInterface); ok {
@@ -2383,6 +2410,8 @@ func (c *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
name := v.ImplementationModuleName(ctx.OtherModuleName(c))
ccInfo.LinkerInfo.ImplementationModuleName = &name
}
+
+ c.linker.testSuiteInfo(ctx)
}
if c.library != nil {
ccInfo.LibraryInfo = &LibraryInfo{
@@ -2441,12 +2470,17 @@ func CreateCommonLinkableInfo(ctx android.ModuleContext, mod VersionedLinkableIn
Multilib: mod.Multilib(),
ImplementationModuleNameForMake: mod.ImplementationModuleNameForMake(),
Symlinks: mod.Symlinks(),
+ Header: mod.Header(),
+ IsVndkPrebuiltLibrary: mod.IsVndkPrebuiltLibrary(),
}
vi := mod.VersionedInterface()
if vi != nil {
info.IsStubsImplementationRequired = vi.IsStubsImplementationRequired()
info.APIListCoverageXMLPath = vi.GetAPIListCoverageXMLPath()
+ info.HasLLNDKStubs = vi.HasLLNDKStubs()
+ info.IsLLNDKMovedToApex = vi.IsLLNDKMovedToApex()
+ info.ImplementationModuleName = vi.ImplementationModuleName(mod.BaseModuleName())
}
if !mod.PreventInstall() && fuzz.IsValid(ctx, mod.FuzzModuleStruct()) && mod.IsFuzzModule() {
@@ -3388,7 +3422,7 @@ func (c *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
return
}
- commonInfo := android.OtherModuleProviderOrDefault(ctx, dep, android.CommonModuleInfoKey)
+ commonInfo := android.OtherModuleProviderOrDefault(ctx, dep, android.CommonModuleInfoProvider)
if commonInfo.Target.Os != ctx.Os() {
ctx.ModuleErrorf("OS mismatch between %q (%s) and %q (%s)", ctx.ModuleName(), ctx.Os().Name, depName, dep.Target().Os.Name)
return
@@ -3745,7 +3779,7 @@ func ShouldUseStubForApex(ctx android.ModuleContext, parent android.Module, dep
// platform APIs, use stubs only when it is from an APEX (and not from
// platform) However, for host, ramdisk, vendor_ramdisk, recovery or
// bootstrap modules, always link to non-stub variant
- isNotInPlatform := android.OtherModuleProviderOrDefault(ctx, dep, android.CommonModuleInfoKey).NotInPlatform
+ isNotInPlatform := android.OtherModuleProviderOrDefault(ctx, dep, android.CommonModuleInfoProvider).NotInPlatform
useStubs = isNotInPlatform && !bootstrap
} else {
diff --git a/cc/fuzz.go b/cc/fuzz.go
index 325354b16..ba343876f 100644
--- a/cc/fuzz.go
+++ b/cc/fuzz.go
@@ -486,7 +486,7 @@ func (s *ccRustFuzzPackager) GenerateBuildActions(ctx android.SingletonContext)
sharedLibsInstallDirPrefix = "lib/vendor"
}
- commonInfo := android.OtherModuleProviderOrDefault(ctx, module, android.CommonModuleInfoKey)
+ commonInfo := android.OtherModuleProviderOrDefault(ctx, module, android.CommonModuleInfoProvider)
isHost := commonInfo.Target.Os.Class == android.Host
hostOrTargetString := "target"
if commonInfo.Target.HostCross {
diff --git a/cc/genrule_test.go b/cc/genrule_test.go
index 438eb9880..4e700a2cd 100644
--- a/cc/genrule_test.go
+++ b/cc/genrule_test.go
@@ -17,6 +17,7 @@ package cc
import (
"reflect"
"slices"
+ "strings"
"testing"
"android/soong/android"
@@ -254,3 +255,42 @@ func TestMultilibGenruleOut(t *testing.T) {
gen_64bit,
)
}
+
+// Test that a genrule can depend on a tool with symlinks. The symlinks are ignored, but
+// at least it doesn't cause errors.
+func TestGenruleToolWithSymlinks(t *testing.T) {
+ bp := `
+ genrule {
+ name: "gen",
+ tools: ["tool_with_symlinks"],
+ cmd: "$(location tool_with_symlinks) $(in) $(out)",
+ out: ["out"],
+ }
+
+ cc_binary_host {
+ name: "tool_with_symlinks",
+ symlinks: ["symlink1", "symlink2"],
+ }
+ `
+ ctx := PrepareForIntegrationTestWithCc.
+ ExtendWithErrorHandler(android.FixtureExpectsNoErrors).
+ RunTestWithBp(t, bp)
+ gen := ctx.ModuleForTests(t, "gen", "").Output("out")
+ toolFound := false
+ symlinkFound := false
+ for _, dep := range gen.RuleParams.CommandDeps {
+ if strings.HasSuffix(dep, "/tool_with_symlinks") {
+ toolFound = true
+ }
+ if strings.HasSuffix(dep, "/symlink1") || strings.HasSuffix(dep, "/symlink2") {
+ symlinkFound = true
+ }
+ }
+ if !toolFound {
+ t.Errorf("Tool not found")
+ }
+ // We may want to change genrules to include symlinks later
+ if symlinkFound {
+ t.Errorf("Symlinks found")
+ }
+}
diff --git a/cc/library.go b/cc/library.go
index 8a2b6bdbd..5299771ca 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -606,10 +606,22 @@ func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps Pa
panic(err)
}
+ llndkFlag := "--llndk"
+ if ctx.baseModuleName() == "libbinder_ndk" && ctx.inProduct() {
+ // This is a special case only for the libbinder_ndk. As the product partition is in the
+ // framework side along with system and system_ext partitions in Treble, libbinder_ndk
+ // provides different binder interfaces between product and vendor modules.
+ // In libbinder_ndk, 'llndk' annotation is for the vendor APIs; while 'systemapi'
+ // annotation is for the product APIs.
+ // Use '--systemapi' flag for building the llndk stub of product variant for the
+ // libbinder_ndk.
+ llndkFlag = "--systemapi"
+ }
+
// This is the vendor variant of an LLNDK library, build the LLNDK stubs.
nativeAbiResult := ParseNativeAbiDefinition(ctx,
String(library.Properties.Llndk.Symbol_file),
- nativeClampedApiLevel(ctx, version), "--llndk")
+ nativeClampedApiLevel(ctx, version), llndkFlag)
objs := CompileStubLibrary(ctx, flags, nativeAbiResult.StubSrc, sharedFlags)
if !Bool(library.Properties.Llndk.Unversioned) {
library.versionScriptPath = android.OptionalPathForPath(
@@ -1066,6 +1078,10 @@ func (library *libraryDecorator) moduleInfoJSON(ctx ModuleContext, moduleInfoJSO
library.baseLinker.moduleInfoJSON(ctx, moduleInfoJSON)
}
+func (library *libraryDecorator) testSuiteInfo(ctx ModuleContext) {
+ // not a test
+}
+
func (library *libraryDecorator) linkStatic(ctx ModuleContext,
flags Flags, deps PathDeps, objs Objects) android.Path {
diff --git a/cc/llndk_library.go b/cc/llndk_library.go
index 8ca3ca184..b119fdac1 100644
--- a/cc/llndk_library.go
+++ b/cc/llndk_library.go
@@ -82,11 +82,10 @@ type movedToApexLlndkLibraries struct {
func (s *movedToApexLlndkLibraries) GenerateBuildActions(ctx android.SingletonContext) {
// Make uses LLNDK_MOVED_TO_APEX_LIBRARIES to generate the linker config.
movedToApexLlndkLibrariesMap := make(map[string]bool)
- ctx.VisitAllModules(func(module android.Module) {
- if library := moduleVersionedInterface(module); library != nil && library.HasLLNDKStubs() {
- if library.IsLLNDKMovedToApex() {
- name := library.ImplementationModuleName(module.(*Module).BaseModuleName())
- movedToApexLlndkLibrariesMap[name] = true
+ ctx.VisitAllModuleProxies(func(module android.ModuleProxy) {
+ if library, ok := android.OtherModuleProvider(ctx, module, LinkableInfoProvider); ok {
+ if library.HasLLNDKStubs && library.IsLLNDKMovedToApex {
+ movedToApexLlndkLibrariesMap[library.ImplementationModuleName] = true
}
}
})
@@ -151,14 +150,16 @@ func (txt *llndkLibrariesTxtModule) GenerateAndroidBuildActions(ctx android.Modu
etc.SetCommonPrebuiltEtcInfo(ctx, txt)
}
-func getVndkFileName(m *Module) (string, error) {
- if library, ok := m.linker.(*libraryDecorator); ok {
- return library.getLibNameHelper(m.BaseModuleName(), true, false) + ".so", nil
- }
- if prebuilt, ok := m.linker.(*prebuiltLibraryLinker); ok {
- return prebuilt.libraryDecorator.getLibNameHelper(m.BaseModuleName(), true, false) + ".so", nil
+func getVndkFileName(info *LinkerInfo) (string, error) {
+ if info != nil {
+ if info.LibraryDecoratorInfo != nil {
+ return info.LibraryDecoratorInfo.VndkFileName, nil
+ }
+ if info.PrebuiltLibraryLinkerInfo != nil {
+ return info.PrebuiltLibraryLinkerInfo.VndkFileName, nil
+ }
}
- return "", fmt.Errorf("VNDK library should have libraryDecorator or prebuiltLibraryLinker as linker: %T", m.linker)
+ return "", fmt.Errorf("VNDK library should have libraryDecorator or prebuiltLibraryLinker as linker: %T", info)
}
func (txt *llndkLibrariesTxtModule) GenerateSingletonBuildActions(ctx android.SingletonContext) {
@@ -167,9 +168,17 @@ func (txt *llndkLibrariesTxtModule) GenerateSingletonBuildActions(ctx android.Si
return
}
- ctx.VisitAllModules(func(m android.Module) {
- if c, ok := m.(*Module); ok && c.VendorProperties.IsLLNDK && !c.Header() && !c.IsVndkPrebuiltLibrary() {
- filename, err := getVndkFileName(c)
+ ctx.VisitAllModuleProxies(func(m android.ModuleProxy) {
+ ccInfo, ok := android.OtherModuleProvider(ctx, m, CcInfoProvider)
+ if !ok {
+ return
+ }
+ linkableInfo, ok := android.OtherModuleProvider(ctx, m, LinkableInfoProvider)
+ if !ok {
+ return
+ }
+ if linkableInfo.IsLlndk && !linkableInfo.Header && !linkableInfo.IsVndkPrebuiltLibrary {
+ filename, err := getVndkFileName(ccInfo.LinkerInfo)
if err != nil {
ctx.ModuleErrorf(m, "%s", err)
}
diff --git a/cc/ndk_abi.go b/cc/ndk_abi.go
index a9f26a40e..a59cc11eb 100644
--- a/cc/ndk_abi.go
+++ b/cc/ndk_abi.go
@@ -40,7 +40,7 @@ type ndkAbiDumpSingleton struct{}
func (n *ndkAbiDumpSingleton) GenerateBuildActions(ctx android.SingletonContext) {
var depPaths android.Paths
ctx.VisitAllModuleProxies(func(module android.ModuleProxy) {
- if !android.OtherModuleProviderOrDefault(ctx, module, android.CommonModuleInfoKey).Enabled {
+ if !android.OtherModuleProviderOrDefault(ctx, module, android.CommonModuleInfoProvider).Enabled {
return
}
@@ -78,7 +78,7 @@ type ndkAbiDiffSingleton struct{}
func (n *ndkAbiDiffSingleton) GenerateBuildActions(ctx android.SingletonContext) {
var depPaths android.Paths
ctx.VisitAllModuleProxies(func(module android.ModuleProxy) {
- if !android.OtherModuleProviderOrDefault(ctx, module, android.CommonModuleInfoKey).Enabled {
+ if !android.OtherModuleProviderOrDefault(ctx, module, android.CommonModuleInfoProvider).Enabled {
return
}
diff --git a/cc/ndk_sysroot.go b/cc/ndk_sysroot.go
index 34f6195a5..82a19d0d9 100644
--- a/cc/ndk_sysroot.go
+++ b/cc/ndk_sysroot.go
@@ -212,7 +212,7 @@ func (n *ndkSingleton) GenerateBuildActions(ctx android.SingletonContext) {
var licensePaths android.Paths
ctx.VisitAllModuleProxies(func(module android.ModuleProxy) {
- if !android.OtherModuleProviderOrDefault(ctx, module, android.CommonModuleInfoKey).Enabled {
+ if !android.OtherModuleProviderOrDefault(ctx, module, android.CommonModuleInfoProvider).Enabled {
return
}
diff --git a/cc/object.go b/cc/object.go
index 95a8beb52..ea3ed6151 100644
--- a/cc/object.go
+++ b/cc/object.go
@@ -250,3 +250,7 @@ func (object *objectLinker) moduleInfoJSON(ctx ModuleContext, moduleInfoJSON *an
object.baseLinker.moduleInfoJSON(ctx, moduleInfoJSON)
moduleInfoJSON.Class = []string{"STATIC_LIBRARIES"}
}
+
+func (object *objectLinker) testSuiteInfo(ctx ModuleContext) {
+ // not a test
+}
diff --git a/cc/strip.go b/cc/strip.go
index a950df898..42c9137b7 100644
--- a/cc/strip.go
+++ b/cc/strip.go
@@ -23,8 +23,9 @@ import (
// StripProperties defines the type of stripping applied to the module.
type StripProperties struct {
Strip struct {
- // Device and host modules default to stripping enabled leaving mini debuginfo.
- // This can be disabled by setting none to true.
+ // Device modules default to stripping enabled leaving mini debuginfo.
+ // Host modules default to stripping disabled, but can be enabled by setting any other
+ // strip boolean property.
None *bool `android:"arch_variant"`
// all forces stripping everything, including the mini debug info.
@@ -50,7 +51,12 @@ type Stripper struct {
// NeedsStrip determines if stripping is required for a module.
func (stripper *Stripper) NeedsStrip(actx android.ModuleContext) bool {
forceDisable := Bool(stripper.StripProperties.Strip.None)
- return !forceDisable
+ // Strip is enabled by default for device variants.
+ defaultEnable := actx.Device() || actx.Config().StripByDefault()
+ forceEnable := Bool(stripper.StripProperties.Strip.All) ||
+ Bool(stripper.StripProperties.Strip.Keep_symbols) ||
+ Bool(stripper.StripProperties.Strip.Keep_symbols_and_debug_frame)
+ return !forceDisable && (forceEnable || defaultEnable)
}
func (stripper *Stripper) strip(actx android.ModuleContext, in android.Path, out android.ModuleOutPath,
diff --git a/cc/test.go b/cc/test.go
index d2c4b28e8..9c276b81a 100644
--- a/cc/test.go
+++ b/cc/test.go
@@ -274,6 +274,12 @@ func (test *testDecorator) moduleInfoJSON(ctx android.ModuleContext, moduleInfoJ
}
}
+func (test *testDecorator) testSuiteInfo(ctx ModuleContext) {
+ android.SetProvider(ctx, android.TestSuiteInfoProvider, android.TestSuiteInfo{
+ TestSuites: test.InstallerProperties.Test_suites,
+ })
+}
+
func NewTestInstaller() *baseInstaller {
return NewBaseInstaller("nativetest", "nativetest64", InstallInData)
}
@@ -342,6 +348,10 @@ func (test *testBinary) moduleInfoJSON(ctx ModuleContext, moduleInfoJSON *androi
}
+func (test *testBinary) testSuiteInfo(ctx ModuleContext) {
+ test.testDecorator.testSuiteInfo(ctx)
+}
+
func (test *testBinary) installerProps() []interface{} {
return append(test.baseInstaller.installerProps(), test.testDecorator.installerProps()...)
}
@@ -455,6 +465,9 @@ func (test *testBinary) install(ctx ModuleContext, file android.Path) {
if standaloneTestDep.SkipInstall() {
continue
}
+ if standaloneTestDep.Partition() == "data" {
+ continue
+ }
test.binaryDecorator.baseInstaller.installStandaloneTestDep(ctx, standaloneTestDep)
}
}
@@ -575,6 +588,10 @@ func (test *testLibrary) moduleInfoJSON(ctx ModuleContext, moduleInfoJSON *andro
test.testDecorator.moduleInfoJSON(ctx, moduleInfoJSON)
}
+func (test *testLibrary) testSuiteInfo(ctx ModuleContext) {
+ test.testDecorator.testSuiteInfo(ctx)
+}
+
func (test *testLibrary) installerProps() []interface{} {
return append(test.baseInstaller.installerProps(), test.testDecorator.installerProps()...)
}
@@ -692,6 +709,12 @@ func (benchmark *benchmarkDecorator) moduleInfoJSON(ctx ModuleContext, moduleInf
}
}
+func (benchmark *benchmarkDecorator) testSuiteInfo(ctx ModuleContext) {
+ android.SetProvider(ctx, android.TestSuiteInfoProvider, android.TestSuiteInfo{
+ TestSuites: benchmark.Properties.Test_suites,
+ })
+}
+
func NewBenchmark(hod android.HostOrDeviceSupported) *Module {
module, binary := newBinary(hod)
module.multilib = android.MultilibBoth
diff --git a/cc/tidy.go b/cc/tidy.go
index 8e7f899a2..e8e1dc29d 100644
--- a/cc/tidy.go
+++ b/cc/tidy.go
@@ -220,7 +220,7 @@ func collectTidyObjModuleTargets(ctx android.SingletonContext, module android.Mo
// (1) Collect all obj/tidy files into OS-specific groups.
ctx.VisitAllModuleVariantProxies(module, func(variant android.ModuleProxy) {
- osName := android.OtherModuleProviderOrDefault(ctx, variant, android.CommonModuleInfoKey).Target.Os.Name
+ osName := android.OtherModuleProviderOrDefault(ctx, variant, android.CommonModuleInfoProvider).Target.Os.Name
info := android.OtherModuleProviderOrDefault(ctx, variant, CcObjectInfoProvider)
addToOSGroup(osName, info.ObjFiles, allObjFileGroups, subsetObjFileGroups)
addToOSGroup(osName, info.TidyFiles, allTidyFileGroups, subsetTidyFileGroups)