diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:18:25 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:18:25 +0000 |
commit | 5363f350887b1e5b5dd21a86f88c8af9d7fea6da (patch) | |
tree | 35ca005eb6e0e9a1ba3bb5dbc033209ad445dc17 /vendor/filetime/src/unix | |
parent | Adding debian version 1.66.0+dfsg1-1. (diff) | |
download | rustc-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.rs | 7 | ||||
-rw-r--r-- | vendor/filetime/src/unix/utimensat.rs | 8 |
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 |