Test ld-android.so directly

This CL addresses review comments from
https://android-review.googlesource.com/c/platform/bionic/+/595067

Test: bionic-unit-tests --gtest_filter=dl*
Change-Id: I2c0fdf2a89fe6ff134308e202fb99a74080ee0ed
diff --git a/libdl/libdl.arm.map b/libdl/libdl.arm.map
index 7ed9503..1fcfc58 100644
--- a/libdl/libdl.arm.map
+++ b/libdl/libdl.arm.map
@@ -41,11 +41,6 @@
     __cfi_slowpath_diag;
 } LIBC_N;
 
-LIBC_PRIVATE {
-  global:
-    android_link_namespaces_all_libs;
-} LIBC_OMR1;
-
 LIBC_PLATFORM {
   global:
     __cfi_init;
diff --git a/libdl/libdl.arm64.map b/libdl/libdl.arm64.map
index 199f2e3..8d4019c 100644
--- a/libdl/libdl.arm64.map
+++ b/libdl/libdl.arm64.map
@@ -40,11 +40,6 @@
     __cfi_slowpath_diag;
 } LIBC_N;
 
-LIBC_PRIVATE {
-  global:
-    android_link_namespaces_all_libs;
-} LIBC_OMR1;
-
 LIBC_PLATFORM {
   global:
     __cfi_init;
diff --git a/libdl/libdl.cpp b/libdl/libdl.cpp
index 4c2415f..c834088 100644
--- a/libdl/libdl.cpp
+++ b/libdl/libdl.cpp
@@ -93,11 +93,6 @@
                                 const char* shared_libs_sonames);
 
 __attribute__((__weak__, visibility("default")))
-bool __loader_android_link_namespaces_all_libs(
-                                struct android_namespace_t* namespace_from,
-                                struct android_namespace_t* namespace_to);
-
-__attribute__((__weak__, visibility("default")))
 void __loader_android_dlwarning(void* obj, void (*f)(void*, const char*));
 
 __attribute__((__weak__, visibility("default")))
@@ -210,12 +205,6 @@
 }
 
 __attribute__((__weak__))
-bool android_link_namespaces_all_libs(struct android_namespace_t* namespace_from,
-                                      struct android_namespace_t* namespace_to) {
-  return __loader_android_link_namespaces_all_libs(namespace_from, namespace_to);
-}
-
-__attribute__((__weak__))
 void android_dlwarning(void* obj, void (*f)(void*, const char*)) {
   __loader_android_dlwarning(obj, f);
 }
diff --git a/libdl/libdl.map.txt b/libdl/libdl.map.txt
index 579ffa7..002e9f8 100644
--- a/libdl/libdl.map.txt
+++ b/libdl/libdl.map.txt
@@ -40,11 +40,6 @@
     __cfi_slowpath_diag;
 } LIBC_N;
 
-LIBC_PRIVATE {
-  global:
-    android_link_namespaces_all_libs;
-} LIBC_OMR1;
-
 LIBC_PLATFORM {
   global:
     __cfi_init;
diff --git a/libdl/libdl.mips.map b/libdl/libdl.mips.map
index 199f2e3..8d4019c 100644
--- a/libdl/libdl.mips.map
+++ b/libdl/libdl.mips.map
@@ -40,11 +40,6 @@
     __cfi_slowpath_diag;
 } LIBC_N;
 
-LIBC_PRIVATE {
-  global:
-    android_link_namespaces_all_libs;
-} LIBC_OMR1;
-
 LIBC_PLATFORM {
   global:
     __cfi_init;
diff --git a/libdl/libdl.mips64.map b/libdl/libdl.mips64.map
index 199f2e3..8d4019c 100644
--- a/libdl/libdl.mips64.map
+++ b/libdl/libdl.mips64.map
@@ -40,11 +40,6 @@
     __cfi_slowpath_diag;
 } LIBC_N;
 
-LIBC_PRIVATE {
-  global:
-    android_link_namespaces_all_libs;
-} LIBC_OMR1;
-
 LIBC_PLATFORM {
   global:
     __cfi_init;
diff --git a/libdl/libdl.x86.map b/libdl/libdl.x86.map
index 199f2e3..8d4019c 100644
--- a/libdl/libdl.x86.map
+++ b/libdl/libdl.x86.map
@@ -40,11 +40,6 @@
     __cfi_slowpath_diag;
 } LIBC_N;
 
