From: "Daniel P. Berrange" <berrange@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
Peter Maydell <peter.maydell@linaro.org>,
Igor Mammedov <imammedo@redhat.com>,
Stefan Hajnoczi <stefanha@gmail.com>,
qemu-devel@nongnu.org, Stefan Hajnoczi <stefanha@redhat.com>,
Stefan Weil <sw@weilnetz.de>, "Denis V. Lunev" <den@openvz.org>
Subject: Re: [Qemu-devel] [PATCH] mingw: fix build on Fedora 22
Date: Tue, 22 Sep 2015 14:48:04 +0100 [thread overview]
Message-ID: <20150922134804.GW28888@redhat.com> (raw)
In-Reply-To: <1442928883-4119-1-git-send-email-mst@redhat.com>
On Tue, Sep 22, 2015 at 04:38:31PM +0300, Michael S. Tsirkin wrote:
> mingw on Fedora 22 replaces localtime_r and gmtime_r
> macros with posix compliant functions in time.h.
>
> These conflict with QEMU supplied ones.
>
> Detect this and avoid overriding them.
>
> We also need to define POSIX_C_SOURCE before including
> time.h for the first time, to make sure these
> are available to all users.
>
> Reported-by: Stefan Hajnoczi <stefanha@gmail.com>
> Cc: Stefan Weil <sw@weilnetz.de>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
> include/qemu/osdep.h | 1 +
> include/sysemu/os-win32.h | 6 ++++++
> util/oslib-win32.c | 4 ++++
> 3 files changed, 11 insertions(+)
>
> diff --git a/include/qemu/osdep.h b/include/qemu/osdep.h
> index ab3c876..9920ac3 100644
> --- a/include/qemu/osdep.h
> +++ b/include/qemu/osdep.h
> @@ -25,6 +25,7 @@
> #ifndef QEMU_OSDEP_H
> #define QEMU_OSDEP_H
>
> +#define _POSIX_C_SOURCE 200809L
> #include "config-host.h"
> #include "qemu/compiler.h"
> #include <stdarg.h>
> diff --git a/include/sysemu/os-win32.h b/include/sysemu/os-win32.h
> index 706d85a..74230e7 100644
> --- a/include/sysemu/os-win32.h
> +++ b/include/sysemu/os-win32.h
> @@ -72,11 +72,17 @@
> #define sigsetjmp(env, savemask) setjmp(env)
> #define siglongjmp(env, val) longjmp(env, val)
>
> +#ifdef gmtime_r
> /* Missing POSIX functions. Don't use MinGW-w64 macros. */
> #undef gmtime_r
> +#define QEMU_NEED_GMTIME_R
> struct tm *gmtime_r(const time_t *timep, struct tm *result);
> +#endif
I don't think this is right. There are three possibilities
with mingw
- No gmtime_r at all - need replacement
- gmtime_r defined as a macro - need replacement
- gmtime_r defined as a function - nothing needed
With this change of yours, if gmtime_r is defined as a macro
QEMU will provide its own replacement. If gmtime_r is not
defined at all, then QEMU doesn't provide its replacement
which is wrong. I believe the change I previously proposed
works in all three cases
https://lists.gnu.org/archive/html/qemu-devel/2015-09/msg01926.html
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
next prev parent reply other threads:[~2015-09-22 13:48 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-22 13:38 [Qemu-devel] [PATCH] mingw: fix build on Fedora 22 Michael S. Tsirkin
2015-09-22 13:48 ` Daniel P. Berrange [this message]
2015-09-22 14:08 ` Michael S. Tsirkin
2015-09-22 14:14 ` Daniel P. Berrange
2015-09-22 14:09 ` Denis V. Lunev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150922134804.GW28888@redhat.com \
--to=berrange@redhat.com \
--cc=den@openvz.org \
--cc=imammedo@redhat.com \
--cc=kwolf@redhat.com \
--cc=mst@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.com \
--cc=stefanha@redhat.com \
--cc=sw@weilnetz.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.