summaryrefslogtreecommitdiff
path: root/cc
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2025-03-06 18:24:13 -0800
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2025-03-06 18:24:13 -0800
commit4001c291d82003e15e6c443fc781cfece35fa0a2 (patch)
treeb2187e2d8c1f6de1412697a58a7f3a38c389ee3b /cc
parentdf36bb4261b9db1f8ad1242a18c496d4d254cea0 (diff)
parente16abc61f4f1b6a9a54f516c39bec3834db5814c (diff)
Merge "llndk stub of libbinder_ndk reads systemapi annotation" into main
Diffstat (limited to 'cc')
-rw-r--r--cc/library.go14
1 files changed, 13 insertions, 1 deletions
diff --git a/cc/library.go b/cc/library.go
index 8a2b6bdbd..b248224bd 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -606,10 +606,22 @@ func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps Pa
panic(err)
}
+ llndkFlag := "--llndk"
+ if ctx.baseModuleName() == "libbinder_ndk" && ctx.inProduct() {
+ // This is a special case only for the libbinder_ndk. As the product partition is in the
+ // framework side along with system and system_ext partitions in Treble, libbinder_ndk
+ // provides different binder interfaces between product and vendor modules.
+ // In libbinder_ndk, 'llndk' annotation is for the vendor APIs; while 'systemapi'
+ // annotation is for the product APIs.
+ // Use '--systemapi' flag for building the llndk stub of product variant for the
+ // libbinder_ndk.
+ llndkFlag = "--systemapi"
+ }
+
// This is the vendor variant of an LLNDK library, build the LLNDK stubs.
nativeAbiResult := ParseNativeAbiDefinition(ctx,
String(library.Properties.Llndk.Symbol_file),
- nativeClampedApiLevel(ctx, version), "--llndk")
+ nativeClampedApiLevel(ctx, version), llndkFlag)
objs := CompileStubLibrary(ctx, flags, nativeAbiResult.StubSrc, sharedFlags)
if !Bool(library.Properties.Llndk.Unversioned) {
library.versionScriptPath = android.OptionalPathForPath(