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_main.cpp b/linker/linker_main.cpp
index 54593e4..e8b02d6 100644
--- a/linker/linker_main.cpp
+++ b/linker/linker_main.cpp
@@ -579,7 +579,7 @@
   // Initialize static variables. Note that in order to
   // get correct libdl_info we need to call constructors
   // before get_libdl_info().
-  sonext = solist = get_libdl_info(kLinkerPath, linker_link_map);
+  sonext = solist = get_libdl_info(kLinkerPath, linker_so, linker_link_map);
   g_default_namespace.add_soinfo(solist);
 
   // We have successfully fixed our own relocations. It's safe to run