diff options
author | Sitsofe Wheeler <sitsofe@yahoo.com> | 2019-10-05 12:04:33 +0100 |
---|---|---|
committer | Sitsofe Wheeler <sitsofe@yahoo.com> | 2019-10-06 07:33:36 +0100 |
commit | 44f668d7ba3d82c1218951b8c9ed058bedb89e17 (patch) | |
tree | 5bc3c36e2d98955e57a29ff8cf2ca8621bfa6fea | |
parent | 13e9c0b09c0c8d892b790aeaf736263dd76f2d2e (diff) | |
download | fio-44f668d7ba3d82c1218951b8c9ed058bedb89e17.tar.gz fio-44f668d7ba3d82c1218951b8c9ed058bedb89e17.tar.bz2 |
configure: stop enabling fdatasync on OSX
Change configure compile probes to fail on implicit declarations. This
(correctly) stops us from enabling fdatasync on OSX which was
problematic because we were actually calling a syscall stub with
arguments different to what was declared in its prototype (see
https://github.com/gbrault/picoc/issues/145#issuecomment-89734655 and
https://gitlab.freedesktop.org/xdg/shared-mime-info/issues/7 ).
Fixes: https://github.com/axboe/fio/issues/834 ("Drop macOS support for
fdatasync")
Signed-off-by: Sitsofe Wheeler <sitsofe@yahoo.com>
-rw-r--r-- | HOWTO | 2 | ||||
-rwxr-xr-x | configure | 4 | ||||
-rw-r--r-- | fio.1 | 2 | ||||
-rw-r--r-- | os/os-mac.h | 6 |
4 files changed, 4 insertions, 10 deletions
@@ -1279,7 +1279,7 @@ I/O type .. option:: fdatasync=int Like :option:`fsync` but uses :manpage:`fdatasync(2)` to only sync data and - not metadata blocks. In Windows, FreeBSD, and DragonFlyBSD there is no + not metadata blocks. In Windows, FreeBSD, DragonFlyBSD or OSX there is no :manpage:`fdatasync(2)` so this falls back to using :manpage:`fsync(2)`. Defaults to 0, which means fio does not periodically issue and wait for a data-only sync to complete. @@ -88,14 +88,14 @@ do_cc() { } compile_object() { - do_cc $CFLAGS -c -o $TMPO $TMPC + do_cc $CFLAGS -Werror-implicit-function-declaration -c -o $TMPO $TMPC } compile_prog() { local_cflags="$1" local_ldflags="$2 $LIBS" echo "Compiling test case $3" >> config.log - do_cc $CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags + do_cc $CFLAGS -Werror-implicit-function-declaration $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags } feature_not_found() { @@ -1050,7 +1050,7 @@ see \fBend_fsync\fR and \fBfsync_on_close\fR. .TP .BI fdatasync \fR=\fPint Like \fBfsync\fR but uses \fBfdatasync\fR\|(2) to only sync data and -not metadata blocks. In Windows, FreeBSD, and DragonFlyBSD there is no +not metadata blocks. In Windows, FreeBSD, DragonFlyBSD or OSX there is no \fBfdatasync\fR\|(2) so this falls back to using \fBfsync\fR\|(2). Defaults to 0, which means fio does not periodically issue and wait for a data\-only sync to complete. diff --git a/os/os-mac.h b/os/os-mac.h index a073300c..0d97f6b9 100644 --- a/os/os-mac.h +++ b/os/os-mac.h @@ -97,12 +97,6 @@ static inline int gettid(void) } #endif -/* - * For some reason, there's no header definition for fdatasync(), even - * if it exists. - */ -extern int fdatasync(int fd); - static inline bool fio_fallocate(struct fio_file *f, uint64_t offset, uint64_t len) { fstore_t store = {F_ALLOCATEALL, F_PEOFPOSMODE, offset, len}; |