summaryrefslogtreecommitdiffstats
path: root/linker/dlfcn.c
diff options
context:
space:
mode:
Diffstat (limited to 'linker/dlfcn.c')
-rw-r--r--linker/dlfcn.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/linker/dlfcn.c b/linker/dlfcn.c
index 053713c..039926c 100644
--- a/linker/dlfcn.c
+++ b/linker/dlfcn.c
@@ -137,6 +137,12 @@ int dlclose(void *handle)
#define ANDROID_LIBDL_STRTAB \
"dlopen\0dlclose\0dlsym\0dlerror\0dl_iterate_phdr\0"
+#elif defined(ANDROID_SH_LINKER)
+// 0000000 00011111 111112 22222222 2333333333344444
+// 0123456 78901234 567890 12345678 9012345678901234
+#define ANDROID_LIBDL_STRTAB \
+ "dlopen\0dlclose\0dlsym\0dlerror\0dl_iterate_phdr\0"
+
#else /* !defined(ANDROID_ARM_LINKER) && !defined(ANDROID_X86_LINKER) */
#error Unsupported architecture. Only ARM and x86 are presently supported.
#endif
@@ -181,6 +187,12 @@ static Elf32_Sym libdl_symtab[] = {
st_info: STB_GLOBAL << 4,
st_shndx: 1,
},
+#elif defined(ANDROID_SH_LINKER)
+ { st_name: 29,
+ st_value: (Elf32_Addr) &dl_iterate_phdr,
+ st_info: STB_GLOBAL << 4,
+ st_shndx: 1,
+ },
#endif
};