aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJared Duke <jdduke@google.com>2024-04-25 19:04:01 +0000
committerJared Duke <jdduke@google.com>2024-04-26 17:43:14 +0000
commit8782e1e85864ab4bac1d7b85b8cdada181b793de (patch)
treede2e93b0d0b332baa64a52028c79ad39f7cad275
parentc6e4a86b0391830ccc2ee6e81be2482a2dc6e659 (diff)
downloadbuild-8782e1e85864ab4bac1d7b85b8cdada181b793de.tar.gz
Use a version script for libaconfig_storage_read_api_cc
Restrict the set of exported symbols to those in the aconfig_storage namespace by way of a version script. This shrinks the shared lib size by ~75%, from ~800KB to <200KB. Bug: 336657207 Test: m Change-Id: I56044fe667a713cf1d94f96c992f379a5725850f
-rw-r--r--tools/aconfig/aconfig_storage_read_api/Android.bp4
-rw-r--r--tools/aconfig/aconfig_storage_read_api/libaconfig_storage_read_api_cc.map11
2 files changed, 12 insertions, 3 deletions
diff --git a/tools/aconfig/aconfig_storage_read_api/Android.bp b/tools/aconfig/aconfig_storage_read_api/Android.bp
index 946c00bf23..880d8ccdc8 100644
--- a/tools/aconfig/aconfig_storage_read_api/Android.bp
+++ b/tools/aconfig/aconfig_storage_read_api/Android.bp
@@ -102,8 +102,6 @@ cc_library {
"//apex_available:anyapex",
],
min_sdk_version: "29",
+ version_script: "libaconfig_storage_read_api_cc.map",
double_loadable: true,
- cflags: [
- "-fvisibility=hidden",
- ],
}
diff --git a/tools/aconfig/aconfig_storage_read_api/libaconfig_storage_read_api_cc.map b/tools/aconfig/aconfig_storage_read_api/libaconfig_storage_read_api_cc.map
new file mode 100644
index 0000000000..7d47e0ba0e
--- /dev/null
+++ b/tools/aconfig/aconfig_storage_read_api/libaconfig_storage_read_api_cc.map
@@ -0,0 +1,11 @@
+LIBACONFIG_STORAGE_READ_API_CC {
+ # Export everything in the aconfig_storage namespace. This includes both the
+ # public API and library internals.
+ global:
+ extern "C++" {
+ aconfig_storage::*;
+ };
+ # Hide everything else.
+ local:
+ *;
+};