Loading apex/apex_test.go +3 −6 Original line number Diff line number Diff line Loading @@ -1355,12 +1355,9 @@ func TestApexDependsOnLLNDKTransitively(t *testing.T) { system_shared_libs: [], stl: "none", stubs: { versions: ["29","30"] }, llndk_stubs: "libbar.llndk", llndk: { symbol_file: "libbar.map.txt", } llndk_library { name: "libbar.llndk", symbol_file: "", } `, setUseVendorAllowListForTest([]string{"myapex"}), Loading cc/androidmk.go +0 −6 Original line number Diff line number Diff line Loading @@ -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" Loading cc/cc.go +0 −7 Original line number Diff line number Diff line Loading @@ -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()) Loading cc/cc_test.go +39 −138 Original line number Diff line number Diff line Loading @@ -548,14 +548,11 @@ func TestVndk(t *testing.T) { cc_library { name: "libllndk", llndk_stubs: "libllndk.llndk", } llndk_library { name: "libllndk.llndk", symbol_file: "", llndk: { symbol_file: "libllndk.map.txt", export_llndk_headers: ["libllndk_headers"], } } cc_library_headers { name: "libllndk_headers", Loading Loading @@ -897,14 +894,11 @@ func TestVndkWhenVndkVersionIsNotSet(t *testing.T) { cc_library { name: "libllndk", llndk_stubs: "libllndk.llndk", } llndk_library { name: "libllndk.llndk", symbol_file: "", llndk: { symbol_file: "libllndk.map.txt", export_llndk_headers: ["libllndk_headers"], } } cc_library_headers { name: "libllndk_headers", Loading Loading @@ -1170,12 +1164,9 @@ func TestDoubleLoadbleDep(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libdoubleloadable"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { Loading @@ -1193,12 +1184,9 @@ func TestDoubleLoadbleDep(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libvndksp"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { Loading Loading @@ -1255,12 +1243,9 @@ func TestDoubleLoadbleDep(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libcoreonly"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { Loading @@ -1283,12 +1268,9 @@ func TestDoubleLoadableDepError(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libnondoubleloadable"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { Loading @@ -1307,12 +1289,9 @@ func TestDoubleLoadableDepError(t *testing.T) { name: "libllndk", no_libcrt: true, shared_libs: ["libnondoubleloadable"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { Loading @@ -1326,12 +1305,9 @@ func TestDoubleLoadableDepError(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libcoreonly"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { Loading @@ -1357,11 +1333,9 @@ func TestDoubleLoadableDepError(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libnondoubleloadable"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { name: "libnondoubleloadable", Loading @@ -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, Loading Loading @@ -2158,11 +2127,9 @@ func TestEnforceProductVndkVersion(t *testing.T) { bp := ` cc_library { name: "libllndk", llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { name: "libvndk", Loading Loading @@ -2436,20 +2403,16 @@ func TestMakeLinkType(t *testing.T) { } cc_library { name: "libllndk", llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { name: "libllndkprivate", llndk_stubs: "libllndkprivate.llndk", } llndk_library { name: "libllndkprivate.llndk", llndk: { symbol_file: "libllndkprivate.map.txt", private: true, symbol_file: "", } } llndk_libraries_txt { Loading Loading @@ -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", Loading cc/image.go +2 −6 Original line number Diff line number Diff line Loading @@ -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 } if platformVndkVersion != "" { vendorVariants = append(vendorVariants, platformVndkVersion) productVariants = append(productVariants, platformVndkVersion) Loading Loading
apex/apex_test.go +3 −6 Original line number Diff line number Diff line Loading @@ -1355,12 +1355,9 @@ func TestApexDependsOnLLNDKTransitively(t *testing.T) { system_shared_libs: [], stl: "none", stubs: { versions: ["29","30"] }, llndk_stubs: "libbar.llndk", llndk: { symbol_file: "libbar.map.txt", } llndk_library { name: "libbar.llndk", symbol_file: "", } `, setUseVendorAllowListForTest([]string{"myapex"}), Loading
cc/androidmk.go +0 −6 Original line number Diff line number Diff line Loading @@ -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" Loading
cc/cc.go +0 −7 Original line number Diff line number Diff line Loading @@ -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()) Loading
cc/cc_test.go +39 −138 Original line number Diff line number Diff line Loading @@ -548,14 +548,11 @@ func TestVndk(t *testing.T) { cc_library { name: "libllndk", llndk_stubs: "libllndk.llndk", } llndk_library { name: "libllndk.llndk", symbol_file: "", llndk: { symbol_file: "libllndk.map.txt", export_llndk_headers: ["libllndk_headers"], } } cc_library_headers { name: "libllndk_headers", Loading Loading @@ -897,14 +894,11 @@ func TestVndkWhenVndkVersionIsNotSet(t *testing.T) { cc_library { name: "libllndk", llndk_stubs: "libllndk.llndk", } llndk_library { name: "libllndk.llndk", symbol_file: "", llndk: { symbol_file: "libllndk.map.txt", export_llndk_headers: ["libllndk_headers"], } } cc_library_headers { name: "libllndk_headers", Loading Loading @@ -1170,12 +1164,9 @@ func TestDoubleLoadbleDep(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libdoubleloadable"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { Loading @@ -1193,12 +1184,9 @@ func TestDoubleLoadbleDep(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libvndksp"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { Loading Loading @@ -1255,12 +1243,9 @@ func TestDoubleLoadbleDep(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libcoreonly"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { Loading @@ -1283,12 +1268,9 @@ func TestDoubleLoadableDepError(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libnondoubleloadable"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { Loading @@ -1307,12 +1289,9 @@ func TestDoubleLoadableDepError(t *testing.T) { name: "libllndk", no_libcrt: true, shared_libs: ["libnondoubleloadable"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { Loading @@ -1326,12 +1305,9 @@ func TestDoubleLoadableDepError(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libcoreonly"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { Loading @@ -1357,11 +1333,9 @@ func TestDoubleLoadableDepError(t *testing.T) { cc_library { name: "libllndk", shared_libs: ["libnondoubleloadable"], llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { name: "libnondoubleloadable", Loading @@ -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, Loading Loading @@ -2158,11 +2127,9 @@ func TestEnforceProductVndkVersion(t *testing.T) { bp := ` cc_library { name: "libllndk", llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { name: "libvndk", Loading Loading @@ -2436,20 +2403,16 @@ func TestMakeLinkType(t *testing.T) { } cc_library { name: "libllndk", llndk_stubs: "libllndk.llndk", llndk: { symbol_file: "libllndk.map.txt", } llndk_library { name: "libllndk.llndk", symbol_file: "", } cc_library { name: "libllndkprivate", llndk_stubs: "libllndkprivate.llndk", } llndk_library { name: "libllndkprivate.llndk", llndk: { symbol_file: "libllndkprivate.map.txt", private: true, symbol_file: "", } } llndk_libraries_txt { Loading Loading @@ -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", Loading
cc/image.go +2 −6 Original line number Diff line number Diff line Loading @@ -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 } if platformVndkVersion != "" { vendorVariants = append(vendorVariants, platformVndkVersion) productVariants = append(productVariants, platformVndkVersion) Loading