linker: add dlvsym(3)
This changes implements dlvsym - dlsym for versioned symbols.
Bug: http://b/22865643
Change-Id: Ic90a60d512104261a1416c43f9100f0d88e3b46f
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 99152ed..e38e252 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -2187,7 +2187,7 @@
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 @@
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;
}