Backward compatibility for dlsym(RTLD_DEFAULT, ...)
Do not skip RTLD_LOCAL libraries in dlsym(RTLD_DEFAULT, ...)
if the library is opened by application with target api level <= 22
Bug: http://b/21565766
Bug: http://b/17512583
Change-Id: Ic45ed1e4f53e84cba9d74cab6b0049c0c7aa8423
(cherry picked from commit 04f7e3e955ba7de5f449c995e667659319dc1cce)
diff --git a/linker/linker.h b/linker/linker.h
index 04b584e..6042cb8 100644
--- a/linker/linker.h
+++ b/linker/linker.h
@@ -334,6 +334,8 @@
bool find_verdef_version_index(const version_info* vi, ElfW(Versym)* versym) const;
+ uint32_t get_target_sdk_version() const;
+
private:
bool elf_lookup(SymbolName& symbol_name, const version_info* vi, uint32_t* symbol_index) const;
ElfW(Sym)* elf_addr_lookup(const void* addr);
@@ -393,6 +395,8 @@
ElfW(Addr) verneed_ptr_;
size_t verneed_cnt_;
+ uint32_t target_sdk_version_;
+
friend soinfo* get_libdl_info();
};