[libvirt] Compiling libvirt on Cygwin

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 statusMakefile:2152: recipe for target 'libvirtd.exe' failedmake[3]: *** [libvirtd.exe] Error 1make[3]: Leaving directory '/cygdrive/c/cygwin64/home/maart/source/libvirt/daemon'Makefile:2050: recipe for target 'all' failedmake[2]: *** [all] Error 2make[2]: Leaving directory '/cygdrive/c/cygwin64/home/maart/source/libvirt/daemon'Makefile:1993: recipe for target 'all-recursive' failedmake[1]: *** [all-recursive] Error 1make[1]: Leaving directory '/cygdrive/c/cygwin64/home/maart/source/libvirt'Makefile:1887: recipe for target 'all' failedmake: *** [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

Hello, It would seem this mailing list is pretty busy - however I have not seen any responses to my email? Is there anybody who can take a peek at this and give me some suggestions? Thanks, Maarten Jacobs From: maarten256@hotmail.com To: libvir-list@redhat.com Date: Sun, 24 Jan 2016 12:57:51 -0500 Subject: [libvirt] Compiling libvirt on Cygwin 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 statusMakefile:2152: recipe for target 'libvirtd.exe' failedmake[3]: *** [libvirtd.exe] Error 1make[3]: Leaving directory '/cygdrive/c/cygwin64/home/maart/source/libvirt/daemon'Makefile:2050: recipe for target 'all' failedmake[2]: *** [all] Error 2make[2]: Leaving directory '/cygdrive/c/cygwin64/home/maart/source/libvirt/daemon'Makefile:1993: recipe for target 'all-recursive' failedmake[1]: *** [all-recursive] Error 1make[1]: Leaving directory '/cygdrive/c/cygwin64/home/maart/source/libvirt'Makefile:1887: recipe for target 'all' failedmake: *** [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 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list

On Sun, Jan 24, 2016 at 12:57:51PM -0500, Maarten Jacobs wrote:
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 statusMakefile:2152: recipe for target 'libvirtd.exe' failedmake[3]: *** [libvirtd.exe] Error 1make[3]: Leaving directory '/cygdrive/c/cygwin64/home/maart/source/libvirt/daemon'Makefile:2050: recipe for target 'all' failedmake[2]: *** [all] Error 2make[2]: Leaving directory '/cygdrive/c/cygwin64/home/maart/source/libvirt/daemon'Makefile:1993: recipe for target 'all-recursive' failedmake[1]: *** [all-recursive] Error 1make[1]: Leaving directory '/cygdrive/c/cygwin64/home/maart/source/libvirt'Makefile:1887: recipe for target 'all' failedmake: *** [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.
We don't do any testing on the Cygwin platform, so that you see errors is not entirely surprising. Our supported Win32 builds are cross compiled with the Mingw32 toolchain, so I'd really suggest using the latter unless you're interested in digging into the build system to figure out why Cygwin is failing. 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 :|
participants (2)
-
Daniel P. Berrange
-
Maarten Jacobs