summaryrefslogtreecommitdiff
path: root/src/sys/stat.rs
diff options
context:
space:
mode:
authorAndrei-Marius Radu <thendiscard@users.noreply.github.com>2019-01-14 22:18:06 +0200
committerAndrei-Marius Radu <thendiscard@users.noreply.github.com>2019-01-15 00:53:52 +0200
commitbdca86b8f779ca258106c44ba380c0bd508ce911 (patch)
tree48be710bf6c49f0ec81b0fea47a70ad5d3d29498 /src/sys/stat.rs
parent7bcd9d2318602553c6bd917a4e552a580f9156bb (diff)
downloadnix-bdca86b8f779ca258106c44ba380c0bd508ce911.zip
Fix build and tests issues on OpenBSD 6.4+
1) lutimes doesn't exist on OpenBSD so it needs to be under conditional compilation. The only "reference" that I could find related to this is the discussion here: https://github.com/rust-lang/libc/pull/790 . 2) fexecve doesn't exist on OpenBSD so add conditional compilation for it in unistd and in related tests. The only "reference" that I could find is a mention that fexecve is not implemented on OpenBSD in the manual pages for signal(3) and sigaction(2): Official repository (search for "fexecve"): https://cvsweb.openbsd.org/src/lib/libc/sys/sigaction.2?rev=1.75&content-type=text/x-cvsweb-markup Github mirror: https://github.com/openbsd/src/blob/master/lib/libc/sys/sigaction.2#L619 3) AIO doesn't work on OpenBSD so put test_aio_drop under conditional compilation. 4) Add relevant changelog entries. P.S. On OpenBSD remains the issue of test_scm_rights which builds correctly but fails at runtime.
Diffstat (limited to 'src/sys/stat.rs')
-rw-r--r--src/sys/stat.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/sys/stat.rs b/src/sys/stat.rs
index e0367859..1e0936ed 100644
--- a/src/sys/stat.rs
+++ b/src/sys/stat.rs
@@ -209,7 +209,12 @@ pub fn utimes<P: ?Sized + NixPath>(path: &P, atime: &TimeVal, mtime: &TimeVal) -
/// # References
///
/// [lutimes(2)](http://pubs.opengroup.org/onlinepubs/9699919799/functions/lutimes.html).
-#[cfg(not(target_os = "android"))]
+#[cfg(any(target_os = "linux",
+ target_os = "haiku",
+ target_os = "ios",
+ target_os = "macos",
+ target_os = "freebsd",
+ target_os = "netbsd"))]
pub fn lutimes<P: ?Sized + NixPath>(path: &P, atime: &TimeVal, mtime: &TimeVal) -> Result<()> {
let times: [libc::timeval; 2] = [*atime.as_ref(), *mtime.as_ref()];
let res = path.with_nix_path(|cstr| unsafe {