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

Commit 2973c110 authored by Lorenzo Colitti's avatar Lorenzo Colitti
Browse files

Revert "Also package recursive jni_libs deps of android_apps as well as direct deps."

This reverts commit 6f907ad3.

Reason for revert: Broke FrameworksNetSmokeTests

Bug: 146456945
Change-Id: Ibef7bb80c532e70cfcfb974f51a99ed25437a343
parent 6f907ad3
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -759,7 +759,7 @@ func (c *Module) isNdk() bool {
	return inList(c.Name(), ndkMigratedLibs)
}

func (c *Module) IsLlndk(config android.Config) bool {
func (c *Module) isLlndk(config android.Config) bool {
	// Returns true for both LLNDK (public) and LLNDK-private libs.
	return isLlndkLibrary(c.BaseModuleName(), config)
}
@@ -999,7 +999,7 @@ func (ctx *moduleContextImpl) isNdk() bool {
}

func (ctx *moduleContextImpl) isLlndk(config android.Config) bool {
	return ctx.mod.IsLlndk(config)
	return ctx.mod.isLlndk(config)
}

func (ctx *moduleContextImpl) isLlndkPublic(config android.Config) bool {
@@ -1880,7 +1880,7 @@ func checkDoubleLoadableLibraries(ctx android.TopDownMutatorContext) {
			return true
		}

		if to.isVndkSp() || to.IsLlndk(ctx.Config()) || Bool(to.VendorProperties.Double_loadable) {
		if to.isVndkSp() || to.isLlndk(ctx.Config()) || Bool(to.VendorProperties.Double_loadable) {
			return false
		}

@@ -1895,7 +1895,7 @@ func checkDoubleLoadableLibraries(ctx android.TopDownMutatorContext) {
	}
	if module, ok := ctx.Module().(*Module); ok {
		if lib, ok := module.linker.(*libraryDecorator); ok && lib.shared() {
			if module.IsLlndk(ctx.Config()) || Bool(module.VendorProperties.Double_loadable) {
			if module.isLlndk(ctx.Config()) || Bool(module.VendorProperties.Double_loadable) {
				ctx.WalkDeps(check)
			}
		}
+1 −1
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ func (sabimod *sabi) flags(ctx ModuleContext, flags Flags) Flags {

func sabiDepsMutator(mctx android.TopDownMutatorContext) {
	if c, ok := mctx.Module().(*Module); ok &&
		((c.IsVndk() && c.UseVndk()) || c.IsLlndk(mctx.Config()) ||
		((c.IsVndk() && c.UseVndk()) || c.isLlndk(mctx.Config()) ||
			(c.sabi != nil && c.sabi.Properties.CreateSAbiDumps)) {
		mctx.VisitDirectDeps(func(m android.Module) {
			tag := mctx.OtherModuleDependencyTag(m)
+16 −26
Original line number Diff line number Diff line
@@ -167,11 +167,18 @@ func (a *AndroidApp) DepsMutator(ctx android.BottomUpMutatorContext) {
		a.aapt.deps(ctx, sdkDep)
	}

	tag := &jniDependencyTag{}
	for _, jniTarget := range ctx.MultiTargets() {
		variation := append(jniTarget.Variations(),
			blueprint.Variation{Mutator: "link", Variation: "shared"})
		tag := &jniDependencyTag{
			target: jniTarget,
		}
		ctx.AddFarVariationDependencies(variation, tag, a.appProperties.Jni_libs...)
		if String(a.appProperties.Stl) == "c++_shared" {
			if a.shouldEmbedJnis(ctx) {
				ctx.AddFarVariationDependencies(variation, tag, "ndk_libc++_shared")
			}
		}
	}

	a.usesLibrary.deps(ctx, sdkDep.hasFrameworkLibs())
@@ -464,7 +471,7 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {

	dexJarFile := a.dexBuildActions(ctx)

	jniLibs, certificateDeps := collectAppDeps(ctx, a.shouldEmbedJnis(ctx))
	jniLibs, certificateDeps := collectAppDeps(ctx)
	jniJarFile := a.jniBuildActions(jniLibs, ctx)

	if ctx.Failed() {
@@ -500,33 +507,22 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {
	}
}

func collectAppDeps(ctx android.ModuleContext, shouldCollectRecursiveNativeDeps bool) ([]jniLib, []Certificate) {
func collectAppDeps(ctx android.ModuleContext) ([]jniLib, []Certificate) {
	var jniLibs []jniLib
	var certificates []Certificate
	seenModulePaths := make(map[string]bool)

	ctx.WalkDeps(func(module android.Module, parent android.Module) bool {
	ctx.VisitDirectDeps(func(module android.Module) {
		otherName := ctx.OtherModuleName(module)
		tag := ctx.OtherModuleDependencyTag(module)

		if IsJniDepTag(tag) || tag == cc.SharedDepTag {
		if jniTag, ok := tag.(*jniDependencyTag); ok {
			if dep, ok := module.(*cc.Module); ok {
				if dep.IsLlndk(ctx.Config()) || dep.IsStubs() {
					return false
				}

				lib := dep.OutputFile()
				path := lib.Path()
				if seenModulePaths[path.String()] {
					return false
				}
				seenModulePaths[path.String()] = true

				if lib.Valid() {
					jniLibs = append(jniLibs, jniLib{
						name:   ctx.OtherModuleName(module),
						path:   path,
						target: module.Target(),
						path:   lib.Path(),
						target: jniTag.target,
					})
				} else {
					ctx.ModuleErrorf("dependency %q missing output file", otherName)
@@ -534,19 +530,13 @@ func collectAppDeps(ctx android.ModuleContext, shouldCollectRecursiveNativeDeps
			} else {
				ctx.ModuleErrorf("jni_libs dependency %q must be a cc library", otherName)
			}

			return shouldCollectRecursiveNativeDeps
		}

		if tag == certificateTag {
		} else if tag == certificateTag {
			if dep, ok := module.(*AndroidAppCertificate); ok {
				certificates = append(certificates, dep.Certificate)
			} else {
				ctx.ModuleErrorf("certificate dependency %q must be an android_app_certificate module", otherName)
			}
		}

		return false
	})

	return jniLibs, certificates
@@ -978,7 +968,7 @@ func (a *AndroidAppImport) generateAndroidBuildActions(ctx android.ModuleContext
		ctx.ModuleErrorf("One and only one of certficate, presigned, and default_dev_cert properties must be set")
	}

	_, certificates := collectAppDeps(ctx, false)
	_, certificates := collectAppDeps(ctx)

	// TODO: LOCAL_EXTRACT_APK/LOCAL_EXTRACT_DPI_APK
	// TODO: LOCAL_PACKAGE_SPLITS
+3 −3
Original line number Diff line number Diff line
@@ -200,14 +200,14 @@ func TransformJniLibsToJar(ctx android.ModuleContext, outputFile android.Writabl
	}

	if uncompressJNI {
		jarArgs = append(jarArgs, "-L", "0")
		jarArgs = append(jarArgs, "-L 0")
	}

	for _, j := range jniLibs {
		deps = append(deps, j.path)
		jarArgs = append(jarArgs,
			"-P", targetToJniDir(j.target),
			"-f", j.path.String())
			"-P "+targetToJniDir(j.target),
			"-f "+j.path.String())
	}

	ctx.Build(pctx, android.BuildParams{
+0 −38
Original line number Diff line number Diff line
@@ -1630,46 +1630,8 @@ func TestAndroidTestImport(t *testing.T) {

func TestStl(t *testing.T) {
	ctx, _ := testJava(t, cc.GatherRequiredDepsForTest(android.Android)+`
		cc_library {
			name: "ndk_libunwind",
			sdk_version: "current",
			stl: "none",
			system_shared_libs: [],
		}

		cc_library {
			name: "libc.ndk.current",
			sdk_version: "current",
			stl: "none",
			system_shared_libs: [],
		}

		cc_library {
			name: "libm.ndk.current",
			sdk_version: "current",
			stl: "none",
			system_shared_libs: [],
		}

		cc_library {
			name: "libdl.ndk.current",
			sdk_version: "current",
			stl: "none",
			system_shared_libs: [],
		}

		cc_object {
			name: "ndk_crtbegin_so.27",
		}

		cc_object {
			name: "ndk_crtend_so.27",
		}

		cc_library {
			name: "libjni",
			sdk_version: "current",
			stl: "c++_shared",
		}

		android_test {
Loading