linker: add dlvsym(3)
This changes implements dlvsym - dlsym for versioned symbols.
Bug: http://b/22865643
Change-Id: Ic90a60d512104261a1416c43f9100f0d88e3b46f
diff --git a/libdl/libdl.arm.map b/libdl/libdl.arm.map
index 5ad9f9d..b9e494a 100644
--- a/libdl/libdl.arm.map
+++ b/libdl/libdl.arm.map
@@ -18,6 +18,7 @@
global:
android_init_namespaces;
android_create_namespace;
+ dlvsym;
} LIBC;
LIBC_PRIVATE {
diff --git a/libdl/libdl.arm64.map b/libdl/libdl.arm64.map
index 3535774..a8c98da 100644
--- a/libdl/libdl.arm64.map
+++ b/libdl/libdl.arm64.map
@@ -17,6 +17,7 @@
global:
android_init_namespaces;
android_create_namespace;
+ dlvsym;
} LIBC;
LIBC_PRIVATE {
diff --git a/libdl/libdl.c b/libdl/libdl.c
index af2f83e..0604d3e 100644
--- a/libdl/libdl.c
+++ b/libdl/libdl.c
@@ -24,9 +24,17 @@
// in the dynamic linker and hijacked at runtime.
void* dlopen(const char* filename __unused, int flag __unused) { return 0; }
+
const char* dlerror(void) { return 0; }
+
void* dlsym(void* handle __unused, const char* symbol __unused) { return 0; }
+
+void* dlvsym(void* handle __unused, const char* symbol __unused, const char* version __unused) {
+ return 0;
+}
+
int dladdr(const void* addr __unused, Dl_info* info __unused) { return 0; }
+
int dlclose(void* handle __unused) { return 0; }
#if defined(__arm__)
diff --git a/libdl/libdl.map.txt b/libdl/libdl.map.txt
index 8d123fe..55a03cb 100644
--- a/libdl/libdl.map.txt
+++ b/libdl/libdl.map.txt
@@ -32,6 +32,7 @@
global:
android_init_namespaces;
android_create_namespace;
+ dlvsym;
} LIBC;
LIBC_PRIVATE {
diff --git a/libdl/libdl.mips.map b/libdl/libdl.mips.map
index 3535774..a8c98da 100644
--- a/libdl/libdl.mips.map
+++ b/libdl/libdl.mips.map
@@ -17,6 +17,7 @@
global:
android_init_namespaces;
android_create_namespace;
+ dlvsym;
} LIBC;
LIBC_PRIVATE {
diff --git a/libdl/libdl.mips64.map b/libdl/libdl.mips64.map
index 3535774..a8c98da 100644
--- a/libdl/libdl.mips64.map
+++ b/libdl/libdl.mips64.map
@@ -17,6 +17,7 @@
global:
android_init_namespaces;
android_create_namespace;
+ dlvsym;
} LIBC;
LIBC_PRIVATE {
diff --git a/libdl/libdl.x86.map b/libdl/libdl.x86.map
index 3535774..a8c98da 100644
--- a/libdl/libdl.x86.map
+++ b/libdl/libdl.x86.map
@@ -17,6 +17,7 @@
global:
android_init_namespaces;
android_create_namespace;
+ dlvsym;
} LIBC;
LIBC_PRIVATE {
diff --git a/libdl/libdl.x86_64.map b/libdl/libdl.x86_64.map
index 3535774..a8c98da 100644
--- a/libdl/libdl.x86_64.map
+++ b/libdl/libdl.x86_64.map
@@ -17,6 +17,7 @@
global:
android_init_namespaces;
android_create_namespace;
+ dlvsym;
} LIBC;
LIBC_PRIVATE {