* [Qemu-devel] [PATCH] some remarks to build last version of qemu in MSYS2 (from user)
@ 2019-06-20 0:38 Метлицкий Юрий
2020-03-07 18:47 ` Philippe Mathieu-Daudé
0 siblings, 1 reply; 2+ messages in thread
From: Метлицкий Юрий @ 2019-06-20 0:38 UTC (permalink / raw)
To: qemu-devel
Hello!
Today I tried to build qemu from git in the current version of MSYS2 for Windows 10 (X64).
As a result, got the file qemu-setup-4.0.50.exe
But on the way to this I met several problems that I want to share.
Sorry to be newbie and write in bad english. And so...
After resolving all packages dependencies, I execute the commands:
$ ./configure --enable-gtk --enable-sdl --enable-vnc-sasl --enable-capstone=system --enable-docs
----------------------------------------------------------------------------------------------------------
Install prefix c:/Program Files/QEMU
BIOS directory c:/Program Files/QEMU
firmware path c:/Program Files/QEMU/share/qemu-firmware
binary directory c:/Program Files/QEMU
library directory c:/Program Files/QEMU/lib
module directory c:/Program Files/QEMU/lib
libexec directory c:/Program Files/QEMU/libexec
include directory c:/Program Files/QEMU/include
config directory c:/Program Files/QEMU
local state directory queried at runtime
Windows SDK no
Source path /home/my/qemu
GIT binary git
GIT submodules ui/keycodemapdb tests/fp/berkeley-testfloat-3 tests/fp/berkeley-softfloat-3 dtc slirp
C compiler cc
Host C compiler cc
C++ compiler c++
Objective-C compiler cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
QEMU_CFLAGS -IC:/msys64/mingw64/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -Werror -DHAS_LIBSSH2_SFTP_FSYNC -IC:/msys64/mingw64/include -pthread -mms-bitfields -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/glib-2.0 -IC:/msys64/mingw64/lib/glib-2.0/include -IC:/msys64/mingw64/include -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/p11-kit-1 -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/libpng16 -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/capstone
LDFLAGS -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase -Wl,--warn-common -m64 -g
QEMU_LDFLAGS -L$(BUILD_DIR)/dtc/libfdt
make make
install install
python python3 -B (3.7.3)
slirp support git
smbd /usr/sbin/smbd
module support no
host CPU x86_64
host big endian no
target list aarch64-softmmu alpha-softmmu arm-softmmu cris-softmmu hppa-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblazeel-softmmu microblaze-softmmu mips64el-softmmu mips64-softmmu mipsel-softmmu mips-softmmu moxie-softmmu nios2-softmmu or1k-softmmu ppc64-softmmu ppc-softmmu riscv32-softmmu riscv64-softmmu s390x-softmmu sh4eb-softmmu sh4-softmmu sparc64-softmmu sparc-softmmu tricore-softmmu unicore32-softmmu x86_64-softmmu xtensaeb-softmmu xtensa-softmmu
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
SDL support yes (2.0.9)
SDL image support no
GTK support yes (3.24.8)
GTK GL support no
VTE support no
TLS priority NORMAL
GNUTLS support yes
libgcrypt no
nettle yes (3.4.1)
libtasn1 yes
PAM no
iconv support yes
curses support no
virgl support no
curl support yes
mingw32 support yes
Audio drivers dsound
Block whitelist (rw)
Block whitelist (ro)
VirtFS support no
Multipath support no
VNC support yes
VNC SASL support yes
VNC JPEG support yes
VNC PNG support yes
xen support no
brlapi support no
bluez support no
Documentation yes
PIE no
vde support no
netmap support no
Linux AIO support no
ATTR/XATTR support no
Install blobs yes
KVM support no
HAX support yes
HVF support no
WHPX support no
TCG support yes
TCG debug enabled no
TCG interpreter no
malloc trim support no
RDMA support no
PVRDMA support no
fdt support git
membarrier no
preadv support no
fdatasync no
madvise no
posix_madvise no
posix_memalign no
libcap-ng support no
vhost-net support
vhost-crypto support no
vhost-scsi support no
vhost-vsock support no
vhost-user support no
Trace backends log
spice support no
rbd support no
xfsctl support no
smartcard support no
libusb yes
usb net redir yes
OpenGL support no
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info yes
QGA MSI support no
seccomp support no
coroutine backend win32
coroutine pool yes
debug stack usage no
mutex debugging no
crypto afalg no
GlusterFS support no
gcov gcov
gcov enabled no
TPM support no
libssh2 support yes
QOM debugging yes
Live block migration yes
lzo support yes
snappy support yes
bzip2 support yes
lzfse support no
NUMA host support no
libxml2 yes
tcmalloc support no
jemalloc support no
avx2 optimization yes
replication support yes
VxHS block device no
bochs support yes
cloop support yes
dmg support yes
qcow v1 support yes
vdi support yes
vvfat support yes
qed support yes
parallels support yes
sheepdog support yes
capstone system
docker no
libpmem support no
libudev no
default devices yes
NOTE: cross-compilers enabled: 'cc'
----------------------------------------------------------------------------------------------------------
$ make installer
Problem 1: if I do not use the --enable-capstone=system option, the build is aborted
$make -C /home/my/qemu/capstone CAPSTONE_SHARED=no BUILDDIR="/home/my/qemu/capstone" CC="cc" AR="ar" LD="ld" RANLIB="ranlib" CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g -IC:/msys64/mingw64/include/pixman-1 -I/home/my/qemu/dtc/libfdt -DHAS_LIBSSH2_SFTP_FSYNC -IC:/msys64/mingw64/include -pthread -mms-bitfields -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/glib-2.0 -IC:/msys64/mingw64/lib/glib-2.0/include -IC:/msys64/mingw64/include -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -fstack-protector-strong -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/p11-kit-1 -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/libpng16 -IC:/msys64/mingw64/include -I/home/my/qemu/capstone/include -I/home/my/qemu/tests -DCAPSTONE_USE_SYS_DYN_MEM -DCAPSTONE_HAS_ARM -DCAPSTONE_HAS_ARM64 -DCAPSTONE_HAS_POWERPC -DCAPSTONE_HAS_X86" BUILD_DIR=/home/my/qemu /home/my/qemu/capstone/capstone.lib
make: Entering directory '/home/my/qemu/capstone'
make: *** No rule to make target '/home/my/qemu/capstone/capstone.lib'. Stop.
make: Leaving directory '/home/my/qemu/capstone'
I found this solution:
$ cd capstone
$ make CROSS=x86_64-w64-mingw32- capstone.lib
...
AR capstone.lib
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.1.0/../../../../x86_64-w64-mingw32/bin/ar.exe: creating ./capstone.lib
$ cd ..
Problem 2: I wanted to use the --enable-vnc-sasl option, but the build stopped due to a conflict of iovec structure definitions in files /mingw64/x86_64-w64-mingw32/include/sasl.h and include/qemu/osdep.h
I made simple patches:
diff -Nurp cyrus-sasl-2.1.27-old/include/sasl.h cyrus-sasl-2.1.27/include/sasl.h
--- cyrus-sasl-old/include/sasl.h 2019-06-19 17:05:06.334050200 +0300
+++ cyrus-sasl/include/sasl.h 2019-06-19 17:08:22.115365400 +0300
@@ -189,8 +189,8 @@
#ifndef STRUCT_IOVEC_DEFINED
#define STRUCT_IOVEC_DEFINED 1
struct iovec {
- long iov_len;
- char *iov_base;
+ void *iov_base;
+ size_t iov_len;
};
#endif
#else
diff -Nurp qemu-old/include/qemu/osdep.h qemu/include/qemu/osdep.h
--- qemu-old/include/qemu/osdep.h 2019-06-19 18:10:22.808111000 +0300
+++ qemu/include/qemu/osdep.h 2019-06-19 18:12:54.223226500 +0300
@@ -483,10 +483,18 @@ bool qemu_write_pidfile(const char *pidf
int qemu_get_thread_id(void);
#ifndef CONFIG_IOVEC
+
+#ifdef _WIN32
+#ifndef STRUCT_IOVEC_DEFINED
+#define STRUCT_IOVEC_DEFINED 1
struct iovec {
void *iov_base;
size_t iov_len;
};
+#endif
+#else
+struct iovec; /* Defined in OS headers */
+#endif
/*
* Use the same value as Linux for now.
*/
Problem 3: when generating the html build stopped with
Warning, treated as error:
C:/msys64/home/my/qemu/docs/interop/bitmaps.rst:202:Could not lex literal_block as "json". Highlighting skipped.
Here I simply remove the -W option
$ sphinx-build -v -T -n -b html -D version=4.0.50 -D release="4.0.50 (v4.0.0-1396-gf3d0bec9f8-dirty)" -d .doctrees/interop /home/my/qemu/docs/interop docs/built/interop
...
C:/msys64/home/my/qemu/docs/interop/bitmaps.rst:1437: WARNING: Could not lex literal_block as "json". Highlighting skipped.
generating indices... genindex
writing additional pages... search
copying static files... done
copying extra files... done
dumping search index in English (code: en) ... done
dumping object inventory... done
build succeeded, 27 warnings.
Problem 4: When installing files into a temporary directory, copying breaked
I made a patch by deleting the "/".
--- Makefile-orig 2019-06-16 23:23:49.352281900 +0300
+++ Makefile 2019-06-16 23:31:44.344762800 +0300
@@ -873,19 +873,19 @@ ifneq ($(DESCS),)
done
endif
for s in $(ICON_SIZES); do \
- mkdir -p "$(DESTDIR)/$(qemu_icondir)/hicolor/$${s}/apps"; \
+ mkdir -p "$(DESTDIR)$(qemu_icondir)/hicolor/$${s}/apps"; \
$(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu_$${s}.png \
- "$(DESTDIR)/$(qemu_icondir)/hicolor/$${s}/apps/qemu.png"; \
+ "$(DESTDIR)$(qemu_icondir)/hicolor/$${s}/apps/qemu.png"; \
done; \
- mkdir -p "$(DESTDIR)/$(qemu_icondir)/hicolor/32x32/apps"; \
+ mkdir -p "$(DESTDIR)$(qemu_icondir)/hicolor/32x32/apps"; \
$(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu_32x32.bmp \
- "$(DESTDIR)/$(qemu_icondir)/hicolor/32x32/apps/qemu.bmp"; \
- mkdir -p "$(DESTDIR)/$(qemu_icondir)/hicolor/scalable/apps"; \
+ "$(DESTDIR)$(qemu_icondir)/hicolor/32x32/apps/qemu.bmp"; \
+ mkdir -p "$(DESTDIR)$(qemu_icondir)/hicolor/scalable/apps"; \
$(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu.svg \
- "$(DESTDIR)/$(qemu_icondir)/hicolor/scalable/apps/qemu.svg"
- mkdir -p "$(DESTDIR)/$(qemu_desktopdir)"
+ "$(DESTDIR)$(qemu_icondir)/hicolor/scalable/apps/qemu.svg"
+ mkdir -p "$(DESTDIR)$(qemu_desktopdir)"
$(INSTALL_DATA) $(SRC_PATH)/ui/qemu.desktop \
- "$(DESTDIR)/$(qemu_desktopdir)/qemu.desktop"
+ "$(DESTDIR)$(qemu_desktopdir)/qemu.desktop"
ifdef CONFIG_GTK
$(MAKE) -C po $@
endif
Problem 5: No bmp files
...
File: "C:/msys64/tmp/qemu-nsis\*.bmp" -> no files found.
Usage: File [/nonfatal] [/a] ([/r] [/x filespec [...]] filespec [...] |
/oname=outfile one_file_only)
Error in script "C:/msys64/home/my/qemu/qemu.nsi" on line 122 -- aborting creation process
make: *** [Makefile:1073: qemu-setup-4.0.50.exe] Error 1
Simple hack:
--- qemu.nsi-orig 2019-06-17 00:33:33.148978300 +0300
+++ qemu.nsi 2019-06-20 02:57:19.030516900 +0300
@@ -119,7 +119,7 @@ Section "${PRODUCT} (required)"
File "${SRCDIR}\README"
File "${SRCDIR}\VERSION"
- File "${BINDIR}\*.bmp"
+; File "${BINDIR}\*.bmp"
File "${BINDIR}\*.bin"
File "${BINDIR}\*.dtb"
File "${BINDIR}\*.rom"
@@ -206,7 +206,7 @@ Section "Uninstall"
Delete "$INSTDIR\COPYING.LIB"
Delete "$INSTDIR\README"
Delete "$INSTDIR\VERSION"
- Delete "$INSTDIR\*.bmp"
+; Delete "$INSTDIR\*.bmp"
Delete "$INSTDIR\*.bin"
Delete "$INSTDIR\*.dll"
Delete "$INSTDIR\*.dtb"
Finally, the build is over, but it was not very easy
--
With best regards, Youry Metlitsky
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH] some remarks to build last version of qemu in MSYS2 (from user)
2019-06-20 0:38 [Qemu-devel] [PATCH] some remarks to build last version of qemu in MSYS2 (from user) Метлицкий Юрий
@ 2020-03-07 18:47 ` Philippe Mathieu-Daudé
0 siblings, 0 replies; 2+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-03-07 18:47 UTC (permalink / raw)
To: Метлицкий
Юрий,
qemu-devel
Hi Youry,
On 6/20/19 2:38 AM, Метлицкий Юрий wrote:
> Hello!
>
> Today I tried to build qemu from git in the current version of MSYS2 for Windows 10 (X64).
> As a result, got the file qemu-setup-4.0.50.exe
> But on the way to this I met several problems that I want to share.
>
> Sorry to be newbie and write in bad english. And so...
>
> After resolving all packages dependencies, I execute the commands:
>
> $ ./configure --enable-gtk --enable-sdl --enable-vnc-sasl --enable-capstone=system --enable-docs
> ----------------------------------------------------------------------------------------------------------
> Install prefix c:/Program Files/QEMU
> BIOS directory c:/Program Files/QEMU
> firmware path c:/Program Files/QEMU/share/qemu-firmware
> binary directory c:/Program Files/QEMU
> library directory c:/Program Files/QEMU/lib
> module directory c:/Program Files/QEMU/lib
> libexec directory c:/Program Files/QEMU/libexec
> include directory c:/Program Files/QEMU/include
> config directory c:/Program Files/QEMU
> local state directory queried at runtime
> Windows SDK no
> Source path /home/my/qemu
> GIT binary git
> GIT submodules ui/keycodemapdb tests/fp/berkeley-testfloat-3 tests/fp/berkeley-softfloat-3 dtc slirp
> C compiler cc
> Host C compiler cc
> C++ compiler c++
> Objective-C compiler cc
> ARFLAGS rv
> CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g
> QEMU_CFLAGS -IC:/msys64/mingw64/include/pixman-1 -I$(SRC_PATH)/dtc/libfdt -Werror -DHAS_LIBSSH2_SFTP_FSYNC -IC:/msys64/mingw64/include -pthread -mms-bitfields -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/glib-2.0 -IC:/msys64/mingw64/lib/glib-2.0/include -IC:/msys64/mingw64/include -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -Wexpansion-to-defined -Wendif-labels -Wno-shift-negative-value -Wno-missing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-strong -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/p11-kit-1 -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/libpng16 -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/capstone
> LDFLAGS -Wl,--nxcompat -Wl,--no-seh -Wl,--dynamicbase -Wl,--warn-common -m64 -g
> QEMU_LDFLAGS -L$(BUILD_DIR)/dtc/libfdt
> make make
> install install
> python python3 -B (3.7.3)
> slirp support git
> smbd /usr/sbin/smbd
> module support no
> host CPU x86_64
> host big endian no
> target list aarch64-softmmu alpha-softmmu arm-softmmu cris-softmmu hppa-softmmu i386-softmmu lm32-softmmu m68k-softmmu microblazeel-softmmu microblaze-softmmu mips64el-softmmu mips64-softmmu mipsel-softmmu mips-softmmu moxie-softmmu nios2-softmmu or1k-softmmu ppc64-softmmu ppc-softmmu riscv32-softmmu riscv64-softmmu s390x-softmmu sh4eb-softmmu sh4-softmmu sparc64-softmmu sparc-softmmu tricore-softmmu unicore32-softmmu x86_64-softmmu xtensaeb-softmmu xtensa-softmmu
> gprof enabled no
> sparse enabled no
> strip binaries yes
> profiler no
> static build no
> SDL support yes (2.0.9)
> SDL image support no
> GTK support yes (3.24.8)
> GTK GL support no
> VTE support no
> TLS priority NORMAL
> GNUTLS support yes
> libgcrypt no
> nettle yes (3.4.1)
> libtasn1 yes
> PAM no
> iconv support yes
> curses support no
> virgl support no
> curl support yes
> mingw32 support yes
> Audio drivers dsound
> Block whitelist (rw)
> Block whitelist (ro)
> VirtFS support no
> Multipath support no
> VNC support yes
> VNC SASL support yes
> VNC JPEG support yes
> VNC PNG support yes
> xen support no
> brlapi support no
> bluez support no
> Documentation yes
> PIE no
> vde support no
> netmap support no
> Linux AIO support no
> ATTR/XATTR support no
> Install blobs yes
> KVM support no
> HAX support yes
> HVF support no
> WHPX support no
> TCG support yes
> TCG debug enabled no
> TCG interpreter no
> malloc trim support no
> RDMA support no
> PVRDMA support no
> fdt support git
> membarrier no
> preadv support no
> fdatasync no
> madvise no
> posix_madvise no
> posix_memalign no
> libcap-ng support no
> vhost-net support
> vhost-crypto support no
> vhost-scsi support no
> vhost-vsock support no
> vhost-user support no
> Trace backends log
> spice support no
> rbd support no
> xfsctl support no
> smartcard support no
> libusb yes
> usb net redir yes
> OpenGL support no
> OpenGL dmabufs no
> libiscsi support no
> libnfs support no
> build guest agent yes
> QGA VSS support no
> QGA w32 disk info yes
> QGA MSI support no
> seccomp support no
> coroutine backend win32
> coroutine pool yes
> debug stack usage no
> mutex debugging no
> crypto afalg no
> GlusterFS support no
> gcov gcov
> gcov enabled no
> TPM support no
> libssh2 support yes
> QOM debugging yes
> Live block migration yes
> lzo support yes
> snappy support yes
> bzip2 support yes
> lzfse support no
> NUMA host support no
> libxml2 yes
> tcmalloc support no
> jemalloc support no
> avx2 optimization yes
> replication support yes
> VxHS block device no
> bochs support yes
> cloop support yes
> dmg support yes
> qcow v1 support yes
> vdi support yes
> vvfat support yes
> qed support yes
> parallels support yes
> sheepdog support yes
> capstone system
> docker no
> libpmem support no
> libudev no
> default devices yes
>
> NOTE: cross-compilers enabled: 'cc'
> ----------------------------------------------------------------------------------------------------------
> $ make installer
>
> Problem 1: if I do not use the --enable-capstone=system option, the build is aborted
>
> $make -C /home/my/qemu/capstone CAPSTONE_SHARED=no BUILDDIR="/home/my/qemu/capstone" CC="cc" AR="ar" LD="ld" RANLIB="ranlib" CFLAGS="-O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -g -IC:/msys64/mingw64/include/pixman-1 -I/home/my/qemu/dtc/libfdt -DHAS_LIBSSH2_SFTP_FSYNC -IC:/msys64/mingw64/include -pthread -mms-bitfields -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/glib-2.0 -IC:/msys64/mingw64/lib/glib-2.0/include -IC:/msys64/mingw64/include -m64 -mcx16 -mthreads -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fno-common -fwrapv -std=gnu99 -fstack-protector-strong -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/p11-kit-1 -IC:/msys64/mingw64/include -IC:/msys64/mingw64/include/libpng16 -IC:/msys64/mingw64/include -I/home/my/qemu/capstone/include -I/home/my/qemu/tests -DCAPSTONE_USE_SYS_DYN_MEM -DCAPSTONE_HAS_ARM -DCAPSTONE_HAS_ARM64 -DCAPSTONE_HAS_POWERPC -DCAPSTONE_HAS_X86" BUILD_DIR=/home/my/qemu /home/my/qemu/capstone/capstone.lib
>
> make: Entering directory '/home/my/qemu/capstone'
> make: *** No rule to make target '/home/my/qemu/capstone/capstone.lib'. Stop.
> make: Leaving directory '/home/my/qemu/capstone'
>
> I found this solution:
> $ cd capstone
> $ make CROSS=x86_64-w64-mingw32- capstone.lib
> ...
> AR capstone.lib
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/9.1.0/../../../../x86_64-w64-mingw32/bin/ar.exe: creating ./capstone.lib
> $ cd ..
>
> Problem 2: I wanted to use the --enable-vnc-sasl option, but the build stopped due to a conflict of iovec structure definitions in files /mingw64/x86_64-w64-mingw32/include/sasl.h and include/qemu/osdep.h
> I made simple patches:
>
> diff -Nurp cyrus-sasl-2.1.27-old/include/sasl.h cyrus-sasl-2.1.27/include/sasl.h
> --- cyrus-sasl-old/include/sasl.h 2019-06-19 17:05:06.334050200 +0300
> +++ cyrus-sasl/include/sasl.h 2019-06-19 17:08:22.115365400 +0300
> @@ -189,8 +189,8 @@
> #ifndef STRUCT_IOVEC_DEFINED
> #define STRUCT_IOVEC_DEFINED 1
> struct iovec {
> - long iov_len;
> - char *iov_base;
> + void *iov_base;
> + size_t iov_len;
> };
> #endif
> #else
>
> diff -Nurp qemu-old/include/qemu/osdep.h qemu/include/qemu/osdep.h
> --- qemu-old/include/qemu/osdep.h 2019-06-19 18:10:22.808111000 +0300
> +++ qemu/include/qemu/osdep.h 2019-06-19 18:12:54.223226500 +0300
> @@ -483,10 +483,18 @@ bool qemu_write_pidfile(const char *pidf
> int qemu_get_thread_id(void);
>
> #ifndef CONFIG_IOVEC
> +
> +#ifdef _WIN32
> +#ifndef STRUCT_IOVEC_DEFINED
> +#define STRUCT_IOVEC_DEFINED 1
There is a different fix for this issue here:
https://lists.gnu.org/archive/html/qemu-devel/2020-03/msg01767.html
> struct iovec {
> void *iov_base;
> size_t iov_len;
> };
> +#endif
> +#else
> +struct iovec; /* Defined in OS headers */
> +#endif
> /*
> * Use the same value as Linux for now.
> */
>
> Problem 3: when generating the html build stopped with
>
> Warning, treated as error:
> C:/msys64/home/my/qemu/docs/interop/bitmaps.rst:202:Could not lex literal_block as "json". Highlighting skipped.
>
> Here I simply remove the -W option
>
> $ sphinx-build -v -T -n -b html -D version=4.0.50 -D release="4.0.50 (v4.0.0-1396-gf3d0bec9f8-dirty)" -d .doctrees/interop /home/my/qemu/docs/interop docs/built/interop
> ...
> C:/msys64/home/my/qemu/docs/interop/bitmaps.rst:1437: WARNING: Could not lex literal_block as "json". Highlighting skipped.
> generating indices... genindex
> writing additional pages... search
> copying static files... done
> copying extra files... done
> dumping search index in English (code: en) ... done
> dumping object inventory... done
> build succeeded, 27 warnings.
>
> Problem 4: When installing files into a temporary directory, copying breaked
> I made a patch by deleting the "/".
>
> --- Makefile-orig 2019-06-16 23:23:49.352281900 +0300
> +++ Makefile 2019-06-16 23:31:44.344762800 +0300
> @@ -873,19 +873,19 @@ ifneq ($(DESCS),)
> done
> endif
> for s in $(ICON_SIZES); do \
> - mkdir -p "$(DESTDIR)/$(qemu_icondir)/hicolor/$${s}/apps"; \
> + mkdir -p "$(DESTDIR)$(qemu_icondir)/hicolor/$${s}/apps"; \
> $(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu_$${s}.png \
> - "$(DESTDIR)/$(qemu_icondir)/hicolor/$${s}/apps/qemu.png"; \
> + "$(DESTDIR)$(qemu_icondir)/hicolor/$${s}/apps/qemu.png"; \
> done; \
> - mkdir -p "$(DESTDIR)/$(qemu_icondir)/hicolor/32x32/apps"; \
> + mkdir -p "$(DESTDIR)$(qemu_icondir)/hicolor/32x32/apps"; \
> $(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu_32x32.bmp \
> - "$(DESTDIR)/$(qemu_icondir)/hicolor/32x32/apps/qemu.bmp"; \
> - mkdir -p "$(DESTDIR)/$(qemu_icondir)/hicolor/scalable/apps"; \
> + "$(DESTDIR)$(qemu_icondir)/hicolor/32x32/apps/qemu.bmp"; \
> + mkdir -p "$(DESTDIR)$(qemu_icondir)/hicolor/scalable/apps"; \
> $(INSTALL_DATA) $(SRC_PATH)/ui/icons/qemu.svg \
> - "$(DESTDIR)/$(qemu_icondir)/hicolor/scalable/apps/qemu.svg"
> - mkdir -p "$(DESTDIR)/$(qemu_desktopdir)"
> + "$(DESTDIR)$(qemu_icondir)/hicolor/scalable/apps/qemu.svg"
> + mkdir -p "$(DESTDIR)$(qemu_desktopdir)"
> $(INSTALL_DATA) $(SRC_PATH)/ui/qemu.desktop \
> - "$(DESTDIR)/$(qemu_desktopdir)/qemu.desktop"
> + "$(DESTDIR)$(qemu_desktopdir)/qemu.desktop"
> ifdef CONFIG_GTK
> $(MAKE) -C po $@
> endif
>
> Problem 5: No bmp files
> ...
> File: "C:/msys64/tmp/qemu-nsis\*.bmp" -> no files found.
> Usage: File [/nonfatal] [/a] ([/r] [/x filespec [...]] filespec [...] |
> /oname=outfile one_file_only)
> Error in script "C:/msys64/home/my/qemu/qemu.nsi" on line 122 -- aborting creation process
> make: *** [Makefile:1073: qemu-setup-4.0.50.exe] Error 1
>
> Simple hack:
>
> --- qemu.nsi-orig 2019-06-17 00:33:33.148978300 +0300
> +++ qemu.nsi 2019-06-20 02:57:19.030516900 +0300
> @@ -119,7 +119,7 @@ Section "${PRODUCT} (required)"
> File "${SRCDIR}\README"
> File "${SRCDIR}\VERSION"
>
> - File "${BINDIR}\*.bmp"
> +; File "${BINDIR}\*.bmp"
> File "${BINDIR}\*.bin"
> File "${BINDIR}\*.dtb"
> File "${BINDIR}\*.rom"
> @@ -206,7 +206,7 @@ Section "Uninstall"
> Delete "$INSTDIR\COPYING.LIB"
> Delete "$INSTDIR\README"
> Delete "$INSTDIR\VERSION"
> - Delete "$INSTDIR\*.bmp"
> +; Delete "$INSTDIR\*.bmp"
> Delete "$INSTDIR\*.bin"
> Delete "$INSTDIR\*.dll"
> Delete "$INSTDIR\*.dtb"
>
> Finally, the build is over, but it was not very easy
>
>
> --
> With best regards, Youry Metlitsky
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-03-07 18:48 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-20 0:38 [Qemu-devel] [PATCH] some remarks to build last version of qemu in MSYS2 (from user) Метлицкий Юрий
2020-03-07 18:47 ` Philippe Mathieu-Daudé
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).