summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJessica Clarke <[email protected]>2021-03-26 17:45:12 +0000
committerGitHub <[email protected]>2021-03-26 10:45:12 -0700
commitef977fce66369e11769eaba0839dca19d4ddb484 (patch)
treee8f58f5beb49847a0189c85240a448c35a613c41
parent8a915ba1f66edc3863c0dcb1c2a4f83582cd4a94 (diff)
Support running FreeBSD buildworld on Arm-based macOS hosts
Arm-based Macs are like FreeBSD and provide a full 64-bit stat from the start, so have no stat64 variants. Thus, define stat64 and fstat64 as aliases for the normal versions. Reviewed-by: Ryan Moeller <[email protected]> Signed-off-by: Jessica Clarke <[email protected]> Closes #11771
-rw-r--r--lib/libspl/include/os/freebsd/sys/stat.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/libspl/include/os/freebsd/sys/stat.h b/lib/libspl/include/os/freebsd/sys/stat.h
index 07f9762f0..38c684d62 100644
--- a/lib/libspl/include/os/freebsd/sys/stat.h
+++ b/lib/libspl/include/os/freebsd/sys/stat.h
@@ -29,6 +29,7 @@
#include_next <sys/stat.h>
/* Note: this file can be used on linux/macOS when bootstrapping tools. */
+
#if defined(__FreeBSD__)
#include <sys/mount.h> /* for BLKGETSIZE64 */
@@ -71,4 +72,14 @@ fstat64_blk(int fd, struct stat64 *st)
return (0);
}
#endif /* defined(__FreeBSD__) */
+
+/*
+ * Only Intel-based Macs have a separate stat64; Arm-based Macs are like
+ * FreeBSD and have a full 64-bit stat from the start.
+ */
+#if defined(__APPLE__) && !(defined(__i386__) || defined(__x86_64__))
+#define stat64 stat
+#define fstat64 fstat
+#endif
+
#endif /* _LIBSPL_SYS_STAT_H */