9ee4591cb4
This commit allows users to create a link without soname filters between two linker namespaces. The motivation is to establish one-way shared library isolation. For example, assume that there are two linker namespaces `default` and `vndk`. We would like to limit the shared libraries that can be used by the `default` namespace. In the meanwhile, we would like to allow the `vndk` namespace to use shared libs from the `default` namespace if the soname cannot be find in the search path or loaded sonames of the `vndk` namespace. shared_libs = %VNDK_CORE_LIBRARIES% shared_libs += %VNDK_SAMEPROCESS_LIBRARIES% vndk <-------------------------------------------- default \_______________________________________________/^ allow_all_shared_libs = true android_link_namespaces_all_libs() is added to libdl, but it is versioned as LIBC_PRIVATE. android_link_namespaces_all_libs() is only for unit tests. Bug: 69824336 Test: adb shell /data/nativetest/linker-unit-tests/linker-unit-tests32 Test: adb shell /data/nativetest64/linker-unit-tests/linker-unit-tests64 Test: adb shell /data/nativetest/bionic-unit-tests/bionic-unit-tests Test: adb shell /data/nativetest64/bionic-unit-tests/bionic-unit-tests Test: Update /system/etc/ld.config*.txt and check whether the vndk linker namespace of the vendor process can access the shared libs from the default linker namespace. Change-Id: I2879f0c5f5af60c7e56f8f743ebd2872e552286b
28 lines
827 B
Text
28 lines
827 B
Text
{
|
|
global:
|
|
__loader_dlopen;
|
|
__loader_dlclose;
|
|
__loader_dlsym;
|
|
__loader_dlerror;
|
|
__loader_dladdr;
|
|
__loader_android_update_LD_LIBRARY_PATH;
|
|
__loader_android_get_LD_LIBRARY_PATH;
|
|
__loader_dl_iterate_phdr;
|
|
__loader_android_dlopen_ext;
|
|
__loader_android_set_application_target_sdk_version;
|
|
__loader_android_get_application_target_sdk_version;
|
|
__loader_android_init_anonymous_namespace;
|
|
__loader_android_create_namespace;
|
|
__loader_dlvsym;
|
|
__loader_android_dlwarning;
|
|
__loader_cfi_fail;
|
|
__loader_android_link_namespaces;
|
|
__loader_android_link_namespaces_all_libs;
|
|
__loader_android_get_exported_namespace;
|
|
__loader_dl_unwind_find_exidx;
|
|
__loader_add_thread_local_dtor;
|
|
__loader_remove_thread_local_dtor;
|
|
rtld_db_dlactivity;
|
|
local:
|
|
*;
|
|
};
|