Unhardcode linker soname

Set and use DT_SONAME instead.

Test: bionic-unit-tests
Change-Id: I38a246c8a43664792424e8fef96ae2ff5f743ba6
diff --git a/linker/Android.bp b/linker/Android.bp
index f802f45..a4b4573 100644
--- a/linker/Android.bp
+++ b/linker/Android.bp
@@ -130,6 +130,7 @@
         "-shared",
         "-Wl,-Bsymbolic",
         "-Wl,--exclude-libs,ALL",
+        "-Wl,-soname,ld-android.so",
     ],
 
     cflags: [
diff --git a/linker/dlfcn.cpp b/linker/dlfcn.cpp
index 7f9bf7e..869e0c1 100644
--- a/linker/dlfcn.cpp
+++ b/linker/dlfcn.cpp
@@ -298,7 +298,7 @@
     __libdl_info->ref_count_ = 1;
     __libdl_info->strtab_size_ = linker_si.strtab_size_;
     __libdl_info->local_group_root_ = __libdl_info;
-    __libdl_info->soname_ = "ld-android.so";
+    __libdl_info->soname_ = linker_si.soname_;
     __libdl_info->target_sdk_version_ = __ANDROID_API__;
     __libdl_info->generate_handle();
     __libdl_info->link_map_head.l_addr = linker_map.l_addr;