summaryrefslogtreecommitdiffstats
path: root/vendor/filetime/src/unix
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:18:25 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:18:25 +0000
commit5363f350887b1e5b5dd21a86f88c8af9d7fea6da (patch)
tree35ca005eb6e0e9a1ba3bb5dbc033209ad445dc17 /vendor/filetime/src/unix
parentAdding debian version 1.66.0+dfsg1-1. (diff)
downloadrustc-5363f350887b1e5b5dd21a86f88c8af9d7fea6da.tar.xz
rustc-5363f350887b1e5b5dd21a86f88c8af9d7fea6da.zip
Merging upstream version 1.67.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/filetime/src/unix')
-rw-r--r--vendor/filetime/src/unix/mod.rs7
-rw-r--r--vendor/filetime/src/unix/utimensat.rs8
2 files changed, 13 insertions, 2 deletions
diff --git a/vendor/filetime/src/unix/mod.rs b/vendor/filetime/src/unix/mod.rs
index 66f9fc219..8b7788837 100644
--- a/vendor/filetime/src/unix/mod.rs
+++ b/vendor/filetime/src/unix/mod.rs
@@ -15,7 +15,8 @@ cfg_if::cfg_if! {
mod utimes;
mod macos;
pub use self::macos::*;
- } else if #[cfg(any(target_os = "solaris",
+ } else if #[cfg(any(target_os = "aix",
+ target_os = "solaris",
target_os = "illumos",
target_os = "emscripten",
target_os = "freebsd",
@@ -46,6 +47,10 @@ fn to_timespec(ft: &Option<FileTime>) -> timespec {
} else if #[cfg(target_os = "haiku")] {
// https://git.haiku-os.org/haiku/tree/headers/posix/sys/stat.h?#n106
const UTIME_OMIT: i64 = 1000000001;
+ } else if #[cfg(target_os = "aix")] {
+ // AIX hasn't disclosed system header files yet.
+ // https://github.com/golang/go/blob/master/src/cmd/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go#L1007
+ const UTIME_OMIT: i64 = -3;
} else {
// http://cvsweb.netbsd.org/bsdweb.cgi/src/sys/sys/stat.h?annotate=1.68.30.1
// https://github.com/emscripten-core/emscripten/blob/master/system/include/libc/sys/stat.h#L71
diff --git a/vendor/filetime/src/unix/utimensat.rs b/vendor/filetime/src/unix/utimensat.rs
index 42a1ada2c..c9153a67f 100644
--- a/vendor/filetime/src/unix/utimensat.rs
+++ b/vendor/filetime/src/unix/utimensat.rs
@@ -32,7 +32,7 @@ pub fn set_file_handle_times(
}
pub fn set_symlink_file_times(p: &Path, atime: FileTime, mtime: FileTime) -> io::Result<()> {
- set_times(p, Some(atime), Some(mtime), false)
+ set_times(p, Some(atime), Some(mtime), true)
}
fn set_times(
@@ -42,6 +42,12 @@ fn set_times(
symlink: bool,
) -> io::Result<()> {
let flags = if symlink {
+ if cfg!(target_os = "emscripten") {
+ return Err(io::Error::new(
+ io::ErrorKind::Other,
+ "emscripten does not support utimensat for symlinks",
+ ));
+ }
libc::AT_SYMLINK_NOFOLLOW
} else {
0