aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJessica Clarke <jrtc27@FreeBSD.org>2021-03-27 02:23:59 +0000
committerJessica Clarke <jrtc27@FreeBSD.org>2021-03-27 02:23:59 +0000
commit3a314eb5bb444ec019457e5aefaabb656fcb3d54 (patch)
tree86c2e2abd5c90422c4f425c32265437b2c9543d7
parentfe496dc02a9a276d940e72bbd155dc256a34076f (diff)
downloadsrc-3a314eb5bb444ec019457e5aefaabb656fcb3d54.tar.gz
src-3a314eb5bb444ec019457e5aefaabb656fcb3d54.zip
zfs: Cherry-pick upstream commit ef977fce6636 to fix macOS/arm64 bootstrap
Upstream commit message: 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 <ryan@iXsystems.com> Signed-off-by: Jessica Clarke <jrtc27@jrtc27.com> Closes #11771 MFC after: 1 week
-rw-r--r--sys/contrib/openzfs/lib/libspl/include/os/freebsd/sys/stat.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/sys/contrib/openzfs/lib/libspl/include/os/freebsd/sys/stat.h b/sys/contrib/openzfs/lib/libspl/include/os/freebsd/sys/stat.h
index 07f9762f09ee..38c684d62a1b 100644
--- a/sys/contrib/openzfs/lib/libspl/include/os/freebsd/sys/stat.h
+++ b/sys/contrib/openzfs/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 */