Break libdl.so and ld-android.so's dependency on libc.so.

 * Specify "nocrt: true" to avoid calling __cxa_finalize.

 * Define a dummy __aeabi_unwind_cpp_pr0 for arm32.

Bug: b/62815515
Bug: b/73873002
Test: boot AOSP hikey960-userdebug
Test: run ndk_cxa_example in special /system/bin/debug namespace
Test: run Bionic unit tests
Change-Id: I59bcb100a2753286b59c51a47d7a183507219a07
diff --git a/linker/Android.bp b/linker/Android.bp
index 2fcf369..7877a37 100644
--- a/linker/Android.bp
+++ b/linker/Android.bp
@@ -271,12 +271,7 @@
     name: "ld-android",
     defaults: ["linux_bionic_supported"],
 
-    // NOTE: ld-android.so needs __aeabi_unwind_cpp_pr0 from libgcc.a but libgcc.a
-    // needs a few symbols from libc. Using --no-undefined here results in having to
-    // link against libc creating a circular dependency which is removed and we end
-    // up with missing symbols. Since this library is just a bunch of stubs, we set
-    // allow_undefined_symbols to remove --no-undefined from the linker flags.
-    allow_undefined_symbols: true,
+    nocrt: true,
     system_shared_libs: [],
 
     sanitize: {