diff --git a/apex/apex_test.go b/apex/apex_test.go index c2378fc90..956b8d9fd 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -1355,12 +1355,9 @@ func TestApexDependsOnLLNDKTransitively(t *testing.T) { system_shared_libs: [], stl: "none", stubs: { versions: ["29","30"] }, - llndk_stubs: "libbar.llndk", - } - - llndk_library { - name: "libbar.llndk", - symbol_file: "", + llndk: { + symbol_file: "libbar.map.txt", + } } `, setUseVendorAllowListForTest([]string{"myapex"}), diff --git a/cc/androidmk.go b/cc/androidmk.go index 8f3a652e6..70b52597b 100644 --- a/cc/androidmk.go +++ b/cc/androidmk.go @@ -485,12 +485,6 @@ func (c *stubDecorator) AndroidMkEntries(ctx AndroidMkContext, entries *android. }) } -func (c *llndkStubDecorator) AndroidMkEntries(ctx AndroidMkContext, entries *android.AndroidMkEntries) { - // Don't write anything for an llndk_library module, the vendor variant of the cc_library - // module will write the Android.mk entries. - entries.Disabled = true -} - func (c *vndkPrebuiltLibraryDecorator) AndroidMkEntries(ctx AndroidMkContext, entries *android.AndroidMkEntries) { entries.Class = "SHARED_LIBRARIES" diff --git a/cc/cc.go b/cc/cc.go index c35f628b6..3ba5366d5 100644 --- a/cc/cc.go +++ b/cc/cc.go @@ -1121,13 +1121,6 @@ func (c *Module) IsLlndkPublic() bool { return c.VendorProperties.IsLLNDK && !c.VendorProperties.IsVNDKPrivate } -func (c *Module) IsLlndkLibrary() bool { - if _, ok := c.linker.(*llndkStubDecorator); ok { - return true - } - return false -} - func (m *Module) NeedsLlndkVariants() bool { lib := moduleLibraryInterface(m) return lib != nil && (lib.hasLLNDKStubs() || lib.hasLLNDKHeaders()) diff --git a/cc/cc_test.go b/cc/cc_test.go index 49fffc9b2..e9daf33fc 100644 --- a/cc/cc_test.go +++ b/cc/cc_test.go @@ -548,13 +548,10 @@ func TestVndk(t *testing.T) { cc_library { name: "libllndk", - llndk_stubs: "libllndk.llndk", - } - - llndk_library { - name: "libllndk.llndk", - symbol_file: "", - export_llndk_headers: ["libllndk_headers"], + llndk: { + symbol_file: "libllndk.map.txt", + export_llndk_headers: ["libllndk_headers"], + } } cc_library_headers { @@ -897,13 +894,10 @@ func TestVndkWhenVndkVersionIsNotSet(t *testing.T) { cc_library { name: "libllndk", - llndk_stubs: "libllndk.llndk", - } - - llndk_library { - name: "libllndk.llndk", - symbol_file: "", - export_llndk_headers: ["libllndk_headers"], + llndk: { + symbol_file: "libllndk.map.txt", + export_llndk_headers: ["libllndk_headers"], + } } cc_library_headers { @@ -1170,12 +1164,9 @@ func TestDoubleLoadbleDep(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libdoubleloadable"], - llndk_stubs: "libllndk.llndk", - } - - llndk_library { - name: "libllndk.llndk", - symbol_file: "", + llndk: { + symbol_file: "libllndk.map.txt", + } } cc_library { @@ -1193,12 +1184,9 @@ func TestDoubleLoadbleDep(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libvndksp"], - llndk_stubs: "libllndk.llndk", - } - - llndk_library { - name: "libllndk.llndk", - symbol_file: "", + llndk: { + symbol_file: "libllndk.map.txt", + } } cc_library { @@ -1255,12 +1243,9 @@ func TestDoubleLoadbleDep(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libcoreonly"], - llndk_stubs: "libllndk.llndk", - } - - llndk_library { - name: "libllndk.llndk", - symbol_file: "", + llndk: { + symbol_file: "libllndk.map.txt", + } } cc_library { @@ -1283,12 +1268,9 @@ func TestDoubleLoadableDepError(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libnondoubleloadable"], - llndk_stubs: "libllndk.llndk", - } - - llndk_library { - name: "libllndk.llndk", - symbol_file: "", + llndk: { + symbol_file: "libllndk.map.txt", + } } cc_library { @@ -1307,12 +1289,9 @@ func TestDoubleLoadableDepError(t *testing.T) { name: "libllndk", no_libcrt: true, shared_libs: ["libnondoubleloadable"], - llndk_stubs: "libllndk.llndk", - } - - llndk_library { - name: "libllndk.llndk", - symbol_file: "", + llndk: { + symbol_file: "libllndk.map.txt", + } } cc_library { @@ -1326,12 +1305,9 @@ func TestDoubleLoadableDepError(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libcoreonly"], - llndk_stubs: "libllndk.llndk", - } - - llndk_library { - name: "libllndk.llndk", - symbol_file: "", + llndk: { + symbol_file: "libllndk.map.txt", + } } cc_library { @@ -1357,11 +1333,9 @@ func TestDoubleLoadableDepError(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libnondoubleloadable"], - llndk_stubs: "libllndk.llndk", - } - llndk_library { - name: "libllndk.llndk", - symbol_file: "", + llndk: { + symbol_file: "libllndk.map.txt", + } } cc_library { name: "libnondoubleloadable", @@ -1388,11 +1362,6 @@ func TestCheckVndkMembershipBeforeDoubleLoadable(t *testing.T) { shared_libs: ["libanothervndksp"], } - llndk_library { - name: "libllndk", - symbol_file: "", - } - cc_library { name: "libanothervndksp", vendor_available: true, @@ -2158,11 +2127,9 @@ func TestEnforceProductVndkVersion(t *testing.T) { bp := ` cc_library { name: "libllndk", - llndk_stubs: "libllndk.llndk", - } - llndk_library { - name: "libllndk.llndk", - symbol_file: "", + llndk: { + symbol_file: "libllndk.map.txt", + } } cc_library { name: "libvndk", @@ -2436,20 +2403,16 @@ func TestMakeLinkType(t *testing.T) { } cc_library { name: "libllndk", - llndk_stubs: "libllndk.llndk", - } - llndk_library { - name: "libllndk.llndk", - symbol_file: "", + llndk: { + symbol_file: "libllndk.map.txt", + } } cc_library { name: "libllndkprivate", - llndk_stubs: "libllndkprivate.llndk", - } - llndk_library { - name: "libllndkprivate.llndk", - private: true, - symbol_file: "", + llndk: { + symbol_file: "libllndkprivate.map.txt", + private: true, + } } llndk_libraries_txt { @@ -2769,68 +2732,6 @@ func checkEquals(t *testing.T, message string, expected, actual interface{}) { } func TestLlndkLibrary(t *testing.T) { - ctx := testCc(t, ` - cc_library { - name: "libllndk", - stubs: { versions: ["1", "2"] }, - llndk_stubs: "libllndk.llndk", - } - llndk_library { - name: "libllndk.llndk", - } - - cc_prebuilt_library_shared { - name: "libllndkprebuilt", - stubs: { versions: ["1", "2"] }, - llndk_stubs: "libllndkprebuilt.llndk", - } - llndk_library { - name: "libllndkprebuilt.llndk", - } - - cc_library { - name: "libllndk_with_external_headers", - stubs: { versions: ["1", "2"] }, - llndk_stubs: "libllndk_with_external_headers.llndk", - header_libs: ["libexternal_headers"], - export_header_lib_headers: ["libexternal_headers"], - } - llndk_library { - name: "libllndk_with_external_headers.llndk", - } - cc_library_headers { - name: "libexternal_headers", - export_include_dirs: ["include"], - vendor_available: true, - } - `) - actual := ctx.ModuleVariantsForTests("libllndk") - for i := 0; i < len(actual); i++ { - if !strings.HasPrefix(actual[i], "android_vendor.29_") { - actual = append(actual[:i], actual[i+1:]...) - i-- - } - } - expected := []string{ - "android_vendor.29_arm64_armv8-a_shared_1", - "android_vendor.29_arm64_armv8-a_shared_2", - "android_vendor.29_arm64_armv8-a_shared_current", - "android_vendor.29_arm64_armv8-a_shared", - "android_vendor.29_arm_armv7-a-neon_shared_1", - "android_vendor.29_arm_armv7-a-neon_shared_2", - "android_vendor.29_arm_armv7-a-neon_shared_current", - "android_vendor.29_arm_armv7-a-neon_shared", - } - checkEquals(t, "variants for llndk stubs", expected, actual) - - params := ctx.ModuleForTests("libllndk", "android_vendor.29_arm_armv7-a-neon_shared").Description("generate stub") - checkEquals(t, "use VNDK version for default stubs", "current", params.Args["apiLevel"]) - - params = ctx.ModuleForTests("libllndk", "android_vendor.29_arm_armv7-a-neon_shared_1").Description("generate stub") - checkEquals(t, "override apiLevel for versioned stubs", "1", params.Args["apiLevel"]) -} - -func TestEmbeddedLlndkLibrary(t *testing.T) { result := prepareForCcTest.RunTestWithBp(t, ` cc_library { name: "libllndk", diff --git a/cc/image.go b/cc/image.go index 66b02d9ce..5593afce1 100644 --- a/cc/image.go +++ b/cc/image.go @@ -437,15 +437,11 @@ func MutateImage(mctx android.BaseModuleContext, m ImageMutatableModule) { productVndkVersion = platformVndkVersion } - if m.IsLlndkLibrary() || m.NeedsLlndkVariants() { + if m.NeedsLlndkVariants() { // This is an LLNDK library. The implementation of the library will be on /system, // and vendor and product variants will be created with LLNDK stubs. // The LLNDK libraries need vendor variants even if there is no VNDK. - // The obsolete llndk_library and llndk_headers modules also need the vendor variants - // so the cc_library LLNDK stubs can depend on them. - if m.NeedsLlndkVariants() { - coreVariantNeeded = true - } + coreVariantNeeded = true if platformVndkVersion != "" { vendorVariants = append(vendorVariants, platformVndkVersion) productVariants = append(productVariants, platformVndkVersion) diff --git a/cc/library.go b/cc/library.go index 73215edf9..3a70765da 100644 --- a/cc/library.go +++ b/cc/library.go @@ -117,9 +117,6 @@ type LibraryProperties struct { // Inject boringssl hash into the shared library. This is only intended for use by external/boringssl. Inject_bssl_hash *bool `android:"arch_variant"` - // If this is an LLNDK library, the name of the equivalent llndk_library module. - Llndk_stubs *string - // If this is an LLNDK library, properties to describe the LLNDK stubs. Will be copied from // the module pointed to by llndk_stubs if it is set. Llndk llndkLibraryProperties @@ -1682,18 +1679,10 @@ func (library *libraryDecorator) HeaderOnly() { // hasLLNDKStubs returns true if this cc_library module has a variant that will build LLNDK stubs. func (library *libraryDecorator) hasLLNDKStubs() bool { - return library.hasVestigialLLNDKLibrary() || String(library.Properties.Llndk.Symbol_file) != "" + return String(library.Properties.Llndk.Symbol_file) != "" } -// hasVestigialLLNDKLibrary returns true if this cc_library module has a corresponding llndk_library -// module containing properties describing the LLNDK variant. -// TODO(b/170784825): remove this once there are no more llndk_library modules. -func (library *libraryDecorator) hasVestigialLLNDKLibrary() bool { - return String(library.Properties.Llndk_stubs) != "" -} - -// hasLLNDKHeaders returns true if this cc_library module has a variant that provides headers -// to a module that sets llndk.symbol_file. +// hasLLNDKStubs returns true if this cc_library module has a variant that will build LLNDK stubs. func (library *libraryDecorator) hasLLNDKHeaders() bool { return Bool(library.Properties.Llndk.Llndk_headers) } @@ -1934,9 +1923,7 @@ func LinkageMutator(mctx android.BottomUpMutatorContext) { isLLNDK := false if m, ok := mctx.Module().(*Module); ok { - // Don't count the vestigial llndk_library module as isLLNDK, it needs a static - // variant so that a cc_library_prebuilt can depend on it. - isLLNDK = m.IsLlndk() && !isVestigialLLNDKModule(m) + isLLNDK = m.IsLlndk() } buildStatic := library.BuildStaticVariant() && !isLLNDK buildShared := library.BuildSharedVariant() diff --git a/cc/linkable.go b/cc/linkable.go index 7b5b4468b..17526b4f9 100644 --- a/cc/linkable.go +++ b/cc/linkable.go @@ -106,9 +106,6 @@ type LinkableInterface interface { // IsLlndkPublic returns true only for LLNDK (public) libs. IsLlndkPublic() bool - // IsLlndkLibrary returns true if this module is an LLNDK library module. - IsLlndkLibrary() bool - // NeedsLlndkVariants returns true if this module has LLNDK stubs or provides LLNDK headers. NeedsLlndkVariants() bool diff --git a/cc/llndk_library.go b/cc/llndk_library.go index 88f3118c8..c30741078 100644 --- a/cc/llndk_library.go +++ b/cc/llndk_library.go @@ -14,31 +14,12 @@ package cc -import ( - "strings" - - "android/soong/android" -) - var ( llndkLibrarySuffix = ".llndk" llndkHeadersSuffix = ".llndk" ) // Holds properties to describe a stub shared library based on the provided version file. -// The stub library will actually be built by the cc_library module that points to this -// module with the llndk_stubs property. -// TODO(ccross): move the properties from llndk_library modules directly into the cc_library -// modules and remove the llndk_library modules. -// -// Example: -// -// llndk_library { -// name: "libfoo", -// symbol_file: "libfoo.map.txt", -// export_include_dirs: ["include_vndk"], -// } -// type llndkLibraryProperties struct { // Relative path to the symbol map. // An example file can be seen here: TODO(danalbert): Make an example. @@ -74,98 +55,3 @@ type llndkLibraryProperties struct { // llndk.symbol_file. Llndk_headers *bool } - -type llndkStubDecorator struct { - *libraryDecorator - - Properties llndkLibraryProperties -} - -var _ versionedInterface = (*llndkStubDecorator)(nil) - -func (stub *llndkStubDecorator) compilerFlags(ctx ModuleContext, flags Flags, deps PathDeps) Flags { - return flags -} - -func (stub *llndkStubDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) Objects { - return Objects{} -} - -func (stub *llndkStubDecorator) linkerDeps(ctx DepsContext, deps Deps) Deps { - return deps -} - -func (stub *llndkStubDecorator) Name(name string) string { - if strings.HasSuffix(name, llndkLibrarySuffix) { - return name - } - return name + llndkLibrarySuffix -} - -func (stub *llndkStubDecorator) linkerProps() []interface{} { - props := stub.libraryDecorator.linkerProps() - return append(props, &stub.Properties) -} - -func (stub *llndkStubDecorator) linkerFlags(ctx ModuleContext, flags Flags) Flags { - stub.libraryDecorator.libName = stub.implementationModuleName(ctx.ModuleName()) - return stub.libraryDecorator.linkerFlags(ctx, flags) -} - -func (stub *llndkStubDecorator) link(ctx ModuleContext, flags Flags, deps PathDeps, - objs Objects) android.Path { - return nil -} - -func (stub *llndkStubDecorator) nativeCoverage() bool { - return false -} - -func (stub *llndkStubDecorator) implementationModuleName(name string) string { - return strings.TrimSuffix(name, llndkLibrarySuffix) -} - -func (stub *llndkStubDecorator) buildStubs() bool { - return true -} - -func NewLLndkStubLibrary() *Module { - module, library := NewLibrary(android.DeviceSupported) - module.stl = nil - module.sanitize = nil - library.disableStripping() - - stub := &llndkStubDecorator{ - libraryDecorator: library, - } - module.compiler = stub - module.linker = stub - module.installer = nil - module.library = stub - - return module -} - -// llndk_library creates a stub llndk shared library based on the provided -// version file. Example: -// -// llndk_library { -// name: "libfoo", -// symbol_file: "libfoo.map.txt", -// export_include_dirs: ["include_vndk"], -// } -func LlndkLibraryFactory() android.Module { - module := NewLLndkStubLibrary() - return module.Init() -} - -// isVestigialLLNDKModule returns true if m is a vestigial llndk_library module used to provide -// properties to the LLNDK variant of a cc_library. -func isVestigialLLNDKModule(m *Module) bool { - _, ok := m.linker.(*llndkStubDecorator) - return ok -} - -func init() { - android.RegisterModuleType("llndk_library", LlndkLibraryFactory) -} diff --git a/cc/stub_library.go b/cc/stub_library.go index 81c8be783..1722c8096 100644 --- a/cc/stub_library.go +++ b/cc/stub_library.go @@ -31,20 +31,7 @@ type stubLibraries struct { // Check if the module defines stub, or itself is stub func IsStubTarget(m *Module) bool { - if m.IsStubs() || m.HasStubsVariants() { - return true - } - - // Library which defines LLNDK Stub is also Stub target. - // Pure LLNDK Stub target would not contain any packaging - // with target file path. - if library, ok := m.linker.(*libraryDecorator); ok { - if library.Properties.Llndk_stubs != nil { - return true - } - } - - return false + return m.IsStubs() || m.HasStubsVariants() } // Get target file name to be installed from this module diff --git a/cc/testing.go b/cc/testing.go index bf89f627d..ca6a0fade 100644 --- a/cc/testing.go +++ b/cc/testing.go @@ -27,7 +27,6 @@ func RegisterRequiredBuildComponentsForTest(ctx android.RegistrationContext) { RegisterLibraryHeadersBuildComponents(ctx) ctx.RegisterModuleType("toolchain_library", ToolchainLibraryFactory) - ctx.RegisterModuleType("llndk_library", LlndkLibraryFactory) ctx.RegisterModuleType("cc_benchmark", BenchmarkFactory) ctx.RegisterModuleType("cc_object", ObjectFactory) ctx.RegisterModuleType("cc_genrule", genRuleFactory) @@ -200,12 +199,9 @@ func commonDefaultModules() string { stubs: { versions: ["27", "28", "29"], }, - llndk_stubs: "libc.llndk", - } - llndk_library { - name: "libc.llndk", - symbol_file: "", - sdk_version: "current", + llndk: { + symbol_file: "libc.map.txt", + }, } cc_library { name: "libm", @@ -222,12 +218,9 @@ func commonDefaultModules() string { "//apex_available:platform", "myapex" ], - llndk_stubs: "libm.llndk", - } - llndk_library { - name: "libm.llndk", - symbol_file: "", - sdk_version: "current", + llndk: { + symbol_file: "libm.map.txt", + }, } // Coverage libraries @@ -289,12 +282,9 @@ func commonDefaultModules() string { "//apex_available:platform", "myapex" ], - llndk_stubs: "libdl.llndk", - } - llndk_library { - name: "libdl.llndk", - symbol_file: "", - sdk_version: "current", + llndk: { + symbol_file: "libdl.map.txt", + }, } cc_library { name: "libft2", @@ -302,13 +292,10 @@ func commonDefaultModules() string { nocrt: true, system_shared_libs: [], recovery_available: true, - llndk_stubs: "libft2.llndk", - } - llndk_library { - name: "libft2.llndk", - symbol_file: "", - private: true, - sdk_version: "current", + llndk: { + symbol_file: "libft2.map.txt", + private: true, + } } cc_library { name: "libc++_static", diff --git a/cc/vendor_snapshot.go b/cc/vendor_snapshot.go index c0082fb3a..9ad51ad77 100644 --- a/cc/vendor_snapshot.go +++ b/cc/vendor_snapshot.go @@ -184,9 +184,6 @@ func isSnapshotAware(cfg android.DeviceConfig, m *Module, inProprietaryPath bool if m.IsLlndk() { return false } - if _, ok := m.linker.(*llndkStubDecorator); ok { - return false - } // Libraries if l, ok := m.linker.(snapshotLibraryInterface); ok { diff --git a/cc/vendor_snapshot_test.go b/cc/vendor_snapshot_test.go index 66396f749..fddd72aa1 100644 --- a/cc/vendor_snapshot_test.go +++ b/cc/vendor_snapshot_test.go @@ -78,14 +78,12 @@ func TestVendorSnapshotCapture(t *testing.T) { cc_library { name: "libllndk", - llndk_stubs: "libllndk.llndk", - } - - llndk_library { - name: "libllndk.llndk", - symbol_file: "", + llndk: { + symbol_file: "libllndk.map.txt", + }, } ` + config := TestConfig(t.TempDir(), android.Android, nil, bp, nil) config.TestProductVariables.DeviceVndkVersion = StringPtr("current") config.TestProductVariables.Platform_vndk_version = StringPtr("29") diff --git a/cc/vndk.go b/cc/vndk.go index e224e6673..8b3788bbb 100644 --- a/cc/vndk.go +++ b/cc/vndk.go @@ -233,11 +233,11 @@ func vndkIsVndkDepAllowed(from *vndkdep, to *vndkdep) error { type moduleListerFunc func(ctx android.SingletonContext) (moduleNames, fileNames []string) var ( - llndkLibraries = vndkModuleLister(func(m *Module) bool { return m.VendorProperties.IsLLNDK && !isVestigialLLNDKModule(m) && !m.Header() }) + llndkLibraries = vndkModuleLister(func(m *Module) bool { return m.VendorProperties.IsLLNDK && !m.Header() }) llndkLibrariesWithoutHWASAN = vndkModuleListRemover(llndkLibraries, "libclang_rt.hwasan-") vndkSPLibraries = vndkModuleLister(func(m *Module) bool { return m.VendorProperties.IsVNDKSP }) vndkCoreLibraries = vndkModuleLister(func(m *Module) bool { return m.VendorProperties.IsVNDKCore }) - vndkPrivateLibraries = vndkModuleLister(func(m *Module) bool { return m.VendorProperties.IsVNDKPrivate && !isVestigialLLNDKModule(m) }) + vndkPrivateLibraries = vndkModuleLister(func(m *Module) bool { return m.VendorProperties.IsVNDKPrivate }) vndkProductLibraries = vndkModuleLister(func(m *Module) bool { return m.VendorProperties.IsVNDKProduct }) vndkUsingCoreVariantLibraries = vndkModuleLister(func(m *Module) bool { return m.VendorProperties.IsVNDKUsingCoreVariant }) ) @@ -298,15 +298,6 @@ func setVndkMustUseVendorVariantListForTest(config android.Config, mustUseVendor }) } -func processLlndkLibrary(mctx android.BottomUpMutatorContext, m *Module) { - lib := m.linker.(*llndkStubDecorator) - - m.VendorProperties.IsLLNDK = true - if Bool(lib.Properties.Private) { - m.VendorProperties.IsVNDKPrivate = true - } -} - func processVndkLibrary(mctx android.BottomUpMutatorContext, m *Module) { if m.InProduct() { // We may skip the steps for the product variants because they @@ -402,41 +393,14 @@ func VndkMutator(mctx android.BottomUpMutatorContext) { return } - if _, ok := m.linker.(*llndkStubDecorator); ok { - processLlndkLibrary(mctx, m) - return - } - - // This is a temporary measure to copy the properties from an llndk_library into the cc_library - // that will actually build the stubs. It will be removed once the properties are moved into - // the cc_library in the Android.bp files. - mergeLLNDKToLib := func(llndk *Module, llndkProperties *llndkLibraryProperties, flagExporter *flagExporter) { - if llndkLib := moduleLibraryInterface(llndk); llndkLib != nil { - *llndkProperties = llndkLib.(*llndkStubDecorator).Properties - flagExporter.Properties = llndkLib.(*llndkStubDecorator).flagExporter.Properties - - m.VendorProperties.IsLLNDK = llndk.VendorProperties.IsLLNDK - m.VendorProperties.IsVNDKPrivate = llndk.VendorProperties.IsVNDKPrivate - } - } - lib, isLib := m.linker.(*libraryDecorator) prebuiltLib, isPrebuiltLib := m.linker.(*prebuiltLibraryLinker) - if m.UseVndk() && isLib && lib.hasVestigialLLNDKLibrary() { - llndk := mctx.AddVariationDependencies(nil, llndkStubDepTag, String(lib.Properties.Llndk_stubs)) - mergeLLNDKToLib(llndk[0].(*Module), &lib.Properties.Llndk, &lib.flagExporter) - } - if m.UseVndk() && isPrebuiltLib && prebuiltLib.hasVestigialLLNDKLibrary() { - llndk := mctx.AddVariationDependencies(nil, llndkStubDepTag, String(prebuiltLib.Properties.Llndk_stubs)) - mergeLLNDKToLib(llndk[0].(*Module), &prebuiltLib.Properties.Llndk, &prebuiltLib.flagExporter) - } - - if m.UseVndk() && isLib && lib.hasLLNDKStubs() && !lib.hasVestigialLLNDKLibrary() { + if m.UseVndk() && isLib && lib.hasLLNDKStubs() { m.VendorProperties.IsLLNDK = true m.VendorProperties.IsVNDKPrivate = Bool(lib.Properties.Llndk.Private) } - if m.UseVndk() && isPrebuiltLib && prebuiltLib.hasLLNDKStubs() && !prebuiltLib.hasVestigialLLNDKLibrary() { + if m.UseVndk() && isPrebuiltLib && prebuiltLib.hasLLNDKStubs() { m.VendorProperties.IsLLNDK = true m.VendorProperties.IsVNDKPrivate = Bool(prebuiltLib.Properties.Llndk.Private) } @@ -874,9 +838,6 @@ func getVndkFileName(m *Module) (string, error) { if prebuilt, ok := m.linker.(*prebuiltLibraryLinker); ok { return prebuilt.libraryDecorator.getLibNameHelper(m.BaseModuleName(), true, false) + ".so", nil } - if library, ok := m.linker.(*llndkStubDecorator); ok { - return library.getLibNameHelper(m.BaseModuleName(), true, false) + ".so", nil - } return "", fmt.Errorf("VNDK library should have libraryDecorator or prebuiltLibraryLinker as linker: %T", m.linker) } diff --git a/rust/rust.go b/rust/rust.go index 74d282864..3dcd45910 100644 --- a/rust/rust.go +++ b/rust/rust.go @@ -262,10 +262,6 @@ func (c *Module) IsLlndkPublic() bool { return false } -func (m *Module) IsLlndkLibrary() bool { - return false -} - func (mod *Module) KernelHeadersDecorator() bool { return false } diff --git a/sysprop/sysprop_test.go b/sysprop/sysprop_test.go index 6d35f9cd6..f935f062e 100644 --- a/sysprop/sysprop_test.go +++ b/sysprop/sysprop_test.go @@ -52,12 +52,9 @@ func test(t *testing.T, bp string) *android.TestResult { system_shared_libs: [], recovery_available: true, host_supported: true, - llndk_stubs: "liblog.llndk", - } - - llndk_library { - name: "liblog.llndk", - symbol_file: "", + llndk: { + symbol_file: "liblog.map.txt", + } } java_library {