diff options
author | 2024-12-11 01:37:20 +0000 | |
---|---|---|
committer | 2024-12-11 01:37:20 +0000 | |
commit | 1f1e901cb1b9b4bbdcecb97a2c31cd620f0311f9 (patch) | |
tree | 5a388e792eedacad8c8df0301069b83c9aad91a6 | |
parent | aecbbc24dea1a92b8ce7eab4fb88de128f4e46b7 (diff) | |
parent | e489db477b9bc260062c4b4cbfce394e63befe2d (diff) |
Merge "Move parent static check in cc.Module.DepIsInSameApex into tag" into main am: e489db477b
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/3393289
Change-Id: If890f16d88878a641ee0584f2c6e8518b39039d6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | apex/apex_test.go | 1 | ||||
-rw-r--r-- | cc/cc.go | 25 | ||||
-rw-r--r-- | cc/linkable.go | 4 | ||||
-rw-r--r-- | rust/rust.go | 2 | ||||
-rw-r--r-- | rust/sanitize.go | 4 |
5 files changed, 19 insertions, 17 deletions
diff --git a/apex/apex_test.go b/apex/apex_test.go index b349081c6..81a62d9d9 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -5818,7 +5818,6 @@ func TestApexWithTests(t *testing.T) { relative_install_path: "test", shared_libs: ["mylib"], system_shared_libs: [], - static_executable: true, stl: "none", data: [":fg"], } @@ -731,6 +731,9 @@ type libraryDependencyTag struct { Kind libraryDependencyKind Order libraryDependencyOrder + // fromStatic is true when the parent module is a static library or binary + fromStatic bool + wholeStatic bool reexportFlags bool @@ -2552,7 +2555,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { } for _, lib := range deps.HeaderLibs { - depTag := libraryDependencyTag{Kind: headerLibraryDependency} + depTag := libraryDependencyTag{Kind: headerLibraryDependency, fromStatic: c.static()} if inList(lib, deps.ReexportHeaderLibHeaders) { depTag.reexportFlags = true } @@ -2594,7 +2597,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { } for _, lib := range deps.WholeStaticLibs { - depTag := libraryDependencyTag{Kind: staticLibraryDependency, wholeStatic: true, reexportFlags: true} + depTag := libraryDependencyTag{Kind: staticLibraryDependency, wholeStatic: true, reexportFlags: true, fromStatic: c.static()} actx.AddVariationDependencies([]blueprint.Variation{ {Mutator: "link", Variation: "static"}, @@ -2603,7 +2606,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { for _, lib := range deps.StaticLibs { // Some dependencies listed in static_libs might actually be rust_ffi rlib variants. - depTag := libraryDependencyTag{Kind: staticLibraryDependency} + depTag := libraryDependencyTag{Kind: staticLibraryDependency, fromStatic: c.static()} if inList(lib, deps.ReexportStaticLibHeaders) { depTag.reexportFlags = true @@ -2620,7 +2623,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { // so that native libraries/binaries are linked with static unwinder // because Q libc doesn't have unwinder APIs if deps.StaticUnwinderIfLegacy { - depTag := libraryDependencyTag{Kind: staticLibraryDependency, staticUnwinder: true} + depTag := libraryDependencyTag{Kind: staticLibraryDependency, staticUnwinder: true, fromStatic: c.static()} actx.AddVariationDependencies([]blueprint.Variation{ {Mutator: "link", Variation: "static"}, }, depTag, staticUnwinder(actx)) @@ -2630,7 +2633,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { var sharedLibNames []string for _, lib := range deps.SharedLibs { - depTag := libraryDependencyTag{Kind: sharedLibraryDependency} + depTag := libraryDependencyTag{Kind: sharedLibraryDependency, fromStatic: c.static()} if inList(lib, deps.ReexportSharedLibHeaders) { depTag.reexportFlags = true } @@ -2651,14 +2654,14 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { } for _, lib := range deps.LateStaticLibs { - depTag := libraryDependencyTag{Kind: staticLibraryDependency, Order: lateLibraryDependency} + depTag := libraryDependencyTag{Kind: staticLibraryDependency, Order: lateLibraryDependency, fromStatic: c.static()} actx.AddVariationDependencies([]blueprint.Variation{ {Mutator: "link", Variation: "static"}, }, depTag, lib) } for _, lib := range deps.UnexportedStaticLibs { - depTag := libraryDependencyTag{Kind: staticLibraryDependency, Order: lateLibraryDependency, unexportedSymbols: true} + depTag := libraryDependencyTag{Kind: staticLibraryDependency, Order: lateLibraryDependency, unexportedSymbols: true, fromStatic: c.static()} actx.AddVariationDependencies([]blueprint.Variation{ {Mutator: "link", Variation: "static"}, }, depTag, lib) @@ -2671,7 +2674,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { // linking against both the stubs lib and the non-stubs lib at the same time. continue } - depTag := libraryDependencyTag{Kind: sharedLibraryDependency, Order: lateLibraryDependency} + depTag := libraryDependencyTag{Kind: sharedLibraryDependency, Order: lateLibraryDependency, fromStatic: c.static()} variations := []blueprint.Variation{ {Mutator: "link", Variation: "shared"}, } @@ -2719,7 +2722,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { version := ctx.sdkVersion() - ndkStubDepTag := libraryDependencyTag{Kind: sharedLibraryDependency, ndk: true, makeSuffix: "." + version} + ndkStubDepTag := libraryDependencyTag{Kind: sharedLibraryDependency, ndk: true, makeSuffix: "." + version, fromStatic: c.static()} actx.AddVariationDependencies([]blueprint.Variation{ {Mutator: "version", Variation: version}, {Mutator: "link", Variation: "shared"}, @@ -2729,7 +2732,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) { {Mutator: "link", Variation: "shared"}, }, ndkStubDepTag, apiNdkLibs...) - ndkLateStubDepTag := libraryDependencyTag{Kind: sharedLibraryDependency, Order: lateLibraryDependency, ndk: true, makeSuffix: "." + version} + ndkLateStubDepTag := libraryDependencyTag{Kind: sharedLibraryDependency, Order: lateLibraryDependency, ndk: true, makeSuffix: "." + version, fromStatic: c.static()} actx.AddVariationDependencies([]blueprint.Variation{ {Mutator: "version", Variation: version}, {Mutator: "link", Variation: "shared"}, @@ -3776,7 +3779,7 @@ func (c *Module) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Modu if cc.IsLlndk() { return false } - if isLibDepTag && c.static() && libDepTag.shared() { + if isLibDepTag && libDepTag.fromStatic && libDepTag.shared() { // shared_lib dependency from a static lib is considered as crossing // the APEX boundary because the dependency doesn't actually is // linked; the dependency is used only during the compilation phase. diff --git a/cc/linkable.go b/cc/linkable.go index 1a9a9abbc..1fade717a 100644 --- a/cc/linkable.go +++ b/cc/linkable.go @@ -294,8 +294,8 @@ func DepTagMakeSuffix(depTag blueprint.DependencyTag) string { } // SharedDepTag returns the dependency tag for any C++ shared libraries. -func SharedDepTag() blueprint.DependencyTag { - return libraryDependencyTag{Kind: sharedLibraryDependency} +func SharedDepTag(fromStatic bool) blueprint.DependencyTag { + return libraryDependencyTag{Kind: sharedLibraryDependency, fromStatic: fromStatic} } // StaticDepTag returns the dependency tag for any C++ static libraries. diff --git a/rust/rust.go b/rust/rust.go index eeb228ceb..1417c0881 100644 --- a/rust/rust.go +++ b/rust/rust.go @@ -1683,7 +1683,7 @@ func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) { } for _, lib := range deps.SharedLibs { - depTag := cc.SharedDepTag() + depTag := cc.SharedDepTag(mod.Static()) name, version := cc.StubsLibNameAndVersion(lib) variations := []blueprint.Variation{ diff --git a/rust/sanitize.go b/rust/sanitize.go index b8f922fe2..4c82de5e8 100644 --- a/rust/sanitize.go +++ b/rust/sanitize.go @@ -281,7 +281,7 @@ func rustSanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) { } else { variations = append(variations, blueprint.Variation{Mutator: "link", Variation: "shared"}) - depTag = cc.SharedDepTag() + depTag = cc.SharedDepTag(mod.Static()) deps = []string{config.LibclangRuntimeLibrary(mod.toolchain(mctx), "asan")} } } else if mod.IsSanitizerEnabled(cc.Hwasan) { @@ -296,7 +296,7 @@ func rustSanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) { // library during final link if necessary variations = append(variations, blueprint.Variation{Mutator: "link", Variation: "shared"}) - depTag = cc.SharedDepTag() + depTag = cc.SharedDepTag(mod.Static()) deps = []string{config.LibclangRuntimeLibrary(mod.toolchain(mctx), "hwasan")} } |