fdatasync is an optional part of POSIX and mkimage uses the more general fsync on Sun and FreeBSD as an alternative. Add macOS[1] and OpenBSD to the list as well. This is in-line with what U-Boot does since 31cbe80c33 ("mkimage: fix compilation issues on OpenBSD"). [1]: macOS >=10.7 does indeed define (but not declare anywhere) a seemingly working fdatasync, but we won't consider this here. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- scripts/mkimage.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/scripts/mkimage.c b/scripts/mkimage.c index 891d7b6de71c..7d283c550930 100644 --- a/scripts/mkimage.c +++ b/scripts/mkimage.c @@ -572,7 +572,11 @@ NXTARG: ; } /* We're a bit of paranoid */ -#if defined(_POSIX_SYNCHRONIZED_IO) && !defined(__sun__) && !defined(__FreeBSD__) +#if defined(_POSIX_SYNCHRONIZED_IO) && \ + !defined(__sun__) && \ + !defined(__FreeBSD__) && \ + !defined(__OpenBSD__) && \ + !defined(__APPLE__) (void) fdatasync (ifd); #else (void) fsync (ifd); @@ -622,7 +626,11 @@ NXTARG: ; (void) munmap((void *)ptr, sbuf.st_size); /* We're a bit of paranoid */ -#if defined(_POSIX_SYNCHRONIZED_IO) && !defined(__sun__) && !defined(__FreeBSD__) +#if defined(_POSIX_SYNCHRONIZED_IO) && \ + !defined(__sun__) && \ + !defined(__FreeBSD__) && \ + !defined(__OpenBSD__) && \ + !defined(__APPLE__) (void) fdatasync (ifd); #else (void) fsync (ifd); -- 2.20.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox