summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2023-09-12 20:03:04 +0000
committerLaurent Bercot <ska@appnovation.com>2023-09-12 20:03:04 +0000
commitb80efa2003d8208dc5ebdee285c363dc9c5e5844 (patch)
tree345dd03df488c9f44c7f16f3aa133d7535b25720 /src
parent47b410cd382d965c2c449f9c30c533b5d12def19 (diff)
downloadskalibs-b80efa2003d8208dc5ebdee285c363dc9c5e5844.tar.xz
Try another workaround for bad struct stat
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src')
-rw-r--r--src/include/skalibs/stat.h29
-rw-r--r--src/sysdeps/trystatimespec.c3
2 files changed, 14 insertions, 18 deletions
diff --git a/src/include/skalibs/stat.h b/src/include/skalibs/stat.h
index de85cce..ac13e54 100644
--- a/src/include/skalibs/stat.h
+++ b/src/include/skalibs/stat.h
@@ -3,29 +3,22 @@
#ifndef SKALIBS_STAT_H
#define SKALIBS_STAT_H
-#include <skalibs/sysdeps.h>
-
-#ifdef SKALIBS_HASSTATIM
-
-#define ST_ATIM st_atim
-#define ST_MTIM st_mtim
-#define ST_CTIM st_ctim
+ /*
+ This header must always be paired with skalibs/nonposix.h
+ (which must always come first).
+ If you #include <sys/stat.h> before this, it will not work.
+ */
-#else
-
-#ifdef SKALIBS_HASSTATIMESPEC
+#include <skalibs/sysdeps.h>
-#define ST_ATIM st_atimespec
-#define ST_MTIM st_mtimespec
-#define ST_CTIM st_ctimespec
+#include <sys/stat.h>
-#else
+#if !defined(SKALIBS_HASSTATIM) && defined(SKALIBS_HASSTATIMESPEC)
-#define ST_ATIM st_how_the_fuck_do_you_even_get_atime_on_this_OS
-#define ST_MTIM st_how_the_fuck_do_you_even_get_mtime_on_this_OS
-#define ST_CTIM st_how_the_fuck_do_you_even_get_ctime_on_this_OS
+#define st_atim st_atimespec
+#define st_mtim st_mtimespec
+#define st_ctim st_ctimespec
#endif
-#endif
#endif
diff --git a/src/sysdeps/trystatimespec.c b/src/sysdeps/trystatimespec.c
index 2690d57..3c12237 100644
--- a/src/sysdeps/trystatimespec.c
+++ b/src/sysdeps/trystatimespec.c
@@ -1,5 +1,8 @@
/* ISC license. */
+#undef _POSIX_C_SOURCE
+#undef _XOPEN_SOURCE
+
#include <sys/stat.h>
#include <time.h>