platform_bionic/linker/linker.generic.map
Ryan Prichard abf736a780 Expose libc_shared_globals to libc.so with symbol
Previously, the address of the global variable was communicated from the
dynamic linker to libc.so using a field of KernelArgumentBlock, which is
communicated using the TLS_SLOT_BIONIC_PREINIT slot.

As long as this function isn't called during relocations (i.e. while
executing an ifunc), it always return a non-NULL value. If it's called
before its PLT entry is relocated, I expect a crash.

I removed the __libc_init_shared_globals function. It's currently empty,
and I don't think there's one point in libc's initialization where
shared globals should be initialized.

Bug: http://b/25751302
Test: bionic unit tests
Change-Id: I614d25e7ef5e0d2ccc40d5c821dee10f1ec61c2e
2018-11-28 14:26:14 -08:00

28 lines
821 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;
__loader_shared_globals;
rtld_db_dlactivity;
local:
*;
};