aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorSpandan Das <spandandas@google.com>2023-02-01 03:31:27 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2023-02-01 03:31:27 +0000
commit3070ffeb6c06b604d29c402461b7897fa90b5e42 (patch)
tree3081930a4ed3e5109c98b77f2d0e7609318b3cfc /docs
parent22abc48d85bcb09fcca7ba7dd4de1b0edd266160 (diff)
parentb0c62e6c9fd6d23be502fc73895f91998eebf16f (diff)
Merge "Doc updates for #apex and #systemapi" am: 357ebe5e6d am: 61734dfbb6 am: b0c62e6c9f
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/2407675 Change-Id: I34167bccdcf66642e620142d29fcb22d7d3c3470 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'docs')
-rw-r--r--docs/map_files.md21
1 files changed, 18 insertions, 3 deletions
diff --git a/docs/map_files.md b/docs/map_files.md
index 13880591a..35e8cbbfc 100644
--- a/docs/map_files.md
+++ b/docs/map_files.md
@@ -148,9 +148,24 @@ from access via `dlsym`, but this is not always possible.
### systemapi
-This is a synonym of the `apex` tag. It should be used to clarify that the API
-is an API exposed by the system for an APEX, whereas `apex` should be used for
-APIs exposed by an APEX to the platform or another APEX.
+Indicates that the symbol is exposed by the platform for an apex. Whereas `apex`
+should be used for APIs exposed by an APEX to the platform or another APEX.
+
+May be used in combination with `llndk` if the symbol is exposed to both APEX
+and the LL-NDK.
+
+Since a single library can be installed ether in platform or an apex, but not
+both, a single map.txt file should not contain _both_ # apex and # systemapi symbols.
+
+The granularity between # apex and # systemapi exists to help the API review
+process (b/191371676). These two symbols have very similar lifetime "in
+practice". A #systemapi symbol can be dropped from the next release if we are
+confident that no one is using it. Similarily, #apex can be dropped if we are
+sure that the old platform which used the symbol has reached EOL and thus is no
+longer accepting new APEX updates. Unlike the APIs for apps where we have zero
+control over how APIs are used, we are in a much more controllable environment
+when talking about #systemapi and #apex symbols. So, we have some flexibility
+here when determining the lifetime of a symbol.
### var