about summary refs log tree commit diff
diff options
context:
space:
mode:
author王宇逸 <Strawberry_Str@hotmail.com>2025-05-16 17:47:29 +0800
committer王宇逸 <Strawberry_Str@hotmail.com>2025-05-16 17:47:29 +0800
commit12c8fb857c97f97a0351eecc94e97e71b04cda70 (patch)
treef947d9d0bfbcaa79fe10024c8a84ac1dd6702a7f
parent5e048e0786674db68220b7e0e8b19b2a96bcae7c (diff)
downloadrust-12c8fb857c97f97a0351eecc94e97e71b04cda70.tar.gz
rust-12c8fb857c97f97a0351eecc94e97e71b04cda70.zip
Fix fname for miri
-rw-r--r--src/tools/miri/src/shims/native_lib.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/tools/miri/src/shims/native_lib.rs b/src/tools/miri/src/shims/native_lib.rs
index 0258a76c3e7..837e1b31cac 100644
--- a/src/tools/miri/src/shims/native_lib.rs
+++ b/src/tools/miri/src/shims/native_lib.rs
@@ -117,7 +117,12 @@ trait EvalContextExtPriv<'tcx>: crate::MiriInterpCxExt<'tcx> {
         let mut info = std::mem::MaybeUninit::<libc::Dl_info>::uninit();
         unsafe {
             if libc::dladdr(*func.deref() as *const _, info.as_mut_ptr()) != 0 {
-                if std::ffi::CStr::from_ptr(info.assume_init().dli_fname).to_str().unwrap()
+                let info = info.assume_init();
+                #[cfg(target_os = "cygwin")]
+                let fname_ptr = info.dli_fname.as_ptr();
+                #[cfg(not(target_os = "cygwin"))]
+                let fname_ptr = info.dli_fname;
+                if std::ffi::CStr::from_ptr(fname_ptr).to_str().unwrap()
                     != _lib_path.to_str().unwrap()
                 {
                     return None;