summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-02-21 08:45:40 +0000
committerbors <bors@rust-lang.org>2023-02-21 08:45:40 +0000
commit90531f68dcd9e6383f8390eb7f2e34935aa0905e (patch)
tree193371f64bdbe1a5381c5ec407d09e9197c9f26b
parent9e633205ce8c7ed450da4af68bc57ca98d88de8a (diff)
parent69659517e866debfe796b6f42043e042b4ccbd48 (diff)
downloadrust-libc-90531f68dcd9e6383f8390eb7f2e34935aa0905e.tar.gz
Auto merge of #3124 - valpackett:fbsd, r=JohnTitor
FreeBSD: add AT_RESOLVE_BENEATH, Linux-compatible clock aliases - sorry for the spam xD *now* I should be done with that area of the APIā€¦ - +mirror one other thing that [was done](https://reviews.freebsd.org/D30988) in the headers to reduce portability annoyance :)
-rw-r--r--libc-test/build.rs12
-rw-r--r--libc-test/semver/freebsd.txt4
-rw-r--r--src/unix/bsd/freebsdlike/freebsd/mod.rs1
-rw-r--r--src/unix/bsd/freebsdlike/mod.rs3
4 files changed, 18 insertions, 2 deletions
diff --git a/libc-test/build.rs b/libc-test/build.rs
index a4058f89d0..6cb00172d4 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -2074,14 +2074,22 @@ fn test_freebsd(target: &str) {
// These constants were introduced in FreeBSD 13:
"EFD_CLOEXEC" | "EFD_NONBLOCK" | "EFD_SEMAPHORE" if Some(13) > freebsd_ver => true,
- // This constant was introduced in FreeBSD 12:
- "O_RESOLVE_BENEATH" if Some(12) > freebsd_ver => true,
+ // These constants were introduced in FreeBSD 12:
+ "AT_RESOLVE_BENEATH" | "O_RESOLVE_BENEATH" if Some(12) > freebsd_ver => true,
// These constants were introduced in FreeBSD 13:
"O_DSYNC" | "O_PATH" | "O_EMPTY_PATH" | "AT_EMPTY_PATH" if Some(13) > freebsd_ver => {
true
}
+ // These aliases were introduced in FreeBSD 13:
+ // (note however that the constants themselves work on any version)
+ "CLOCK_BOOTTIME" | "CLOCK_REALTIME_COARSE" | "CLOCK_MONOTONIC_COARSE"
+ if Some(13) > freebsd_ver =>
+ {
+ true
+ }
+
// FIXME: These are deprecated - remove in a couple of releases.
// These constants were removed in FreeBSD 11 (svn r273250) but will
// still be accepted and ignored at runtime.
diff --git a/libc-test/semver/freebsd.txt b/libc-test/semver/freebsd.txt
index 33442a4b11..429ae63eb8 100644
--- a/libc-test/semver/freebsd.txt
+++ b/libc-test/semver/freebsd.txt
@@ -100,6 +100,7 @@ AT_PHDR
AT_PHENT
AT_PHNUM
AT_REMOVEDIR
+AT_RESOLVE_BENEATH
AT_SYMLINK_FOLLOW
AT_SYMLINK_NOFOLLOW
AT_UID
@@ -148,10 +149,13 @@ CLD_EXITED
CLD_KILLED
CLD_STOPPED
CLD_TRAPPED
+CLOCK_BOOTTIME
+CLOCK_MONOTONIC_COARSE
CLOCK_MONOTONIC_FAST
CLOCK_MONOTONIC_PRECISE
CLOCK_PROCESS_CPUTIME_ID
CLOCK_PROF
+CLOCK_REALTIME_COARSE
CLOCK_REALTIME_FAST
CLOCK_REALTIME_PRECISE
CLOCK_SECOND
diff --git a/src/unix/bsd/freebsdlike/freebsd/mod.rs b/src/unix/bsd/freebsdlike/freebsd/mod.rs
index e69c32ad9e..b70a40f15d 100644
--- a/src/unix/bsd/freebsdlike/freebsd/mod.rs
+++ b/src/unix/bsd/freebsdlike/freebsd/mod.rs
@@ -3737,6 +3737,7 @@ pub const AT_EACCESS: ::c_int = 0x100;
pub const AT_SYMLINK_NOFOLLOW: ::c_int = 0x200;
pub const AT_SYMLINK_FOLLOW: ::c_int = 0x400;
pub const AT_REMOVEDIR: ::c_int = 0x800;
+pub const AT_RESOLVE_BENEATH: ::c_int = 0x2000;
pub const AT_EMPTY_PATH: ::c_int = 0x4000;
pub const AT_NULL: ::c_int = 0;
diff --git a/src/unix/bsd/freebsdlike/mod.rs b/src/unix/bsd/freebsdlike/mod.rs
index 9aefb36e4e..6a0f383bc0 100644
--- a/src/unix/bsd/freebsdlike/mod.rs
+++ b/src/unix/bsd/freebsdlike/mod.rs
@@ -824,12 +824,15 @@ pub const CLOCK_VIRTUAL: ::clockid_t = 1;
pub const CLOCK_PROF: ::clockid_t = 2;
pub const CLOCK_MONOTONIC: ::clockid_t = 4;
pub const CLOCK_UPTIME: ::clockid_t = 5;
+pub const CLOCK_BOOTTIME: ::clockid_t = CLOCK_UPTIME;
pub const CLOCK_UPTIME_PRECISE: ::clockid_t = 7;
pub const CLOCK_UPTIME_FAST: ::clockid_t = 8;
pub const CLOCK_REALTIME_PRECISE: ::clockid_t = 9;
pub const CLOCK_REALTIME_FAST: ::clockid_t = 10;
+pub const CLOCK_REALTIME_COARSE: ::clockid_t = CLOCK_REALTIME_FAST;
pub const CLOCK_MONOTONIC_PRECISE: ::clockid_t = 11;
pub const CLOCK_MONOTONIC_FAST: ::clockid_t = 12;
+pub const CLOCK_MONOTONIC_COARSE: ::clockid_t = CLOCK_MONOTONIC_FAST;
pub const CLOCK_SECOND: ::clockid_t = 13;
pub const CLOCK_THREAD_CPUTIME_ID: ::clockid_t = 14;
pub const CLOCK_PROCESS_CPUTIME_ID: ::clockid_t = 15;