-LIBC_PRIVATE {
-  global:
-    android_link_namespaces_all_libs;
-} LIBC_OMR1;
-
 LIBC_PLATFORM {
   global:
     __cfi_init;
diff --git a/libdl/libdl.x86_64.map b/libdl/libdl.x86_64.map
index 199f2e3..8d4019c 100644
--- a/libdl/libdl.x86_64.map
+++ b/libdl/libdl.x86_64.map
@@ -40,11 +40,6 @@
     __cfi_slowpath_diag;
 } LIBC_N;
 
-LIBC_PRIVATE {
-  global:
-    android_link_namespaces_all_libs;
-} LIBC_OMR1;
-
 LIBC_PLATFORM {
   global:
     __cfi_init;
diff --git a/linker/ld_android.cpp b/linker/ld_android.cpp
index 4a05772..e2499b3 100644
--- a/linker/ld_android.cpp
+++ b/linker/ld_android.cpp
@@ -29,14 +29,6 @@
 #include <stdlib.h>
 #include <sys/cdefs.h>
 
-extern "C" void __somehow_you_managed_to_not_get_the_actual_symbols_from_the_linker();
-
-extern "C" void __ld_android_init() __attribute__((constructor));
-
-void __ld_android_init() {
-  __somehow_you_managed_to_not_get_the_actual_symbols_from_the_linker();
-}
-
 extern "C" void __internal_linker_error() {
   abort();
 }
diff --git a/tests/Android.bp b/tests/Android.bp
index 1521b73..25377df 100644
--- a/tests/Android.bp
+++ b/tests/Android.bp
@@ -413,6 +413,7 @@
     target: {
         android: {
             shared_libs: [
+                "ld-android",
                 "libdl",
                 "libdl_preempt_test_1",
                 "libdl_preempt_test_2",
diff --git a/tests/dlext_test.cpp b/tests/dlext_test.cpp
index bb2d8a3..9ed1a56 100644
--- a/tests/dlext_test.cpp
+++ b/tests/dlext_test.cpp
@@ -1737,6 +1737,9 @@
   ASSERT_EQ(expected_dlerror, dlerror());
 }
 
+extern "C" bool __loader_android_link_namespaces_all_libs(android_namespace_t* namespace_from,
+                                                          android_namespace_t* namespace_to);
+
 TEST(dlext, ns_link_namespaces_invalid_arguments) {
   ASSERT_TRUE(android_init_anonymous_namespace(g_core_shared_libs.c_str(), nullptr));
 
@@ -1764,16 +1767,16 @@
                "error linking namespaces \"private\"->\"(default)\": "
                "the list of shared libraries is empty.", dlerror());
 
-  // Test android_link_namespaces_all_libs()
-  ASSERT_FALSE(android_link_namespaces_all_libs(nullptr, nullptr));
+  // Test __loader_android_link_namespaces_all_libs()
+  ASSERT_FALSE(__loader_android_link_namespaces_all_libs(nullptr, nullptr));
   ASSERT_STREQ("android_link_namespaces_all_libs failed: "
                "error linking namespaces: namespace_from is null.", dlerror());
 
-  ASSERT_FALSE(android_link_namespaces_all_libs(nullptr, ns));
+  ASSERT_FALSE(__loader_android_link_namespaces_all_libs(nullptr, ns));
   ASSERT_STREQ("android_link_namespaces_all_libs failed: "
                "error linking namespaces: namespace_from is null.", dlerror());
 
-  ASSERT_FALSE(android_link_namespaces_all_libs(ns, nullptr));
+  ASSERT_FALSE(__loader_android_link_namespaces_all_libs(ns, nullptr));
   ASSERT_STREQ("android_link_namespaces_all_libs failed: "
                "error linking namespaces: namespace_to is null.", dlerror());
 }
@@ -1802,7 +1805,7 @@
   ASSERT_TRUE(android_link_namespaces(ns_b, nullptr, g_core_shared_libs.c_str())) << dlerror();
 
   ASSERT_TRUE(android_link_namespaces(ns_b, ns_a, "libnstest_ns_a_public1.so")) << dlerror();
-  ASSERT_TRUE(android_link_namespaces_all_libs(ns_a, ns_b)) << dlerror();
+  ASSERT_TRUE(__loader_android_link_namespaces_all_libs(ns_a, ns_b)) << dlerror();
 
   // Load libs with android_dlopen_ext() from namespace b
   android_dlextinfo extinfo;