From 60fe1d00e89021115d9eb97c236c493a81349d5a Mon Sep 17 00:00:00 2001 From: Anton Lazarev Date: Wed, 1 Dec 2021 20:24:02 -0800 Subject: [PATCH] Avoid using unavailable RTLD_NODELETE flag on Android targets --- program-runtime/src/native_loader.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/program-runtime/src/native_loader.rs b/program-runtime/src/native_loader.rs index 659148b4bb..5242f0de20 100644 --- a/program-runtime/src/native_loader.rs +++ b/program-runtime/src/native_loader.rs @@ -123,7 +123,11 @@ impl NativeLoader { fn library_open(path: &Path) -> Result { unsafe { // Linux tls bug can cause crash on dlclose(), workaround by never unloading - Library::open(Some(path), libc::RTLD_NODELETE | libc::RTLD_NOW) + #[cfg(target_os = "android")] + let flags = libc::RTLD_NOW; + #[cfg(not(target_os = "android"))] + let flags = libc::RTLD_NODELETE | libc::RTLD_NOW; + Library::open(Some(path), flags) } }