Message ID | A428939A-2D4D-4F89-8C42-85AA500F3D6D@gmail.com |
---|---|
State | Superseded |
Headers | show |
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. > Signed-off-by: John Arbuckle <programmingkidx@gmail.com > <mailto:programmingkidx@gmail.com>> > > --- > cutils.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/cutils.c b/cutils.c > index 7a22346..84eabf2 100644 > --- a/cutils.c > +++ b/cutils.c > @@ -124,7 +124,7 @@ int qemu_fls(int i) > */ > int qemu_fdatasync(int fd) > { > -#ifdef _POSIX_SYNCHRONIZED_IO > +#if ( defined(_POSIX_SYNCHRONIZED_IO) && !defined(__APPLE__) ) > return fdatasync(fd); > #else > return fsync(fd); > -- > 1.6.4.2 >
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?
On Thu, Oct 1, 2009 at 6:30 PM, G 3 <programmingkidx@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?
On 1 oct. 2009, at 18:13, Blue Swirl wrote: > On Thu, Oct 1, 2009 at 6:30 PM, G 3 <programmingkidx@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).
On Tue, Dec 8, 2009 at 4:35 PM, Pierre Riteau <Pierre.Riteau@irisa.fr> wrote: > On 1 oct. 2009, at 18:13, Blue Swirl wrote: > >> On Thu, Oct 1, 2009 at 6:30 PM, G 3 <programmingkidx@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.
On 8 déc. 2009, at 19:35, Blue Swirl wrote: > On Tue, Dec 8, 2009 at 4:35 PM, Pierre Riteau <Pierre.Riteau@irisa.fr> wrote: >> On 1 oct. 2009, at 18:13, Blue Swirl wrote: >> >>> On Thu, Oct 1, 2009 at 6:30 PM, G 3 <programmingkidx@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'm fine with that too.
Am 08.12.2009 um 19:35 schrieb Blue Swirl <blauwirbel@gmail.com>: > On Tue, Dec 8, 2009 at 4:35 PM, Pierre Riteau > <Pierre.Riteau@irisa.fr> wrote: >> On 1 oct. 2009, at 18:13, Blue Swirl wrote: >> >>> On Thu, Oct 1, 2009 at 6:30 PM, G 3 <programmingkidx@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
On 9 déc. 2009, at 00:01, Alexander Graf wrote: > > Am 08.12.2009 um 19:35 schrieb Blue Swirl <blauwirbel@gmail.com>: > >> On Tue, Dec 8, 2009 at 4:35 PM, Pierre Riteau <Pierre.Riteau@irisa.fr> wrote: >>> On 1 oct. 2009, at 18:13, Blue Swirl wrote: >>> >>>> On Thu, Oct 1, 2009 at 6:30 PM, G 3 <programmingkidx@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?
diff --git a/cutils.c b/cutils.c index 7a22346..84eabf2 100644 --- a/cutils.c +++ b/cutils.c @@ -124,7 +124,7 @@ int qemu_fls(int i) */ int qemu_fdatasync(int fd) { -#ifdef _POSIX_SYNCHRONIZED_IO +#if ( defined(_POSIX_SYNCHRONIZED_IO) && !defined(__APPLE__) ) return fdatasync(fd); #else return fsync(fd);
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. Signed-off-by: John Arbuckle <programmingkidx@gmail.com> --- cutils.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)