On 9 déc. 2009, at 00:01, Alexander Graf wrote: > > Am 08.12.2009 um 19:35 schrieb Blue Swirl <blauwir...@gmail.com>: > >> On Tue, Dec 8, 2009 at 4:35 PM, Pierre Riteau <pierre.rit...@irisa.fr> wrote: >>> On 1 oct. 2009, at 18:13, Blue Swirl wrote: >>> >>>> On Thu, Oct 1, 2009 at 6:30 PM, G 3 <programmingk...@gmail.com> wrote: >>>>> On Sep 30, 2009, at 3:16 PM, Anthony Liguori wrote: >>>>> >>>>> G 3 wrote: >>>>> >>>>> This patch fixes a problem in the file cutils.c that prevents qemu from >>>>> being built on Mac OS X. This patch makes sure fsync is used instead. >>>>> >>>>> What is this against? It doesn't apply to git. >>>>> >>>>> This is against the savannah >>>>> repository: git://git.savannah.nongnu.org/qemu.git. Is this the wrong >>>>> repository? >>>> >>>> The patch should not be needed since >>>> 5f6b9e8fd5b9516170e582d9b6c27c98519a8031. Do you still have a problem? >>> >>> Sorry to dig up this old thread, but I just tried compiling qemu on my Mac >>> and I see a warning when it compiles: >>> cutils.c: In function ‘qemu_fdatasync’: >>> cutils.c:128: warning: implicit declaration of function ‘fdatasync’ >>> >>> I'm running OS X 10.6.2 with Xcode 3.2.1. >>> >>> Why this behavior? Because the configure check introduced in 5f6b9e finds >>> that fdatasync is available. >>> Although the fdatasync function is not referenced in the standard includes >>> (hence the warning), it is present as a syscall: >>> /usr/include/sys/syscall.h:#define SYS_fdatasync 187 >>> Moreover, a fdatasync symbol is available through libSystem (which is why >>> the linking done by the configure check works). >>> >>> It's not clear what is the best solution here. Googling the issue, some >>> projects add the fdatasync prototype to their headers to avoid warnings. >>> Other assume that fdatasync could be a noop and fall back to fsync. >>> >>> I would go with the second second: the function is not defined, there is no >>> man page, let's assume it doesn't work. >>> To fix the configure check we can simply add -Werror to the compile_prog >>> cflags (I will send a patch if you agree with this). >> >> I'd rather add something like >> #ifdef __APPLE__ >> exit(1); >> #endif >> (or the shell equivalent for configure) and a comment with your explanation. >> >> > > > I guess that's wrong. With --disable-werror it compiles just fine. So I think > we're rather missing a header include. > > Alex
Compiling just fine doesn't necessarily mean thatt qemu will run fine and do what we want it to do. But in this case it may: i took a look at the XNU sources (I didn't think about this solution first, I forgot it was open source...) and fdatasync appears to be implemented. So I guess that we can probably add the missing prototype in one of our header? -- Pierre Riteau -- http://perso.univ-rennes1.fr/pierre.riteau/