Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 203b4210 authored by Colin Cross's avatar Colin Cross
Browse files

Remove obsolete llndk_library

Remove llndk_library in favor of cc_library with llndk.symbol_file.

Bug: 170784825
Test: m checkbuild
Test: TestLlndkLibrary
Change-Id: I43580976589a7a2a176d7442be53fa043c0c8324
parent 627280f0
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -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"}),
+0 −6
Original line number Diff line number Diff line
@@ -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"

+0 −7
Original line number Diff line number Diff line
@@ -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())
+39 −138
Original line number Diff line number Diff line
@@ -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",
@@ -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",
@@ -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 {
@@ -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 {
@@ -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 {
@@ -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 {
@@ -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 {
@@ -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 {
@@ -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",
@@ -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: {
				symbol_file: "libllndk.map.txt",
			}
		llndk_library {
			name: "libllndk.llndk",
			symbol_file: "",
		}
		cc_library {
			name: "libvndk",
@@ -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 {
@@ -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",
+2 −6
Original line number Diff line number Diff line
@@ -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