Replace artificial symbol table with proper one

This change also replaces elf-hash with gnu-hash.

Test: make
Test: bionic-unit-tests --gtest_filter=dl*:Dl*
Change-Id: Ibc4026f7abc7e8002f69c33eebaf6a193f1d22eb
diff --git a/linker/linker_soinfo.h b/linker/linker_soinfo.h
index 29b5c2b..6f472b5 100644
--- a/linker/linker_soinfo.h
+++ b/linker/linker_soinfo.h
@@ -337,7 +337,9 @@
   android_namespace_list_t secondary_namespaces_;
   uintptr_t handle_;
 
-  friend soinfo* get_libdl_info(const char* linker_path, const link_map& linker_map);
+  friend soinfo* get_libdl_info(const char* linker_path,
+                                const soinfo& linker_si,
+                                const link_map& linker_map);
 };
 
 // This function is used by dlvsym() to calculate hash of sym_ver