Improve detection of already loaded libraries

Linker is now able to resolve symlinked libraries correctly.

soinfo is extended to save the graph of dependencies during
load/unload. Dependencies are used only in CallConstructor.

Bug: 9741592
Change-Id: Id9c48a74c46aa89bcdf3d54ec2f8ba3d398130b1
diff --git a/tests/Android.mk b/tests/Android.mk
index 4ad07ba..1e4900f 100644
--- a/tests/Android.mk
+++ b/tests/Android.mk
@@ -227,6 +227,19 @@
 ALL_MODULES := \
   $(ALL_MODULES) $(libdlext_sym)
 
+ifneq ($(TARGET_2ND_ARCH),)
+# link 64 bit .so
+libdlext_origin := $(TARGET_OUT)/lib64/libdlext_test.so
+libdlext_sym := $(subst libdlext_test,libdlext_test_v2,$(libdlext_origin))
+$(libdlext_sym): $(libdlext_origin)
+	@echo "Symlink: $@ -> $(notdir $<)"
+	@mkdir -p $(dir $@)
+	$(hide) ln -sf $(notdir $<) $@
+
+ALL_MODULES := \
+  $(ALL_MODULES) $(libdlext_sym)
+endif
+
 libdlext_test_norelro_src_files := \
     dlext_test_library.cpp \