diff options
Diffstat (limited to 'linker/linker.cpp')
-rw-r--r-- | linker/linker.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/linker/linker.cpp b/linker/linker.cpp index 0de17f780..f68775c19 100644 --- a/linker/linker.cpp +++ b/linker/linker.cpp @@ -2596,6 +2596,8 @@ bool link_namespaces_all_libs(android_namespace_t* namespace_from, } ElfW(Addr) call_ifunc_resolver(ElfW(Addr) resolver_addr) { + if (g_is_ldd) return 0; + typedef ElfW(Addr) (*ifunc_resolver_t)(void); ifunc_resolver_t ifunc_resolver = reinterpret_cast<ifunc_resolver_t>(resolver_addr); ElfW(Addr) ifunc_addr = ifunc_resolver(); @@ -3876,6 +3878,11 @@ bool soinfo::link_image(const soinfo_list_t& global_group, const soinfo_list_t& return true; } + if (g_is_ldd && !is_main_executable()) { + async_safe_format_fd(STDOUT_FILENO, "\t%s => %s (%p)\n", get_soname(), + get_realpath(), reinterpret_cast<void*>(base)); + } + local_group_root_ = local_group.front(); if (local_group_root_ == nullptr) { local_group_root_ = this; |