platform_bionic/linker/linker.generic.map
Logan Chien 9ee4591cb4 linker: Allow link namespaces without name filters
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
2018-01-25 14:45:29 +08:00

27 lines
792 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_add_thread_local_dtor;
__loader_remove_thread_local_dtor;
rtld_db_dlactivity;
local:
*;
};