linker: add dlvsym(3)

This changes implements dlvsym - dlsym for versioned symbols.

Bug: http://b/22865643
Change-Id: Ic90a60d512104261a1416c43f9100f0d88e3b46f
This commit is contained in:
Dimitry Ivanov
2015-12-11 14:22:24 -08:00
parent d3e5301a75
commit 9cf99cbad8
12 changed files with 67 additions and 27 deletions

View File

@@ -2187,7 +2187,7 @@ static std::string symbol_display_name(const char* sym_name, const char* sym_ver
return sym_name;
}
return std::string(sym_name) + "@" + sym_ver;
return std::string(sym_name) + ", version " + sym_ver;
}
void do_android_get_LD_LIBRARY_PATH(char* buffer, size_t buffer_size) {
@@ -2312,8 +2312,8 @@ bool do_dlsym(void* handle, const char* sym_name, const char* sym_ver,
version_info* vi = nullptr;
if (sym_ver != nullptr) {
vi_instance.name = sym_name;
vi_instance.elf_hash = calculate_elf_hash(sym_name);
vi_instance.name = sym_ver;
vi_instance.elf_hash = calculate_elf_hash(sym_ver);
vi = &vi_instance;
}