Okay, i followed the steps from the reply to my email I noticed on the
website, but never made its way to my inbox. Now, I'm stuck with the
following errors:

/home/mike/qemu/include/glib-compat.h: At top level:
/home/mike/qemu/include/glib-compat.h:145:21: error: conflicting types for
‘g_cond_signal’
 static inline void (g_cond_signal)(CompatGCond *cond)
                     ^
In file included from
/usr/x86_64-w64-mingw32/include/glib-2.0/glib/gasyncqueue.h:34:0,
                 from /usr/x86_64-w64-mingw32/include/glib-2.0/glib.h:34,
                 from qga/commands.c:13:
/usr/x86_64-w64-mingw32/include/glib-2.0/glib/gthread.h:201:17: note:
previous declaration of ‘g_cond_signal’ was here
 void            g_cond_signal                   (GCond          *cond);
                 ^
In file included from /home/mike/qemu/include/qemu-common.h:25:0,
                 from ./qga/guest-agent-core.h:14,
                 from qga/commands.c:14:
/home/mike/qemu/include/glib-compat.h: In function ‘g_cond_signal’:
/home/mike/qemu/include/glib-compat.h:148:5: warning: passing argument 1 of
‘g_cond_signal’ from incompatible pointer type [enabled by default]
     g_cond_signal((GCond *) cond->once.retval);
     ^
/home/mike/qemu/include/glib-compat.h:145:21: note: expected ‘struct
CompatGCond *’ but argument is of type ‘struct GCond *’
 static inline void (g_cond_signal)(CompatGCond *cond)
                     ^
/home/mike/qemu/include/glib-compat.h: At top level:
/home/mike/qemu/include/glib-compat.h:154:24: error: static declaration of
‘g_thread_new’ follows non-static declaration
 static inline GThread *g_thread_new(const char *name,
                        ^
In file included from
/usr/x86_64-w64-mingw32/include/glib-2.0/glib/gasyncqueue.h:34:0,
                 from /usr/x86_64-w64-mingw32/include/glib-2.0/glib.h:34,
                 from qga/commands.c:13:
/usr/x86_64-w64-mingw32/include/glib-2.0/glib/gthread.h:145:17: note:
previous declaration of ‘g_thread_new’ was here
 GThread *       g_thread_new                    (const gchar    *name,
                 ^
make: *** [qga/commands.o] Error 1


On Fri, Sep 18, 2015 at 10:49 PM, Mike Ladouceur <mike.ladouc...@live.com>
wrote:

> I tried from Ubuntu in Virtualbox and this is the error I now get and it
> appears to be similar to the error from Cygwin. Configure seems to run
> fine. Make fails. I'm officially lost.
>
> ./configure --cross-prefix=x86_64-w64-mingw32
> (...)
>   CC    qga/commands-win32.o
> qga/commands-win32.c: In function ‘qmp_guest_set_user_password’:
> qga/commands-win32.c:1254:5: warning: passing argument 2 of
> ‘g_base64_decode’ from incompatible pointer type [enabled by default]
>      rawpasswddata = (char *)g_base64_decode(password, &rawpasswdlen);
>      ^
> In file included from /usr/include/glib-2.0/glib.h:35:0,
>                  from qga/commands-win32.c:14:
> /usr/include/glib-2.0/glib/gbase64.h:52:9: note: expected ‘gsize *’ but
> argument is of type ‘size_t *’
>  guchar *g_base64_decode         (const gchar  *text,
>          ^
>   CC    qga/channel-win32.o
> qga/channel-win32.c: In function ‘ga_channel_create_watch’:
> qga/channel-win32.c:199:24: warning: cast from pointer to integer of
> different size [-Wpointer-to-int-cast]
>      watch->pollfd.fd = (gintptr) c->rstate.ov.hEvent;
>                         ^
> qga/channel-win32.c: At top level:
> qga/channel-win32.c:205:11: error: conflicting types for ‘ga_channel_read’
>  GIOStatus ga_channel_read(GAChannel *c, char *buf, size_t size, gsize
> *count)
>            ^
> In file included from qga/channel-win32.c:9:0:
> ./qga/channel.h:30:11: note: previous declaration of ‘ga_channel_read’ was
> here
>  GIOStatus ga_channel_read(GAChannel *c, gchar *buf, gsize size, gsize
> *count);
>            ^
> qga/channel-win32.c:269:11: error: conflicting types for
> ‘ga_channel_write_all’
>  GIOStatus ga_channel_write_all(GAChannel *c, const char *buf, size_t size)
>            ^
> In file included from qga/channel-win32.c:9:0:
> ./qga/channel.h:31:11: note: previous declaration of
> ‘ga_channel_write_all’ was here
>  GIOStatus ga_channel_write_all(GAChannel *c, const gchar *buf, gsize
> size);
>            ^
> qga/channel-win32.c: In function ‘ga_channel_open’:
> qga/channel-win32.c:291:19: error: ‘MAXPATHLEN’ undeclared (first use in
> this function)
>      gchar newpath[MAXPATHLEN] = {0};
>                    ^
> qga/channel-win32.c:291:19: note: each undeclared identifier is reported
> only once for each function it appears in
> qga/channel-win32.c:291:11: warning: unused variable ‘newpath’
> [-Wunused-variable]
>      gchar newpath[MAXPATHLEN] = {0};
>            ^
> make: *** [qga/channel-win32.o] Error 1
>
>
> On Wed, Sep 16, 2015 at 1:51 PM, Mike Ladouceur <mike.ladouc...@live.com>
> wrote:
>
>> Thanks for the reply. I will try to cross-compile via cygwin seeing as
>> I've had no luck installing and configuring mingw64.
>>
>> On Tue, Sep 15, 2015 at 4:44 PM, Eric Blake <ebl...@redhat.com> wrote:
>>
>>> On 09/15/2015 02:10 PM, Stefan Weil wrote:
>>> >>
>>> >>   CC    qga/commands-win32.o
>>> >>> qga/commands-win32.c: In function ‘qmp_guest_set_user_password’:
>>> >>> qga/commands-win32.c:1254:55: warning: passing argument 2 of
>>> >>> ‘g_base64_decode’ from incompatible pointer type
>>> >>>      rawpasswddata = (char *)g_base64_decode(password,
>>> &rawpasswdlen);
>>> >>>                                                        ^
>>>
>>> Ugh. Compiling for cygwin should favor POSIX interfaces, not
>>> commands-win32.  The build is failing because it isn't even correctly
>>> deciding  which files it should be compiling.
>>>
>>>
>>> > compiling with cygwin is unsupported. I suggest using MinGW-w64
>>> > (which also works for cross compilations under Linux).
>>>
>>> Remember, cygwin is itself an emulation layer - you are emulating POSIX
>>> interfaces on top of Windows; which, while making the environment easier
>>> to port to, also makes the environment slower.  qemu targets mingw and
>>> not cygwin because qemu is an emulator and already slow enough, without
>>> needing another layer of emulation thrown in the mix.
>>>
>>> That said, if you want to port qemu to cygwin and supply patches, I'm
>>> more than willing to help review them. It's just that right now, it's
>>> not my personal itch to write such patches, and that the qemu community
>>> currently favors mingw rather than cygwin.
>>>
>>> Also, cygwin comes with cross-compilers, so you can still use your
>>> cygwin setup to compile qemu for mingw (although doing the cross-compile
>>> on a true Linux box will be faster).
>>>
>>> --
>>> Eric Blake   eblake redhat com    +1-919-301-3266
>>> Libvirt virtualization library http://libvirt.org
>>>
>>>
>>
>

Reply via email to