Hello,

I have been trying to get libvirt compiled on Cygwin but I have run into a rather perplexing issue.

I am running a 32-bit installation of Cygwin on Windows 10:

CYGWIN_NT-10.0-WOW dell-desktop 2.4.0(0.293/5/3) 2016-01-15 16:14 i686 Cygwin

I have had to "fix" a number of problems in the Makefile that prevented the code from linking properly. I am not sure if the fixes are entirely correct - but as long as the linker was ok I pressed on.

After applying those changes to the Makefile, I ran into the following issue when creating libvirtd.exe:

  CCLD     libvirtd.exe
../src/.libs/libvirt_driver_remote.a(libvirt_net_rpc_la-virnetmessage.o): In function `virNetMessageNew':
/home/maart/source/libvirt/src/rpc/virnetmessage.c:39: multiple definition of `virNetMessageNew'
/home/maart/source/libvirt/src/.libs/libvirt.dll.a(d002143.o):(.text+0x0): first defined here
...
collect2: error: ld returned 1 exit status
Makefile:2152: recipe for target 'libvirtd.exe' failed
make[3]: *** [libvirtd.exe] Error 1
make[3]: Leaving directory '/cygdrive/c/cygwin64/home/maart/source/libvirt/daemon'
Makefile:2050: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/cygdrive/c/cygwin64/home/maart/source/libvirt/daemon'
Makefile:1993: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/cygdrive/c/cygwin64/home/maart/source/libvirt'
Makefile:1887: recipe for target 'all' failed
make: *** [all] Error 2

It appears to me that somehow when the executable is linked together, it finds two separate definitions of the virNetMessageNew method, however I cannot figure out how that could be.

If anybody has any suggestions on how to debug this I'd appreciate it.

For clarity: my aim is to get the code to compile first, whether or not it will actually work under Cygwin. I do not believe there should be a specific reason why this code could not be made to compile/link - even if the end result may not work as intended... But I hope to find that out once I successfully create the resulting executables.

Thanks,

Maarten Jacobs