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

Commit 40350ab4 authored by Jiyong Park's avatar Jiyong Park
Browse files

List of VNDK-related libs are exported to make

LL-NDK, VNDK-core, VNDK-SP libraries are exported to make as
SOONG_LLNDK_LIBRARIES, SOONG_VNDK_CORE_LIBRARIES, and
SOONG_VNDK_SAMEPROCESS_LIBRARIES. This can be used to auto-generate
ld.config.txt from a template.

Bug: 64013660
Test: BOARD_VNDK_VERSION=current m -j successful
Test: check out/soong/make_vars*.mk and look for SOONG_*_LIBRARIES

Change-Id: I0f4c5d05d9cd28c3fc9fdcca6ce0e6eaeaacbe8d
parent 88e6f14a
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ func init() {

	android.PreDepsMutators(func(ctx android.RegisterMutatorsContext) {
		ctx.BottomUp("link", linkageMutator).Parallel()
		ctx.BottomUp("vndk", vndkMutator).Parallel()
		ctx.BottomUp("image", vendorMutator).Parallel()
		ctx.BottomUp("ndk_api", ndkApiMutator).Parallel()
		ctx.BottomUp("test_per_src", testPerSrcMutator).Parallel()
@@ -457,7 +458,7 @@ func (ctx *moduleContextImpl) isVndkSp() bool {

// Create source abi dumps if the module belongs to the list of VndkLibraries.
func (ctx *moduleContextImpl) createVndkSourceAbiDump() bool {
	return ctx.ctx.Device() && (ctx.mod.isVndk() || inList(ctx.baseModuleName(), config.LLndkLibraries()))
	return ctx.ctx.Device() && (ctx.mod.isVndk() || inList(ctx.baseModuleName(), llndkLibraries))
}

func (ctx *moduleContextImpl) selectedStl() string {
@@ -745,7 +746,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) {
					} else {
						variantLibs = append(variantLibs, entry+ndkLibrarySuffix)
					}
				} else if ctx.vndk() && inList(entry, config.LLndkLibraries()) {
				} else if ctx.vndk() && inList(entry, llndkLibraries) {
					nonvariantLibs = append(nonvariantLibs, entry+llndkLibrarySuffix)
				} else {
					nonvariantLibs = append(nonvariantLibs, entry)
@@ -1109,7 +1110,7 @@ func (c *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
		case sharedDepTag, sharedExportDepTag, lateSharedDepTag:
			libName := strings.TrimSuffix(name, llndkLibrarySuffix)
			libName = strings.TrimPrefix(libName, "prebuilt_")
			isLLndk := inList(libName, config.LLndkLibraries())
			isLLndk := inList(libName, llndkLibraries)
			if c.vndk() && (Bool(cc.Properties.Vendor_available) || isLLndk) {
				libName += vendorSuffix
			}
+0 −11
Original line number Diff line number Diff line
@@ -185,17 +185,6 @@ func bionicHeaders(bionicArch, kernelArch string) string {
	}, " ")
}

func VndkLibraries() []string {
	return []string{}
}

// This needs to be kept up to date with the list in system/core/rootdir/etc/ld.config.txt:
// [vendor]
// namespace.default.link.system.shared_libs
func LLndkLibraries() []string {
	return []string{"libc", "libm", "libdl", "liblog", "libandroid_net", "ld-android", "libvndksupport", "libnativewindow"}
}

func replaceFirst(slice []string, from, to string) {
	if slice[0] != from {
		panic(fmt.Errorf("Expected %q, found %q", from, to))
+1 −2
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import (
	"github.com/google/blueprint/pathtools"

	"android/soong/android"
	"android/soong/cc/config"
)

type LibraryProperties struct {
@@ -621,7 +620,7 @@ func (library *libraryDecorator) linkSAbiDumpFiles(ctx ModuleContext, objs Objec
}

func vndkVsNdk(ctx ModuleContext) bool {
	if inList(ctx.baseModuleName(), config.LLndkLibraries()) {
	if inList(ctx.baseModuleName(), llndkLibraries) {
		return false
	}
	return true
+4 −0
Original line number Diff line number Diff line
@@ -59,6 +59,10 @@ func makeVarsProvider(ctx android.MakeVarsContext) {
		ctx.Strict("BOARD_VNDK_VERSION", "")
	}

	ctx.Strict("VNDK_CORE_LIBRARIES", strings.Join(vndkCoreLibraries, " "))
	ctx.Strict("VNDK_SAMEPROCESS_LIBRARIES", strings.Join(vndkSpLibraries, " "))
	ctx.Strict("LLNDK_LIBRARIES", strings.Join(llndkLibraries, " "))

	ctx.Strict("ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS", strings.Join(asanCflags, " "))
	ctx.Strict("ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS", strings.Join(asanLdflags, " "))
	ctx.Strict("ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES", strings.Join(asanLibs, " "))
+1 −1
Original line number Diff line number Diff line
@@ -72,7 +72,7 @@ func (sabimod *sabi) flags(ctx ModuleContext, flags Flags) Flags {

func sabiDepsMutator(mctx android.TopDownMutatorContext) {
	if c, ok := mctx.Module().(*Module); ok &&
		(c.isVndk() || inList(c.Name(), config.LLndkLibraries()) ||
		(c.isVndk() || inList(c.Name(), llndkLibraries) ||
			(c.sabi != nil && c.sabi.Properties.CreateSAbiDumps)) {
		mctx.VisitDirectDeps(func(m blueprint.Module) {
			tag := mctx.OtherModuleDependencyTag(m)
Loading