void* dlopen(const char* filename, int flags) { return dlopen_ext(filename, flags, nullptr); }
void* android_dlopen_ext(const char* filename, int flags, const android_dlextinfo* extinfo) { return dlopen_ext(filename, flags, extinfo); }
void* android_dlopen_ext(const char* filename, int flags, const android_dlextinfo* extinfo) { void* caller_addr = __builtin_return_address(0); return dlopen_ext(filename, flags, extinfo, caller_addr); }
void* dlopen(const char* filename, int flags) { void* caller_addr = __builtin_return_address(0); return dlopen_ext(filename, flags, nullptr, caller_addr); }
void* dlopen(const char* filename, int flags) { return dlopen_ext(filename, flags, NULL); }