Hi,
I need windows binaries for 0.15.0 so I tried to find them but no luck, so I tried to build it myself with cygwin.
By following Lassauge’s advices on
http://lassauge.free.fr/qemu/ I reached the point where make tries to build/link qemu.exe but ld fails. I think reaching this point
is a good sign, considering the amount of changes included in the windows patch for 0.13.0 (or 0.15.0 also needs heavy modifying to be builded on cygwin??)
The error are related to multeple definition of _sin, _cos and other related math functions in libmsvcrt.a. I found some info about this type of error but it looks like it usually involves heavy-code changing in the libraries.
Question: Can someone help me with some advices about changing some library-versions or compilation-settings or maybe changing compiler?
=======
I applied no patches to 0.15.0 and this is the output of the qemu.exe building:
==================================================
gcc -mno-cygwin -m32 -D__USE_MINGW_ANSI_STDIO=1 -DWIN32_LEAN_AND_MEAN -DWINVER=0x501 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURC
E -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -Wendif-labels -Wnested-externs -Wformat-securi
ty -Wformat-y2k -Winit-self -Wold-style-definition -DHAS_AUDIO -DHAS_AUDIO_CHOICE -DTARGET_PHYS_ADDR_BITS=64 -I.. -I/home/ralch/qemu/qemu-0.15.0/target-i386 -D
NEED_CPU_H -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -O2 -g -O4 -march=i686 -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase -Wl,--warn-common -m32
-g -Wl,-V -o qemu.exe arch_init.o cpus.o monitor.o machine.o gdbstub.o balloon.o virtio.o virtio-blk.o virtio-balloon.o virtio-net.o virtio-serial-bus.o vhost
_net.o rwhandler.o kvm-stub.o xen-stub.o ../cutils.o ../cache-utils.o ../qemu-malloc.o ../qemu-option.o ../module.o ../async.o ../nbd.o ../block.o ../aio.o ../a
es.o ../qemu-config.o ../qemu-progress.o ../qemu-sockets.o ../block/raw.o ../block/cow.o ../block/qcow.o ../block/vdi.o ../block/vmdk.o ../block/cloop.o ../bloc
k/dmg.o ../block/bochs.o ../block/vpc.o ../block/vvfat.o ../block/qcow2.o ../block/qcow2-refcount.o ../block/qcow2-cluster.o ../block/qcow2-snapshot.o ../block/
qcow2-cache.o ../block/qed.o ../block/qed-gencb.o ../block/qed-l2-cache.o ../block/qed-table.o ../block/qed-cluster.o ../block/qed-check.o ../block/parallels.o
../block/nbd.o ../block/blkdebug.o ../block/sheepdog.o ../block/blkverify.o ../block/raw-win32.o ../blockdev.o ../net.o ../net/queue.o ../net/checksum.o ../net/
util.o ../net/socket.o ../net/dump.o ../net/tap-win32.o ../net/slirp.o ../qint.o ../qstring.o ../qdict.o ../qlist.o ../qfloat.o ../qbool.o ../qjson.o ../json-le
xer.o ../json-streamer.o ../json-parser.o ../qerror.o ../error.o ../readline.o ../console.o ../cursor.o ../qemu-error.o ../osdep.o ../oslib-win32.o ../qemu-thre
ad-win32.o ../os-win32.o ../tcg-runtime.o ../host-utils.o ../irq.o ../ioport.o ../input.o ../i2c.o ../smbus.o ../smbus_eeprom.o ../eeprom93xx.o ../scsi-disk.o .
./cdrom.o ../scsi-generic.o ../scsi-bus.o ../usb.o ../usb-hub.o ../usb-stub.o ../usb-hid.o ../usb-msd.o ../usb-wacom.o ../usb-serial.o ../usb-net.o ../usb-bus.o
../usb-desc.o ../bt.o ../bt-host.o ../bt-vhci.o ../bt-l2cap.o ../bt-sdp.o ../bt-hci.o ../bt-hid.o ../usb-bt.o ../bt-hci-csr.o ../buffered_file.o ../migration.o
../migration-tcp.o ../qemu-char.o ../savevm.o ../msmouse.o ../ps2.o ../qdev.o ../qdev-properties.o ../block-migration.o ../iohandler.o ../pflib.o ../bitmap.o .
./bitops.o ../version.o ../audio/audio.o ../audio/noaudio.o ../audio/wavaudio.o ../audio/mixeng.o ../audio/sdlaudio.o ../audio/dsoundaudio.o ../audio/audio_win_
int.o ../audio/wavcapture.o ../ui/keymaps.o ../ui/sdl.o ../ui/sdl_zoom.o ../ui/x_keymap.o ../ui/vnc.o ../ui/d3des.o ../ui/vnc-enc-zlib.o ../ui/vnc-enc-hextile.o
../ui/vnc-enc-tight.o ../ui/vnc-palette.o ../ui/vnc-enc-zrle.o ../ui/vnc-jobs-sync.o ../iov.o ../acl.o ../notify.o ../event_notifier.o ../qemu-timer.o ../qemu-
timer-common.o ../slirp/cksum.o ../slirp/if.o ../slirp/ip_icmp.o ../slirp/ip_input.o ../slirp/ip_output.o ../slirp/slirp.o ../slirp/mbuf.o ../slirp/misc.o ../sl
irp/sbuf.o ../slirp/socket.o ../slirp/tcp_input.o ../slirp/tcp_output.o ../slirp/tcp_subr.o ../slirp/tcp_timer.o ../slirp/udp.o ../slirp/bootp.o ../slirp/tftp.o
../libdis/i386-dis.o exec.o translate-all.o cpu-exec.o translate.o tcg/tcg.o fpu/softfloat.o op_helper.o helper.o cpuid.o disas.o ../libhw64/vl.o ../libhw64/lo
ader.o ../libhw64/virtio-console.o ../libhw64/virtio-pci.o ../libhw64/fw_cfg.o ../libhw64/pci.o ../libhw64/pci_bridge.o ../libhw64/msix.o ../libhw64/msi.o ../li
bhw64/pci_host.o ../libhw64/pcie_host.o ../libhw64/ioh3420.o ../libhw64/xio3130_upstream.o ../libhw64/xio3130_downstream.o ../libhw64/watchdog.o ../libhw64/seri
al.o ../libhw64/parallel.o ../libhw64/i8254.o ../libhw64/pcspk.o ../libhw64/pckbd.o ../libhw64/usb-uhci.o ../libhw64/usb-ohci.o ../libhw64/usb-ehci.o ../libhw64
/fdc.o ../libhw64/acpi.o ../libhw64/acpi_piix4.o ../libhw64/pm_smbus.o ../libhw64/apm.o ../libhw64/dma.o ../libhw64/hpet.o ../libhw64/applesmc.o ../libhw64/usb-
ccid.o ../libhw64/ccid-card-passthru.o ../libhw64/wdt_i6300esb.o ../libhw64/pcie.o ../libhw64/pcie_aer.o ../libhw64/pcie_port.o ../libhw64/ne2000.o ../libhw64/e
epro100.o ../libhw64/pcnet-pci.o ../libhw64/pcnet.o ../libhw64/e1000.o ../libhw64/rtl8139.o ../libhw64/ne2000-isa.o ../libhw64/ide/core.o ../libhw64/ide/atapi.o
../libhw64/ide/qdev.o ../libhw64/ide/pci.o ../libhw64/ide/isa.o ../libhw64/ide/piix.o ../libhw64/ide/ahci.o ../libhw64/ide/ich.o ../libhw64/lsi53c895a.o ../lib
hw64/dma-helpers.o ../libhw64/sysbus.o ../libhw64/isa-bus.o ../libhw64/qdev-addr.o ../libhw64/vga-pci.o ../libhw64/vga-isa.o ../libhw64/vmware_vga.o ../libhw64/
vmmouse.o ../libhw64/sb16.o ../libhw64/es1370.o ../libhw64/ac97.o ../libhw64/fmopl.o ../libhw64/adlib.o ../libhw64/gus.o ../libhw64/gusemu_hal.o ../libhw64/guse
mu_mixer.o ../libhw64/cs4231a.o ../trace.o vga.o mc146818rtc.o i8259.o pc.o cirrus_vga.o sga.o apic.o ioapic.o piix_pci.o vmport.o device-hotplug.o pci-hotplug.
o smbios.o wdt_ib700.o debugcon.o multiboot.o pc_piix.o -lpthreadGC2 -lwinmm -lws2_32 -liberty -liphlpapi -lglib-2.0 -lintl -liconv -lole32 -ldxguid -mno-cyg
win -L/usr/lib/mingw -lmingw32 -lSDLmain -lSDL -lm -luser32 -lgdi32 -lwinmm -ldxguid -mconsole -lm -lz
/usr/i686-pc-mingw32/sys-root/mingw/lib/libmsvcrt.a(dsfjs00686.o):(.text+0x0): multiple definition of `_modf'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../libm.a(t-d001316.o):(.text+0x0): first defined here
/usr/i686-pc-mingw32/sys-root/mingw/lib/libmsvcrt.a(dsfjs00599.o):(.text+0x0): multiple definition of `_cos'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../libm.a(t-d000792.o):(.text+0x0): first defined here
/usr/i686-pc-mingw32/sys-root/mingw/lib/libmsvcrt.a(dsfjs00707.o):(.text+0x0): multiple definition of `_sin'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../libm.a(t-d001655.o):(.text+0x0): first defined here
/usr/i686-pc-mingw32/sys-root/mingw/lib/libmsvcrt.a(dsfjs00596.o):(.text+0x0): multiple definition of `_ceil'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../libm.a(t-d000760.o):(.text+0x0): first defined here
/usr/i686-pc-mingw32/sys-root/mingw/lib/libmsvcrt.a(dsfjs00616.o):(.text+0x0): multiple definition of `_floor'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../libm.a(t-d000976.o):(.text+0x0): first defined here
/usr/i686-pc-mingw32/sys-root/mingw/lib/libmsvcrt.a(dsfjs00589.o):(.text+0x0): multiple definition of `_atan2'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../libm.a(t-d000716.o):(.text+0x0): first defined here
/usr/i686-pc-mingw32/sys-root/mingw/lib/libmsvcrt.a(dsfjs00737.o):(.text+0x0): multiple definition of `_tan'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../libm.a(t-d001744.o):(.text+0x0): first defined here
/usr/i686-pc-mingw32/sys-root/mingw/lib/libmsvcrt.a(dsfjs00673.o):(.text+0x0): multiple definition of `_log'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../libm.a(t-d001249.o):(.text+0x0): first defined here
/usr/i686-pc-mingw32/sys-root/mingw/lib/libmsvcrt.a(dsfjs00688.o):(.text+0x0): multiple definition of `_pow'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../libm.a(t-d001381.o):(.text+0x0): first defined here
/usr/i686-pc-mingw32/sys-root/mingw/lib/libmsvcrt.a(dsfjs00674.o):(.text+0x0): multiple definition of `_log10'
/usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../libm.a(t-d001250.o):(.text+0x0): first defined here
GNU ld (GNU Binutils) 2.21
Supported emulations:
i386pe
collect2: ld returned 1 exit status
make[1]: *** [qemu.exe] Error 1
make[1]: Leaving directory `/home/ralch/qemu/qemu-0.15.0/i386-softmmu'
make: *** [subdir-i386-softmmu] Error 2
==================================================
By the way, I obtained almost the same results with qemu-0.14.1
My ./configure command was:
$ CFLAGS="-O4 -march=i686" ./configure --target-list="i386-softmmu" --cc="gcc -mno-cygwin" --host-cc=gcc --audio-drv-list="dsound sdl" --audio-card-list="ac97 es1370 sb16 cs4231a adlib gus"
Note that I did not provide fmod and lib-usb because I am not interested in them (could that be a problem for this build?)
TIA
Rolando
Guatemala