From 7dd62155d85e9556c2b2b70c03acce9910896696 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Tue, 21 Apr 2015 20:01:34 -0700 Subject: std: Don't assume dlopen() works on yourself Statically linked executables do not succeed (aka MUSL-based executables). --- src/libstd/sys/unix/thread.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/libstd/sys') diff --git a/src/libstd/sys/unix/thread.rs b/src/libstd/sys/unix/thread.rs index 281ac37e671..cfab9d1c51a 100644 --- a/src/libstd/sys/unix/thread.rs +++ b/src/libstd/sys/unix/thread.rs @@ -342,7 +342,10 @@ fn min_stack_size(attr: *const libc::pthread_attr_t) -> usize { static mut __pthread_get_minstack: Option = None; INIT.call_once(|| { - let lib = DynamicLibrary::open(None).unwrap(); + let lib = match DynamicLibrary::open(None) { + Ok(l) => l, + Err(..) => return, + }; unsafe { if let Ok(f) = lib.symbol("__pthread_get_minstack") { __pthread_get_minstack = Some(mem::transmute::<*const (), F>(f)); -- cgit 1.4.1-3-g733a5