qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH V2 1/3] Darwin: Fix incorrect check for fdatasyn


From: Andreas Färber
Subject: Re: [Qemu-devel] [PATCH V2 1/3] Darwin: Fix incorrect check for fdatasync() in configure
Date: Thu, 2 Jun 2011 00:26:39 +0200

Thanks, applied to the cocoa branch with a modified description.

Am 30.05.2011 um 04:32 schrieb Alexandre Raymond:

I didn't notice anything broken. I just stumbled upon this bug while
reviewing the code.

Alexandre

On Sun, May 29, 2011 at 8:09 PM, Alexandre Raymond <address@hidden> wrote:
Sure, I'm fine with that. I wasn't sure how much detail you actually
wanted in this commit message :)

I like precise explanations, they can be time-saving when bisecting code. :)

http://repo.or.cz/w/qemu/afaerber.git/commit/eb5a6b85bb9a409ade5f72cd1b5f827e9bae904c

Andreas

On Sun, May 29, 2011 at 7:36 PM, Andreas Färber <address@hidden > wrote:
Am 30.05.2011 um 00:22 schrieb Alexandre Raymond:

Under darwin (OS X 10.6.7), a symbol exists for the fdatasync() method but it is not supported because _POSIX_SYNCHRONIZED_IO is set to '-1'.

Question: How did you notice? Did anything break that we could mention, or
did you just review the code?

Enable fdatasync() only if _POSIX_SYNCHRONIZED_IO is '>0', as per
The Open Group Base Specifications Issue 7.

Not quite what I meant. ;) Would you be okay with the following:

configure: Fix check for fdatasync()

Under Darwin, a symbol exists for the fdatasync() function, but it is
not supported. Yada yada. _POSIX_SYNCHRONIZED_IO is set to '-1'.

According to POSIX:2008, a value of -1 means the feature is not supported. A value of 0 means supported at compilation time, and a value greater 0
means supported at both compilation and run time.

Enable fdatasync() only if _POSIX_SYNCHRONIZED_IO is '>0'.

Andreas

Signed-off-by: Alexandre Raymond <address@hidden>
---
configure |    8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/configure b/configure
index a318d37..b21ef75 100755
--- a/configure
+++ b/configure
@@ -2477,7 +2477,13 @@ fi
fdatasync=no
cat > $TMPC << EOF
#include <unistd.h>
-int main(void) { return fdatasync(0); }
+int main(void) {
+#if defined(_POSIX_SYNCHRONIZED_IO) && _POSIX_SYNCHRONIZED_IO > 0
+return fdatasync(0);
+#else
+#abort Not supported
+#endif
+}
EOF
if compile_prog "" "" ; then
   fdatasync=yes
--
1.7.5




reply via email to

[Prev in Thread] Current Thread [Next in Thread]