summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2024-05-16 16:54:39 -0400
committerTavian Barnes <tavianator@tavianator.com>2024-05-16 16:55:23 -0400
commitc3d6f07b8e4d22df533ce7a90660ae1da2df5476 (patch)
treef3012333ab647526b4a5bc22ba314e25e668c773
parentd7e62391f934c65f3e2d8e5d6bff744747d077b0 (diff)
downloadbfs-c3d6f07b8e4d22df533ce7a90660ae1da2df5476.tar.xz
stat: Support __st_birthtim on OpenBSD
-rw-r--r--build/has/--st-birthtim.c9
-rw-r--r--build/header.mk1
-rw-r--r--src/stat.c3
3 files changed, 13 insertions, 0 deletions
diff --git a/build/has/--st-birthtim.c b/build/has/--st-birthtim.c
new file mode 100644
index 0000000..4da621f
--- /dev/null
+++ b/build/has/--st-birthtim.c
@@ -0,0 +1,9 @@
+// Copyright © Tavian Barnes <tavianator@tavianator.com>
+// SPDX-License-Identifier: 0BSD
+
+#include <sys/stat.h>
+
+int main(void) {
+ struct stat sb = {0};
+ return sb.__st_birthtim.tv_sec;
+}
diff --git a/build/header.mk b/build/header.mk
index 8412fd5..3cea6d7 100644
--- a/build/header.mk
+++ b/build/header.mk
@@ -9,6 +9,7 @@ include build/exports.mk
# All header fragments we generate
HEADERS := \
+ gen/has/--st-birthtim.h \
gen/has/acl-get-entry.h \
gen/has/acl-get-file.h \
gen/has/acl-get-tag-type.h \
diff --git a/src/stat.c b/src/stat.c
index 5a10a99..2044564 100644
--- a/src/stat.c
+++ b/src/stat.c
@@ -116,6 +116,9 @@ void bfs_stat_convert(struct bfs_stat *dest, const struct stat *src) {
#if BFS_HAS_ST_BIRTHTIM
dest->btime = src->st_birthtim;
dest->mask |= BFS_STAT_BTIME;
+#elif BFS_HAS___ST_BIRTHTIM
+ dest->btime = src->__st_birthtim;
+ dest->mask |= BFS_STAT_BTIME;
#elif BFS_HAS_ST_BIRTHTIMESPEC
dest->btime = src->st_birthtimespec;
dest->mask |= BFS_STAT_BTIME;