Mark libsync as LL-NDK

libsync is used both by platform (e.g. libui.so) and by same-process
HALs (e.g. android.hardware.graphics.mapper@2.0-impl.so). Therefore it
is eligible for either VNDK-SP or LL-NDK. Among the two choices, LL-NDK
was selected because it is already an NDK and is just a thin wrapper
around a few kernel ioctls.

However, since libui (which is a vendor_available:true library) is using
more symbols that are not available to NDK clients, the extra symbols
are exposed as # vndk tag so that they are only available to VNDK
clients, but not to NDK clients.

Bug: 63866913
Test: BOARD_VNDK_VERSION=current m -j successful (2017 pixel)
Test: the built image is bootable
Change-Id: I60f883c049bd9b4562e6ce34d34ead47ba28af5f
This commit is contained in:
Jiyong Park 2017-08-14 15:21:28 +09:00
parent 42a2f5c992
commit 058e0919f6
2 changed files with 10 additions and 12 deletions

View File

@ -22,13 +22,15 @@ cc_defaults {
cc_library_shared {
name: "libsync",
vendor_available: true,
vndk: {
enabled: true,
},
defaults: ["libsync_defaults"],
}
llndk_library {
name: "libsync",
symbol_file: "libsync.map.txt",
export_include_dirs: ["include"],
}
// libsync_recovery is only intended for the recovery binary.
// Future versions of the kernel WILL require an updated libsync, and will break
// anything statically linked against the current libsync.

View File

@ -19,14 +19,10 @@ LIBSYNC {
sync_merge; # introduced=26
sync_file_info; # introduced=26
sync_file_info_free; # introduced=26
sync_wait; # vndk
sync_fence_info; # vndk
sync_pt_info; # vndk
sync_fence_info_free; # vndk
local:
*;
};
LIBSYNC_PLATFORM {
global:
sync_wait;
sync_fence_info;
sync_pt_info;
sync_fence_info_free;
} LIBSYNC_PLATFORM;