diff options
| author | bors <bors@rust-lang.org> | 2021-07-10 21:42:40 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-07-10 21:42:40 +0000 |
| commit | dfd7b8d03fb93d0e03147d28b3be6d93260fa94d (patch) | |
| tree | 4a4310069f11ed4d0f2fdd3aadaf02fbc67a5fb3 /library/std/src/sys/unix/kernel_copy.rs | |
| parent | 432e145bd5a974c5b6f4dd9b352891bd7502b69d (diff) | |
| parent | 5999a5fbdc91ac07d4103095ed532d8cd4d3443b (diff) | |
| download | rust-dfd7b8d03fb93d0e03147d28b3be6d93260fa94d.tar.gz rust-dfd7b8d03fb93d0e03147d28b3be6d93260fa94d.zip | |
Auto merge of #85953 - inquisitivecrystal:weak-linkat-in-fs-hardlink, r=joshtriplett
Fix linker error Currently, `fs::hard_link` determines whether platforms have `linkat` based on the OS, and uses `link` if they don't. However, this heuristic does not work well if a platform provides `linkat` on newer versions but not on older ones. On old MacOS, this currently causes a linking error. This commit fixes `fs::hard_link` by telling it to use `weak!` on macOS. This means that, on that operating system, we now check for `linkat` at runtime and use `link` if it is not available. Fixes #80804. `@rustbot` label T-libs-impl
Diffstat (limited to 'library/std/src/sys/unix/kernel_copy.rs')
| -rw-r--r-- | library/std/src/sys/unix/kernel_copy.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/library/std/src/sys/unix/kernel_copy.rs b/library/std/src/sys/unix/kernel_copy.rs index 9687576bb6a..a6b43229ba6 100644 --- a/library/std/src/sys/unix/kernel_copy.rs +++ b/library/std/src/sys/unix/kernel_copy.rs @@ -61,6 +61,7 @@ use crate::process::{ChildStderr, ChildStdin, ChildStdout}; use crate::ptr; use crate::sync::atomic::{AtomicBool, AtomicU8, Ordering}; use crate::sys::cvt; +use crate::sys::weak::syscall; use libc::{EBADF, EINVAL, ENOSYS, EOPNOTSUPP, EOVERFLOW, EPERM, EXDEV}; #[cfg(test)] |
