From 710756a6fff0b06871ded4e6dc8d1da45a2b1ca2 Mon Sep 17 00:00:00 2001 From: Jaewoong Jung Date: Tue, 4 Jun 2019 11:53:47 -0700 Subject: [PATCH] android_app stl property bug fix When it is set to c++_shared, the added dependency should be libc++_shared, not libc++. Fixes: 130891985 Test: app_test.go, atest 'CtsNdkBinderTestCases' w/ conversion CL Change-Id: I0e50e0d5bf511aa6e52d16cd715a185721011255 --- cc/ndk_prebuilt.go | 4 ++-- java/app.go | 2 +- java/app_test.go | 6 +++++- java/java_test.go | 3 +++ 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cc/ndk_prebuilt.go b/cc/ndk_prebuilt.go index 026ff220a..fb168872b 100644 --- a/cc/ndk_prebuilt.go +++ b/cc/ndk_prebuilt.go @@ -25,7 +25,7 @@ import ( func init() { android.RegisterModuleType("ndk_prebuilt_object", ndkPrebuiltObjectFactory) android.RegisterModuleType("ndk_prebuilt_static_stl", ndkPrebuiltStaticStlFactory) - android.RegisterModuleType("ndk_prebuilt_shared_stl", ndkPrebuiltSharedStlFactory) + android.RegisterModuleType("ndk_prebuilt_shared_stl", NdkPrebuiltSharedStlFactory) } // NDK prebuilt libraries. @@ -107,7 +107,7 @@ func (*ndkPrebuiltStlLinker) linkerDeps(ctx DepsContext, deps Deps) Deps { // library (stl) library for linking operation. The soong's module name format // is ndk_.so where the library is located under // ./prebuilts/ndk/current/sources/cxx-stl/llvm-libc++/libs/$(HOST_ARCH)/.so. -func ndkPrebuiltSharedStlFactory() android.Module { +func NdkPrebuiltSharedStlFactory() android.Module { module, library := NewLibrary(android.DeviceSupported) library.BuildOnlyShared() module.compiler = nil diff --git a/java/app.go b/java/app.go index 2d817fe58..8624a7422 100644 --- a/java/app.go +++ b/java/app.go @@ -175,7 +175,7 @@ func (a *AndroidApp) DepsMutator(ctx android.BottomUpMutatorContext) { ctx.AddFarVariationDependencies(variation, tag, a.appProperties.Jni_libs...) if String(a.appProperties.Stl) == "c++_shared" { if embedJni { - ctx.AddFarVariationDependencies(variation, tag, "libc++") + ctx.AddFarVariationDependencies(variation, tag, "ndk_libc++_shared") } } } diff --git a/java/app_test.go b/java/app_test.go index 559afcc7d..ac40ece85 100644 --- a/java/app_test.go +++ b/java/app_test.go @@ -1199,6 +1199,10 @@ func TestStl(t *testing.T) { compile_multilib: "both", sdk_version: "current", } + + ndk_prebuilt_shared_stl { + name: "ndk_libc++_shared", + } `) testCases := []struct { @@ -1208,7 +1212,7 @@ func TestStl(t *testing.T) { {"stl", []string{ "libjni.so", - "libc++.so", + "libc++_shared.so", }, }, {"system", diff --git a/java/java_test.go b/java/java_test.go index 3a7ed4e3f..4d161c5ac 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -105,6 +105,7 @@ func testContext(config android.Config, bp string, ctx.RegisterModuleType("cc_object", android.ModuleFactoryAdaptor(cc.ObjectFactory)) ctx.RegisterModuleType("toolchain_library", android.ModuleFactoryAdaptor(cc.ToolchainLibraryFactory)) ctx.RegisterModuleType("llndk_library", android.ModuleFactoryAdaptor(cc.LlndkLibraryFactory)) + ctx.RegisterModuleType("ndk_prebuilt_shared_stl", android.ModuleFactoryAdaptor(cc.NdkPrebuiltSharedStlFactory)) ctx.PreDepsMutators(func(ctx android.RegisterMutatorsContext) { ctx.BottomUp("link", cc.LinkageMutator).Parallel() ctx.BottomUp("begin", cc.BeginMutator).Parallel() @@ -134,6 +135,8 @@ func testContext(config android.Config, bp string, "api/test-removed.txt": nil, "framework/aidl/a.aidl": nil, + "prebuilts/ndk/current/sources/cxx-stl/llvm-libc++/libs/arm64-v8a/libc++_shared.so": nil, + "prebuilts/sdk/14/public/android.jar": nil, "prebuilts/sdk/14/public/framework.aidl": nil, "prebuilts/sdk/14/system/android.jar": nil,