Il 17/01/2013 22:18, Blue Swirl ha scritto: > On Thu, Jan 17, 2013 at 8:54 PM, Stefan Weil <s...@weilnetz.de> wrote: >> Am 17.01.2013 21:45, schrieb Blue Swirl: >> >>> On Wed, Jan 16, 2013 at 6:04 PM, Stefan Weil<s...@weilnetz.de> wrote: >>>> >>>> MinGW has no strtok_r, so we need a declaration in sysemu/os-win32.h. >>>> We must also fix the include statements in util/envlist.c to include >>>> that file. >>>> >>>> We currently don't need an implementation of strtok_r because the >>>> code is compiled but not linked for MinGW. >>> >>> >>> I think it would be better to fix the build system so that unnecessary >>> files are not compiled. >> >> >> That's what I suggested first, but keeping things simple is also >> a good argument. Perhaps we should accept that libqemuutil.a >> can contain some unnecessary files (that's the status quo!). > > This could be related. I get build errors on OpenBSD: > LINK i386-bsd-user/qemu-i386 > ../libqemuutil.a(oslib-posix.o)(.text+0x540): In function `qemu_vmalloc': > /src/qemu/util/oslib-posix.c:112: multiple definition of `qemu_vmalloc' > bsd-user/mmap.o(.text+0x400):/src/qemu/bsd-user/mmap.c:78: first defined here > /usr/bin/ld: Warning: size of symbol `qemu_vmalloc' changed from 260 > in bsd-user/mmap.o to 124 in ../libqemuutil.a(oslib-posix.o)
Does this fix it? diff --git a/bsd-user/mmap.c b/bsd-user/mmap.c index 5d6cffc..1f4d4a3 100644 --- a/bsd-user/mmap.c +++ b/bsd-user/mmap.c @@ -74,7 +74,7 @@ void mmap_unlock(void) } #endif -void *qemu_vmalloc(size_t size) +static void *qemu_vmalloc(size_t size) { void *p; mmap_lock(); (A better change is of course to also rename qemu_vmalloc). >> >> We also get the additional benefit of more portable code. >> Even if that portability is not needed for the moment, >> it might be useful later. > > Yes, though building as an example KVM code on Win32 may be useful one > day, that day may be distant. That's not the kind of extra code that Stefan is talking about. It's extra data structures (envlist.c) that are placed in a static library but do not appear in any final build product. Instead, "building KVM code on Win32" is in fact something we have been doing for years, see kvm-stub.c. Paolo