diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:18:32 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:18:32 +0000 |
commit | 4547b622d8d29df964fa2914213088b148c498fc (patch) | |
tree | 9fc6b25f3c3add6b745be9a2400a6e96140046e9 /vendor/filetime | |
parent | Releasing progress-linux version 1.66.0+dfsg1-1~progress7.99u1. (diff) | |
download | rustc-4547b622d8d29df964fa2914213088b148c498fc.tar.xz rustc-4547b622d8d29df964fa2914213088b148c498fc.zip |
Merging upstream version 1.67.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/filetime')
-rw-r--r-- | vendor/filetime/.cargo-checksum.json | 2 | ||||
-rw-r--r-- | vendor/filetime/Cargo.toml | 4 | ||||
-rw-r--r-- | vendor/filetime/src/lib.rs | 17 | ||||
-rw-r--r-- | vendor/filetime/src/unix/mod.rs | 7 | ||||
-rw-r--r-- | vendor/filetime/src/unix/utimensat.rs | 8 |
5 files changed, 28 insertions, 10 deletions
diff --git a/vendor/filetime/.cargo-checksum.json b/vendor/filetime/.cargo-checksum.json index 1bb0218a6..8d7b7ce7d 100644 --- a/vendor/filetime/.cargo-checksum.json +++ b/vendor/filetime/.cargo-checksum.json @@ -1 +1 @@ -{"files":{"Cargo.toml":"306f64716452fa6471a91ef01a7b11a7fa833b3c34b02578b8f1d7b988c917e3","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"6cd295d9f4efe412971b1855ecaf7b19ef3956006a652ea205c456a5d33550c1","src/lib.rs":"a9f94f2fc09cc46acd0d5ffafea2bcf0770d85bc98245c89221b2b23dbcfcb63","src/redox.rs":"898997b73c20818cf4601a1f4bcdf1b7dbf3b5d9d071cdc9fce5d1652f6bfc43","src/unix/android.rs":"d929826a9a92003b7aaa6435adc220efbb70c15308f9eed5ee517d88451fcaf6","src/unix/linux.rs":"061f0f7bd7a41f29b9d24b6487e302d650e9399f0dcc54595211e20ae4945da6","src/unix/macos.rs":"1b19a24bee240aba8d564405991bb0ee36ba72217461c8ac6829144d28f7e046","src/unix/mod.rs":"4392d0928578de017976552fdde0a0c86ec14fabeb1f1ec87223a40f69ba3d08","src/unix/utimensat.rs":"dbb6371ffaf91754afa870aa3ceedc400530a449721d3f6c572a3907c489634d","src/unix/utimes.rs":"d2d8ca5daed3d1ec0a0aed1fc03450deb4b7f1fcdb96ed40b8d2cfefd0e827ee","src/wasm.rs":"a82734259846a3349d42da011c1065d21f3981bd20d6eb43495e34808b83af9a","src/windows.rs":"3314a0def8028d8f2a4bc01377d5874ab9ddf8684aad13573c89b427bf2d9911"},"package":"e94a7bbaa59354bc20dd75b67f23e2797b4490e9d6928203fb105c79e448c86c"}
\ No newline at end of file +{"files":{"Cargo.toml":"c82074c47610281bf7c3de20e143b8795ac39543df6c52e86e96506f7747e93f","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"6cd295d9f4efe412971b1855ecaf7b19ef3956006a652ea205c456a5d33550c1","src/lib.rs":"eec6b5e3be2c1d5e068a9724b503e729a1e11dae4cd1bc816110c94a0bc14fa0","src/redox.rs":"898997b73c20818cf4601a1f4bcdf1b7dbf3b5d9d071cdc9fce5d1652f6bfc43","src/unix/android.rs":"d929826a9a92003b7aaa6435adc220efbb70c15308f9eed5ee517d88451fcaf6","src/unix/linux.rs":"061f0f7bd7a41f29b9d24b6487e302d650e9399f0dcc54595211e20ae4945da6","src/unix/macos.rs":"1b19a24bee240aba8d564405991bb0ee36ba72217461c8ac6829144d28f7e046","src/unix/mod.rs":"d6a4ae02099c46874e13c9fe71103cdecc394467e6c443950d27488ce9ec927b","src/unix/utimensat.rs":"0876aa32393689fcb5eec913c5d34954956a715913d611749b04243a2dbcf897","src/unix/utimes.rs":"d2d8ca5daed3d1ec0a0aed1fc03450deb4b7f1fcdb96ed40b8d2cfefd0e827ee","src/wasm.rs":"a82734259846a3349d42da011c1065d21f3981bd20d6eb43495e34808b83af9a","src/windows.rs":"3314a0def8028d8f2a4bc01377d5874ab9ddf8684aad13573c89b427bf2d9911"},"package":"4b9663d381d07ae25dc88dbdf27df458faa83a9b25336bcac83d5e452b5fc9d3"}
\ No newline at end of file diff --git a/vendor/filetime/Cargo.toml b/vendor/filetime/Cargo.toml index 381433176..ba219b3e5 100644 --- a/vendor/filetime/Cargo.toml +++ b/vendor/filetime/Cargo.toml @@ -12,7 +12,7 @@ [package] edition = "2018" name = "filetime" -version = "0.2.17" +version = "0.2.18" authors = ["Alex Crichton <alex@alexcrichton.com>"] description = """ Platform-agnostic accessors of timestamps in File metadata @@ -40,7 +40,7 @@ version = "0.2.9" version = "0.2.27" [target."cfg(windows)".dependencies.windows-sys] -version = "0.36.0" +version = "0.42.0" features = [ "Win32_Foundation", "Win32_Storage_FileSystem", diff --git a/vendor/filetime/src/lib.rs b/vendor/filetime/src/lib.rs index 594d8a8ae..95ea5d4f7 100644 --- a/vendor/filetime/src/lib.rs +++ b/vendor/filetime/src/lib.rs @@ -47,7 +47,7 @@ cfg_if::cfg_if! { } else if #[cfg(windows)] { #[path = "windows.rs"] mod imp; - } else if #[cfg(target_family = "wasm")] { + } else if #[cfg(all(target_family = "wasm", not(target_os = "emscripten")))] { #[path = "wasm.rs"] mod imp; } else { @@ -561,11 +561,18 @@ mod tests { set_file_times(&path, atime, mtime).unwrap(); let new_mtime = FileTime::from_unix_time(-10_000, 0); - set_file_times(&path, atime, new_mtime).unwrap(); + if cfg!(target_os = "aix") { + // On AIX, os checks if the unix timestamp is valid. + let result = set_file_times(&path, atime, new_mtime); + assert!(result.is_err()); + assert!(result.err().unwrap().kind() == std::io::ErrorKind::InvalidInput); + } else { + set_file_times(&path, atime, new_mtime).unwrap(); - let metadata = fs::metadata(&path).unwrap(); - let mtime = FileTime::from_last_modification_time(&metadata); - assert_eq!(mtime, new_mtime); + let metadata = fs::metadata(&path).unwrap(); + let mtime = FileTime::from_last_modification_time(&metadata); + assert_eq!(mtime, new_mtime); + } } #[test] 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 |