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;
   }