From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Subject: [PATCH 042/132] meson: convert block
Date: Thu, 12 Dec 2019 13:51:26 +0100 [thread overview]
Message-ID: <1576155176-2464-43-git-send-email-pbonzini@redhat.com> (raw)
In-Reply-To: <1576155176-2464-1-git-send-email-pbonzini@redhat.com>
From: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
Makefile | 9 ----
Makefile.objs | 30 +++++++++---
Makefile.target | 3 +-
block.c | 2 +-
block/Makefile.objs | 64 -------------------------
block/meson.build | 101 ++++++++++++++++++++++++++++++++++++++++
configure | 10 ++--
meson.build | 63 +++++++++++++++++++++++++
nbd/Makefile.objs | 1 -
nbd/meson.build | 5 ++
rules.mak | 3 +-
scripts/modules/module_block.py | 0
scsi/Makefile.objs | 4 --
scsi/meson.build | 4 ++
14 files changed, 206 insertions(+), 93 deletions(-)
create mode 100644 block/meson.build
delete mode 100644 nbd/Makefile.objs
create mode 100644 nbd/meson.build
mode change 100644 => 100755 scripts/modules/module_block.py
delete mode 100644 scsi/Makefile.objs
create mode 100644 scsi/meson.build
diff --git a/Makefile b/Makefile
index 42077ae..cdd9d14 100644
--- a/Makefile
+++ b/Makefile
@@ -98,8 +98,6 @@ CONFIG_BLOCK := $(call lor,$(CONFIG_SOFTMMU),$(CONFIG_TOOLS))
generated-files-y = config-host.h
-generated-files-y += module_block.h
-
generated-files-y += .git-submodule-status
edk2-decompressed = $(basename $(wildcard pc-bios/edk2-*.fd.bz2))
@@ -140,8 +138,6 @@ include $(SRC_PATH)/Makefile.objs
endif
dummy := $(call unnest-vars,, \
- block-obj-y \
- block-obj-m \
common-obj-y \
common-obj-m)
@@ -251,11 +247,6 @@ ifneq ($(EXESUF),)
qga/qemu-ga: qga/qemu-ga$(EXESUF) $(QGA_VSS_PROVIDER) $(QEMU_GA_MSI)
endif
-module_block.h: $(SRC_PATH)/scripts/modules/module_block.py config-host.mak
- $(call quiet-command,$(PYTHON) $< $@ \
- $(addprefix $(SRC_PATH)/,$(patsubst %.mo,%.c,$(block-obj-m))), \
- "GEN","$@")
-
clean: recurse-clean
# avoid old build problems by removing potentially incorrect old files
rm -f config.mak op-i386.h opc-i386.h gen-op-i386.h op-arm.h opc-arm.h gen-op-arm.h
diff --git a/Makefile.objs b/Makefile.objs
index 39e1d41..56d0c60 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -1,13 +1,19 @@
#######################################################################
# block-obj-y is code used by both qemu system emulation and qemu-img
-block-obj-y = nbd/
-block-obj-y += block.o blockjob.o job.o
-block-obj-y += block/ scsi/
-block-obj-y += qemu-io-cmds.o
-block-obj-$(CONFIG_REPLICATION) += replication.o
-
-block-obj-m = block/
+block-obj-y += libblock.fa
+
+libblock.fa-libs = $(LIBNFS_LIBS)
+libblock.fa-libs += $(LIBISCSI_LIBS)
+libblock.fa-libs += $(CURL_LIBS)
+libblock.fa-libs += $(RBD_LIBS)
+libblock.fa-libs += $(GLUSTERFS_LIBS)
+libblock.fa-libs += $(VXHS_LIBS)
+libblock.fa-libs += $(LIBSSH_LIBS)
+libblock.fa-libs += $(BZIP2_LIBS)
+libblock.fa-libs += $(LZFSE_LIBS)
+libblock.fa-libs += $(if $(CONFIG_LINUX_AIO),-laio)
+libblock.fa-libs += $(LIBXML2_LIBS)
#######################################################################
# libraries built entirely from meson
@@ -43,6 +49,16 @@ common-obj-$(CONFIG_LINUX) += fsdev/
common-obj-y += migration/
+common-obj-$(if $(CONFIG_CURL),m) += block-curl$(DSOSUF)
+common-obj-$(if $(CONFIG_GLUSTERFS),m) += block-gluster$(DSOSUF)
+common-obj-$(if $(CONFIG_LIBISCSI),m) += block-iscsi$(DSOSUF)
+common-obj-$(if $(CONFIG_LIBNFS),m) += block-nfs$(DSOSUF)
+common-obj-$(if $(CONFIG_LIBSSH),m) += block-ssh$(DSOSUF)
+common-obj-$(if $(CONFIG_RBD),m) += block-rbd$(DSOSUF)
+
+common-obj-$(if $(CONFIG_LZFSE),m) += block-dmg-lzfse$(DSOSUF)
+common-obj-$(if $(and $(CONFIG_BZIP2),$(CONFIG_DMG)),m) += block-dmg-bz2$(DSOSUF)
+
common-obj-y += audio/
common-obj-m += audio/
common-obj-y += hw/
diff --git a/Makefile.target b/Makefile.target
index 95823da..1cb7bc2 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -184,13 +184,12 @@ all-obj-y := $(obj-y)
include $(SRC_PATH)/Makefile.objs
dummy := $(call fix-paths,../,, \
authz-obj-y \
+ block-obj-y \
chardev-obj-y \
crypto-obj-y \
io-obj-y \
qom-obj-y)
dummy := $(call unnest-vars,.., \
- block-obj-y \
- block-obj-m \
common-obj-y \
common-obj-m)
all-obj-y += $(common-obj-y)
diff --git a/block.c b/block.c
index 874a29a..f69d6ef 100644
--- a/block.c
+++ b/block.c
@@ -29,7 +29,7 @@
#include "block/nbd.h"
#include "block/qdict.h"
#include "qemu/error-report.h"
-#include "module_block.h"
+#include "block/module_block.h"
#include "qemu/main-loop.h"
#include "qemu/module.h"
#include "qapi/error.h"
diff --git a/block/Makefile.objs b/block/Makefile.objs
index 35f3bca..83e87b3 100644
--- a/block/Makefile.objs
+++ b/block/Makefile.objs
@@ -1,65 +1 @@
-block-obj-y += raw-format.o vmdk.o vpc.o
-block-obj-$(CONFIG_QCOW1) += qcow.o
-block-obj-$(CONFIG_VDI) += vdi.o
-block-obj-$(CONFIG_CLOOP) += cloop.o
-block-obj-$(CONFIG_BOCHS) += bochs.o
-block-obj-$(CONFIG_VVFAT) += vvfat.o
-block-obj-$(CONFIG_DMG) += dmg.o
-
-block-obj-y += qcow2.o qcow2-refcount.o qcow2-cluster.o qcow2-snapshot.o qcow2-cache.o qcow2-bitmap.o qcow2-threads.o
-block-obj-$(CONFIG_QED) += qed.o qed-l2-cache.o qed-table.o qed-cluster.o
-block-obj-$(CONFIG_QED) += qed-check.o
-block-obj-y += vhdx.o vhdx-endian.o vhdx-log.o
-block-obj-y += quorum.o
-block-obj-y += blkdebug.o blkverify.o blkreplay.o
-block-obj-$(CONFIG_PARALLELS) += parallels.o
-block-obj-y += blklogwrites.o
-block-obj-y += block-backend.o snapshot.o qapi.o
-block-obj-$(CONFIG_WIN32) += file-win32.o win32-aio.o
-block-obj-$(CONFIG_POSIX) += file-posix.o
-block-obj-$(CONFIG_LINUX_AIO) += linux-aio.o
-block-obj-y += null.o mirror.o commit.o io.o create.o
-block-obj-y += throttle-groups.o
-block-obj-$(CONFIG_LINUX) += nvme.o
-
-block-obj-y += nbd.o
-block-obj-$(CONFIG_SHEEPDOG) += sheepdog.o
-block-obj-$(CONFIG_LIBISCSI) += iscsi.o
-block-obj-$(if $(CONFIG_LIBISCSI),y,n) += iscsi-opts.o
-block-obj-$(CONFIG_LIBNFS) += nfs.o
-block-obj-$(CONFIG_CURL) += curl.o
-block-obj-$(CONFIG_RBD) += rbd.o
-block-obj-$(CONFIG_GLUSTERFS) += gluster.o
-block-obj-$(CONFIG_VXHS) += vxhs.o
-block-obj-$(CONFIG_LIBSSH) += ssh.o
-block-obj-y += accounting.o dirty-bitmap.o
-block-obj-y += write-threshold.o
-block-obj-y += backup.o
-block-obj-$(CONFIG_REPLICATION) += replication.o
-block-obj-y += throttle.o copy-on-read.o
-
-block-obj-y += crypto.o
-
common-obj-y += stream.o
-
-nfs.o-libs := $(LIBNFS_LIBS)
-iscsi.o-cflags := $(LIBISCSI_CFLAGS)
-iscsi.o-libs := $(LIBISCSI_LIBS)
-curl.o-cflags := $(CURL_CFLAGS)
-curl.o-libs := $(CURL_LIBS)
-rbd.o-cflags := $(RBD_CFLAGS)
-rbd.o-libs := $(RBD_LIBS)
-gluster.o-cflags := $(GLUSTERFS_CFLAGS)
-gluster.o-libs := $(GLUSTERFS_LIBS)
-vxhs.o-libs := $(VXHS_LIBS)
-ssh.o-cflags := $(LIBSSH_CFLAGS)
-ssh.o-libs := $(LIBSSH_LIBS)
-block-obj-dmg-bz2-$(CONFIG_BZIP2) += dmg-bz2.o
-block-obj-$(if $(CONFIG_DMG),m,n) += $(block-obj-dmg-bz2-y)
-dmg-bz2.o-libs := $(BZIP2_LIBS)
-block-obj-$(if $(CONFIG_LZFSE),m,n) += dmg-lzfse.o
-dmg-lzfse.o-libs := $(LZFSE_LIBS)
-qcow.o-libs := -lz
-linux-aio.o-libs := -laio
-parallels.o-cflags := $(LIBXML2_CFLAGS)
-parallels.o-libs := $(LIBXML2_LIBS)
diff --git a/block/meson.build b/block/meson.build
new file mode 100644
index 0000000..a68689b
--- /dev/null
+++ b/block/meson.build
@@ -0,0 +1,101 @@
+block_ss.add(genh)
+block_ss.add(files(
+ 'accounting.c',
+ 'backup.c',
+ 'blkdebug.c',
+ 'blklogwrites.c',
+ 'blkreplay.c',
+ 'blkverify.c',
+ 'block-backend.c',
+ 'commit.c',
+ 'copy-on-read.c',
+ 'create.c',
+ 'crypto.c',
+ 'dirty-bitmap.c',
+ 'io.c',
+ 'mirror.c',
+ 'nbd.c',
+ 'null.c',
+ 'qapi.c',
+ 'qcow2-bitmap.c',
+ 'qcow2-cache.c',
+ 'qcow2-cluster.c',
+ 'qcow2-refcount.c',
+ 'qcow2-snapshot.c',
+ 'qcow2-threads.c',
+ 'qcow2.c',
+ 'quorum.c',
+ 'raw-format.c',
+ 'snapshot.c',
+ 'throttle-groups.c',
+ 'throttle.c',
+ 'vhdx-endian.c',
+ 'vhdx-log.c',
+ 'vhdx.c',
+ 'vmdk.c',
+ 'vpc.c',
+ 'write-threshold.c',
+))
+
+block_ss.add(when: [zlib, 'CONFIG_QCOW1'], if_true: files('qcow.c'))
+block_ss.add(when: 'CONFIG_VDI', if_true: files('vdi.c'))
+block_ss.add(when: 'CONFIG_CLOOP', if_true: files('cloop.c'))
+block_ss.add(when: 'CONFIG_BOCHS', if_true: files('bochs.c'))
+block_ss.add(when: 'CONFIG_VVFAT', if_true: files('vvfat.c'))
+block_ss.add(when: 'CONFIG_DMG', if_true: files('dmg.c'))
+block_ss.add(when: 'CONFIG_QED', if_true: files(
+ 'qed-check.c',
+ 'qed-cluster.c',
+ 'qed-l2-cache.c',
+ 'qed-table.c',
+ 'qed.c',
+))
+block_ss.add(when: [libxml2, 'CONFIG_PARALLELS'], if_true: files('parallels.c'))
+block_ss.add(when: 'CONFIG_WIN32', if_true: files('file-win32.c', 'win32-aio.c'))
+block_ss.add(when: 'CONFIG_POSIX', if_true: [files('file-posix.c'), coref, iokit])
+block_ss.add(when: 'CONFIG_LIBISCSI', if_true: files('iscsi-opts.c'))
+block_ss.add(when: 'CONFIG_LINUX', if_true: files('nvme.c'))
+block_ss.add(when: 'CONFIG_REPLICATION', if_true: files('replication.c'))
+block_ss.add(when: 'CONFIG_SHEEPDOG', if_true: files('sheepdog.c'))
+block_ss.add(when: [libaio, 'CONFIG_LINUX_AIO'], if_true: files('linux-aio.c'))
+block_ss.add(when: [vxhs, 'CONFIG_VXHS'], if_true: files('vxhs.c'))
+
+block_modules = []
+
+modsrc = []
+foreach m : [
+ ['CONFIG_CURL', 'curl', [curl, glib], 'curl.c'],
+ ['CONFIG_GLUSTERFS', 'gluster', glusterfs, 'gluster.c'],
+ ['CONFIG_LIBISCSI', 'iscsi', libiscsi, 'iscsi.c'],
+ ['CONFIG_LIBNFS', 'nfs', libnfs, 'nfs.c'],
+ ['CONFIG_LIBSSH', 'ssh', libssh, 'ssh.c'],
+ ['CONFIG_RBD', 'rbd', rbd, 'rbd.c'],
+]
+ if config_host.has_key(m[0])
+ if enable_modules
+ modsrc += files(m[3])
+ endif
+ block_modules += [[m[1], files(m[3]), m[2]]]
+ endif
+endforeach
+
+# those are not exactly regular block modules, so treat them apart
+if 'CONFIG_DMG' in config_host
+ foreach m : [
+ ['CONFIG_LZFSE', 'dmg-lzfse', liblzfse, 'dmg-lzfse.c'],
+ ['CONFIG_BZIP2', 'dmg-bz2', [glib, libbzip2], 'dmg-bz2.c']
+ ]
+ if config_host.has_key(m[0])
+ block_modules += [[m[1], files(m[3]), m[2]]]
+ endif
+ endforeach
+endif
+
+module_block_py = find_program('scripts/modules/module_block.py')
+module_block_h = custom_target('module_block.h',
+ output: 'module_block.h',
+ input: modsrc,
+ command: [module_block_py, '@OUTPUT0@', modsrc])
+block_ss.add(module_block_h)
+
+modules += {'block': block_modules}
diff --git a/configure b/configure
index d65b79e..7be08f3 100755
--- a/configure
+++ b/configure
@@ -3711,7 +3711,8 @@ if test "$zlib" != "no" ; then
int main(void) { zlibVersion(); return 0; }
EOF
if compile_prog "" "-lz" ; then
- LIBS="$LIBS -lz"
+ zlib_libs=-lz
+ LIBS="$LIBS $zlib_libs"
else
error_exit "zlib check failed" \
"Make sure to have the zlib libs and headers installed."
@@ -6908,7 +6909,11 @@ fi
if test "$posix_memalign" = "yes" ; then
echo "CONFIG_POSIX_MEMALIGN=y" >> $config_host_mak
fi
-
+if test "$zlib" != "no" ; then
+ echo "CONFIG_ZLIB=y" >> $config_host_mak
+ echo "ZLIB_CFLAGS=$zlib_cflags" >> $config_host_mak
+ echo "ZLIB_LIBS=$zlib_libs" >> $config_host_mak
+fi
if test "$spice" = "yes" ; then
echo "CONFIG_SPICE=y" >> $config_host_mak
fi
@@ -7002,7 +7007,6 @@ if test "$qom_cast_debug" = "yes" ; then
fi
if test "$rbd" = "yes" ; then
echo "CONFIG_RBD=m" >> $config_host_mak
- echo "RBD_CFLAGS=$rbd_cflags" >> $config_host_mak
echo "RBD_LIBS=$rbd_libs" >> $config_host_mak
fi
diff --git a/meson.build b/meson.build
index b5aa6a2..a46b671 100644
--- a/meson.build
+++ b/meson.build
@@ -83,6 +83,21 @@ pam = declare_dependency()
if 'CONFIG_AUTH_PAM' in config_host
pam = cc.find_library('pam')
endif
+libaio = cc.find_library('aio', required: false)
+zlib = declare_dependency()
+if 'CONFIG_ZLIB' in config_host
+ zlib = declare_dependency(compile_args: config_host['ZLIB_CFLAGS'].split(),
+ link_args: config_host['ZLIB_LIBS'].split())
+endif
+libxml2 = declare_dependency()
+if 'CONFIG_LIBXML2' in config_host
+ libxml2 = declare_dependency(compile_args: config_host['LIBXML2_CFLAGS'].split(),
+ link_args: config_host['LIBXML2_LIBS'].split())
+endif
+libnfs = declare_dependency()
+if 'CONFIG_LIBNFS' in config_host
+ libnfs = declare_dependency(link_args: config_host['LIBNFS_LIBS'].split())
+endif
libattr = declare_dependency()
if 'CONFIG_ATTR' in config_host
libattr = declare_dependency(link_args: config_host['LIBATTR_LIBS'].split())
@@ -117,6 +132,32 @@ libudev = declare_dependency()
if 'CONFIG_LIBUDEV' in config_host
libudev = declare_dependency(link_args: config_host['LIBUDEV_LIBS'].split())
endif
+rbd = declare_dependency()
+if 'CONFIG_RBD' in config_host
+ rbd = declare_dependency(link_args: config_host['RBD_LIBS'].split())
+endif
+glusterfs = declare_dependency()
+if 'CONFIG_GLUSTERFS' in config_host
+ glusterfs = declare_dependency(compile_args: config_host['GLUSTERFS_CFLAGS'].split(),
+ link_args: config_host['GLUSTERFS_LIBS'].split())
+endif
+vxhs = declare_dependency()
+if 'CONFIG_VXHS' in config_host
+ vxhs = declare_dependency(link_args: config_host['VXHS_LIBS'].split())
+endif
+libssh = declare_dependency()
+if 'CONFIG_LIBSSH' in config_host
+ libssh = declare_dependency(compile_args: config_host['LIBSSH_CFLAGS'].split(),
+ link_args: config_host['LIBSSH_LIBS'].split())
+endif
+libbzip2 = declare_dependency()
+if 'CONFIG_BZIP2' in config_host
+ libbzip2 = declare_dependency(link_args: config_host['BZIP2_LIBS'].split())
+endif
+liblzfse = declare_dependency()
+if 'CONFIG_LZFSE' in config_host
+ liblzfse = declare_dependency(link_args: config_host['LZFSE_LIBS'].split())
+endif
create_config = find_program('scripts/create_config')
minikconf = find_program('scripts/minikconf.py')
@@ -398,6 +439,18 @@ subdir('io')
subdir('chardev')
subdir('fsdev')
+block_ss.add(files(
+ 'block.c',
+ 'blockjob.c',
+ 'job.c',
+ 'qemu-io-cmds.c',
+))
+block_ss.add(when: 'CONFIG_REPLICATION', if_true: files('replication.c'))
+
+subdir('nbd')
+subdir('scsi')
+subdir('block')
+
mods = []
block_mods = []
softmmu_mods = []
@@ -432,6 +485,15 @@ qemu_syms = custom_target('qemu.syms', output: 'qemu.syms',
capture: true,
command: [undefsym, nm, '@INPUT@'])
+block_ss = block_ss.apply(config_host, strict: false)
+libblock = static_library('block', block_ss.sources(),
+ dependencies: [authz, crypto, io, block_ss.dependencies()],
+ link_depends: block_syms,
+ link_with: libqemuutil,
+ name_suffix: 'fa',
+ build_by_default: false)
+
+block = declare_dependency(link_whole: libblock, link_args: '@block.syms')
foreach m : mods
shared_module(m['dir'] + '-' + m['name'],
@@ -441,6 +503,7 @@ foreach m : mods
install_dir: config_host['qemu_moddir'])
endforeach
+softmmu_ss.add(block)
common_ss.add_all(when: 'CONFIG_SOFTMMU', if_true: softmmu_ss)
common_ss.add_all(when: 'CONFIG_USER_ONLY', if_true: user_ss)
diff --git a/nbd/Makefile.objs b/nbd/Makefile.objs
deleted file mode 100644
index eb3dd44..0000000
--- a/nbd/Makefile.objs
+++ /dev/null
@@ -1 +0,0 @@
-block-obj-y += server.o client.o common.o
diff --git a/nbd/meson.build b/nbd/meson.build
new file mode 100644
index 0000000..0c00a77
--- /dev/null
+++ b/nbd/meson.build
@@ -0,0 +1,5 @@
+block_ss.add(files(
+ 'client.c',
+ 'common.c',
+ 'server.c',
+))
diff --git a/rules.mak b/rules.mak
index 8571aec..162ecb5 100644
--- a/rules.mak
+++ b/rules.mak
@@ -374,8 +374,7 @@ define unnest-vars
# Find all the .mo objects in variables and add dependency rules
# according to .mo-objs. Report error if not set
$(if $($o-objs),
- $(eval $(o:%.mo=%$(DSOSUF)): module-common.o $($o-objs)),
- $(error $o added in $v but $o-objs is not set)))
+ $(eval $(o:%.mo=%$(DSOSUF)): module-common.o $($o-objs))))
$(shell mkdir -p ./ $(sort $(dir $($v))))
# Include all the .d files
$(eval -include $(patsubst %.o,%.d,$(patsubst %.mo,%.d,$(filter %.o,$($v)))))
diff --git a/scripts/modules/module_block.py b/scripts/modules/module_block.py
old mode 100644
new mode 100755
diff --git a/scsi/Makefile.objs b/scsi/Makefile.objs
deleted file mode 100644
index bb8789c..0000000
--- a/scsi/Makefile.objs
+++ /dev/null
@@ -1,4 +0,0 @@
-block-obj-y += utils.o
-
-block-obj-$(CONFIG_LINUX) += pr-manager.o pr-manager-helper.o
-block-obj-$(call lnot,$(CONFIG_LINUX)) += pr-manager-stub.o
diff --git a/scsi/meson.build b/scsi/meson.build
new file mode 100644
index 0000000..53f3a1f
--- /dev/null
+++ b/scsi/meson.build
@@ -0,0 +1,4 @@
+block_ss.add(files('utils.c'))
+block_ss.add(when: 'CONFIG_LINUX',
+ if_true: files('pr-manager.c', 'pr-manager-helper.c'),
+ if_false: files('pr-manager-stub.c'))
--
1.8.3.1
next prev parent reply other threads:[~2019-12-12 13:30 UTC|newest]
Thread overview: 142+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-12 12:50 [RFC PATCH v3 000/132] Proof of concept for Meson integration Paolo Bonzini
2019-12-12 12:50 ` [PATCH 001/132] build-sys hack: ensure target directory is there Paolo Bonzini
2019-12-12 12:50 ` [PATCH 002/132] configure: do not include $(...) variables in config-host.mak Paolo Bonzini
2019-12-12 12:50 ` [PATCH 003/132] configure: expand path variables for meson configure Paolo Bonzini
2019-12-12 12:50 ` [PATCH 004/132] configure: integrate Meson in the build system Paolo Bonzini
2019-12-12 12:50 ` [PATCH 005/132] configure: generate Meson cross file Paolo Bonzini
2019-12-12 12:50 ` [PATCH 006/132] build-sys: add meson submodule Paolo Bonzini
2019-12-12 12:50 ` [PATCH 007/132] meson: enable pie Paolo Bonzini
2019-12-12 12:50 ` [PATCH 008/132] meson: use coverage option Paolo Bonzini
2019-12-12 12:50 ` [PATCH 009/132] libqemuutil: convert to meson Paolo Bonzini
2019-12-12 12:50 ` [PATCH 010/132] meson: add remaining generated tcg trace helpers Paolo Bonzini
2019-12-12 12:50 ` [PATCH 011/132] meson: add version.o Paolo Bonzini
2019-12-12 12:50 ` [PATCH 012/132] contrib/libvhost-user: convert to Meson Paolo Bonzini
2019-12-12 12:50 ` [PATCH 013/132] contrib/vhost-user-blk: " Paolo Bonzini
2019-12-12 12:50 ` [PATCH 014/132] contrib/vhost-user-scsi: " Paolo Bonzini
2019-12-12 12:50 ` [PATCH 015/132] contrib/rdmacm-mux: " Paolo Bonzini
2019-12-12 12:51 ` [PATCH 016/132] contrib/vhost-user-input: convert to meson Paolo Bonzini
2019-12-12 12:51 ` [PATCH 017/132] contrib/vhost-user-gpu: " Paolo Bonzini
2019-12-12 12:51 ` [PATCH 018/132] contrib/ivshmem: " Paolo Bonzini
2019-12-12 12:51 ` [PATCH 019/132] contrib/elf2dmp: " Paolo Bonzini
2019-12-12 12:51 ` [PATCH 020/132] meson: convert qemu-ga Paolo Bonzini
2019-12-12 12:51 ` [PATCH 021/132] meson: convert vss-win32 Paolo Bonzini
2019-12-12 12:51 ` [PATCH 022/132] meson: add msi generation Paolo Bonzini
2019-12-12 12:51 ` [PATCH 023/132] meson: add qemu-bridge-helper Paolo Bonzini
2019-12-12 12:51 ` [PATCH 024/132] meson: add qemu-keymap Paolo Bonzini
2019-12-12 12:51 ` [PATCH 025/132] meson: add qemu-edid Paolo Bonzini
2019-12-12 12:51 ` [PATCH 026/132] meson: add virtfs-proxy-helper Paolo Bonzini
2019-12-12 12:51 ` [PATCH 027/132] meson: keymap-gen Paolo Bonzini
2019-12-12 12:51 ` [PATCH 028/132] meson: generate qemu-version.h Paolo Bonzini
2019-12-12 12:51 ` [PATCH 029/132] meson: generate shader headers Paolo Bonzini
2019-12-12 12:51 ` [PATCH 030/132] meson: generate hxtool files Paolo Bonzini
2019-12-12 12:51 ` [PATCH 031/132] meson: configure 50-qemu-gpu.json Paolo Bonzini
2019-12-12 12:51 ` [PATCH 032/132] meson: uncompress edk2 bios Paolo Bonzini
2020-01-03 10:48 ` Philippe Mathieu-Daudé
2020-01-03 10:52 ` Philippe Mathieu-Daudé
2020-01-07 11:28 ` Paolo Bonzini
2019-12-12 12:51 ` [PATCH 033/132] build-sys hack: link with whole .fa archives Paolo Bonzini
2019-12-12 12:51 ` [PATCH 034/132] meson: convert qom directory to Meson Paolo Bonzini
2019-12-12 12:51 ` [PATCH 035/132] meson: convert authz " Paolo Bonzini
2019-12-12 12:51 ` [PATCH 036/132] meson: convert crypto " Paolo Bonzini
2019-12-12 12:51 ` [PATCH 037/132] meson: convert io " Paolo Bonzini
2019-12-12 12:51 ` [PATCH 038/132] meson: infrastructure for building emulators Paolo Bonzini
2019-12-12 12:51 ` [PATCH 039/132] meson: add macos dependencies Paolo Bonzini
2019-12-12 12:51 ` [PATCH 040/132] meson: add modules infrastructure Paolo Bonzini
2019-12-12 12:51 ` [PATCH 041/132] meson: convert chardev directory to Meson (tools part) Paolo Bonzini
2019-12-12 12:51 ` Paolo Bonzini [this message]
2019-12-12 12:51 ` [PATCH 043/132] meson: qemu-{img,io,nbd} Paolo Bonzini
2019-12-12 12:51 ` [PATCH 044/132] meson: qemu-pr-helper Paolo Bonzini
2019-12-12 12:51 ` [PATCH 045/132] configure, Makefile; remove TOOLS and HELPERS-y variable Paolo Bonzini
2019-12-12 12:51 ` [PATCH 046/132] meson: convert chardev directory to Meson (emulator part) Paolo Bonzini
2019-12-12 12:51 ` [PATCH 047/132] meson: convert audio directory to Meson Paolo Bonzini
2019-12-12 12:51 ` [PATCH 048/132] meson: convert ui " Paolo Bonzini
2019-12-12 12:51 ` [PATCH 049/132] meson: convert root " Paolo Bonzini
2019-12-12 12:51 ` [PATCH 050/132] meson: convert trace/ Paolo Bonzini
2019-12-12 12:51 ` [PATCH 051/132] meson: convert qom/ Paolo Bonzini
2019-12-12 12:51 ` [PATCH 052/132] meson: convert block/ Paolo Bonzini
2019-12-12 12:51 ` [PATCH 053/132] meson: convert dump/ Paolo Bonzini
2019-12-12 12:51 ` [PATCH 054/132] meson: convert monitor directory to Meson Paolo Bonzini
2019-12-12 12:51 ` [PATCH 055/132] meson: convert replay " Paolo Bonzini
2019-12-12 12:51 ` [PATCH 056/132] meson: convert migration " Paolo Bonzini
2019-12-12 12:51 ` [PATCH 057/132] meson: build softmmu-specific migration/ram.c Paolo Bonzini
2019-12-12 12:51 ` [PATCH 058/132] meson: convert net directory to Meson Paolo Bonzini
2019-12-12 12:51 ` [PATCH 059/132] meson: convert backends " Paolo Bonzini
2019-12-12 12:51 ` [PATCH 060/132] meson: convert fsdev/ Paolo Bonzini
2019-12-12 12:51 ` [PATCH 061/132] meson: convert disas directory to Meson Paolo Bonzini
2019-12-12 12:51 ` [PATCH 062/132] meson: convert qapi-specific to meson Paolo Bonzini
2019-12-12 12:51 ` [PATCH 063/132] meson: convert hw/xen Paolo Bonzini
2019-12-12 12:51 ` [PATCH 064/132] meson: convert hw/core Paolo Bonzini
2019-12-12 12:51 ` [PATCH 065/132] meson: convert hw/semihosting Paolo Bonzini
2019-12-12 12:51 ` [PATCH 066/132] meson: convert hw/smbios Paolo Bonzini
2019-12-12 12:51 ` [PATCH 067/132] meson: convert hw/mem Paolo Bonzini
2019-12-12 12:51 ` [PATCH 068/132] meson: convert hw/watchdog Paolo Bonzini
2019-12-12 12:51 ` [PATCH 069/132] meson: convert hw/virtio Paolo Bonzini
2019-12-12 12:51 ` [PATCH 070/132] meson: convert hw/vfio Paolo Bonzini
2019-12-12 12:51 ` [PATCH 071/132] meson: convert hw/usb Paolo Bonzini
2019-12-12 12:51 ` [PATCH 072/132] meson: convert hw/tpm Paolo Bonzini
2019-12-12 12:51 ` [PATCH 073/132] meson: convert hw/timer Paolo Bonzini
2019-12-12 12:51 ` [PATCH 074/132] meson: convert hw/ssi Paolo Bonzini
2019-12-12 12:51 ` [PATCH 075/132] meson: convert hw/sd Paolo Bonzini
2019-12-12 12:52 ` [PATCH 076/132] meson: convert hw/scsi Paolo Bonzini
2019-12-12 12:52 ` [PATCH 077/132] meson: convert hw/pcmcia Paolo Bonzini
2019-12-12 12:52 ` [PATCH 078/132] meson: convert hw/pci-host Paolo Bonzini
2019-12-12 12:52 ` [PATCH 079/132] meson: convert hw/pci-bridge Paolo Bonzini
2019-12-12 12:52 ` [PATCH 080/132] meson: convert hw/pci Paolo Bonzini
2019-12-12 12:52 ` [PATCH 081/132] meson: convert hw/nvram Paolo Bonzini
2019-12-12 12:52 ` [PATCH 082/132] meson: convert hw/rdma Paolo Bonzini
2019-12-12 12:52 ` [PATCH 083/132] meson: convert hw/net Paolo Bonzini
2019-12-12 12:52 ` [PATCH 084/132] meson: convert hw/misc Paolo Bonzini
2019-12-12 12:52 ` [PATCH 085/132] meson: convert hw/isa Paolo Bonzini
2019-12-12 12:52 ` [PATCH 086/132] meson: convert hw/ipmi Paolo Bonzini
2019-12-12 12:52 ` [PATCH 087/132] meson: convert hw/ipack Paolo Bonzini
2019-12-12 12:52 ` [PATCH 088/132] meson: convert hw/intc Paolo Bonzini
2019-12-12 12:52 ` [PATCH 089/132] meson: convert hw/input Paolo Bonzini
2019-12-12 12:52 ` [PATCH 090/132] meson: convert hw/ide Paolo Bonzini
2019-12-12 12:52 ` [PATCH 091/132] meson: convert hw/i2c Paolo Bonzini
2019-12-12 12:52 ` [PATCH 092/132] meson: convert hw/hyperv Paolo Bonzini
2019-12-12 12:52 ` [PATCH 093/132] meson: convert hw/gpio Paolo Bonzini
2019-12-19 7:25 ` [RFC PATCH v3 000/132] Proof of concept for Meson integration Markus Armbruster
2019-12-19 12:32 ` Paolo Bonzini
2019-12-19 12:23 ` [PATCH 092/132] meson: convert hw/hyperv Paolo Bonzini
2019-12-19 12:23 ` [PATCH 093/132] meson: convert hw/gpio Paolo Bonzini
2019-12-19 12:23 ` [PATCH 094/132] meson: convert hw/dma Paolo Bonzini
2019-12-19 12:23 ` [PATCH 095/132] meson: convert hw/display Paolo Bonzini
2019-12-19 12:23 ` [PATCH 096/132] meson: convert hw/cpu Paolo Bonzini
2019-12-19 12:23 ` [PATCH 097/132] meson: convert hw/char Paolo Bonzini
2019-12-19 12:23 ` [PATCH 098/132] meson: convert hw/bt Paolo Bonzini
2019-12-19 12:23 ` [PATCH 099/132] meson: convert hw/block Paolo Bonzini
2019-12-19 12:23 ` [PATCH 100/132] meson: convert hw/audio Paolo Bonzini
2019-12-19 12:23 ` [PATCH 101/132] meson: convert hw/adc Paolo Bonzini
2019-12-19 12:23 ` [PATCH 102/132] meson: convert hw/acpi Paolo Bonzini
2019-12-19 12:23 ` [PATCH 103/132] meson: convert hw/9pfs Paolo Bonzini
2019-12-19 12:23 ` [PATCH 104/132] meson: convert target/s390x/gen-features.h Paolo Bonzini
2019-12-19 12:23 ` [PATCH 105/132] meson: convert hw/arch* Paolo Bonzini
2019-12-19 12:23 ` [PATCH 106/132] meson: target Paolo Bonzini
2019-12-19 12:23 ` [PATCH 107/132] meson: accel Paolo Bonzini
2019-12-19 12:23 ` [PATCH 108/132] meson: linux-user Paolo Bonzini
2019-12-19 16:07 ` Laurent Vivier
2019-12-19 12:23 ` [PATCH 109/132] meson: bsd-user Paolo Bonzini
2019-12-19 12:23 ` [PATCH 110/132] meson: cpu-emu Paolo Bonzini
2019-12-19 12:23 ` [PATCH 111/132] meson: softmmu Paolo Bonzini
2019-12-19 12:23 ` [PATCH 112/132] Aaaaallelujah! Paolo Bonzini
2019-12-19 12:23 ` [PATCH 113/132] systemtap Paolo Bonzini
2019-12-19 12:23 ` [PATCH 114/132] build-sys/rules.mak: remove version.o Paolo Bonzini
2019-12-19 12:23 ` [PATCH 115/132] remove Makefile.target Paolo Bonzini
2019-12-19 12:23 ` [PATCH 116/132] meson: sphinx-build Paolo Bonzini
2019-12-19 12:23 ` [PATCH 117/132] meson: generate version.texi Paolo Bonzini
2019-12-19 12:23 ` [PATCH 118/132] meson: build texi doc Paolo Bonzini
2019-12-19 12:23 ` [PATCH 119/132] meson: add NSIS building Paolo Bonzini
2019-12-19 12:23 ` [PATCH 120/132] meson: install some scripts Paolo Bonzini
2019-12-19 12:23 ` [PATCH 121/132] meson: install edk2 Paolo Bonzini
2020-01-03 10:51 ` Philippe Mathieu-Daudé
2019-12-19 12:23 ` [PATCH 122/132] meson: install blobs Paolo Bonzini
2019-12-19 12:23 ` [PATCH 123/132] meson: install edk2 json descriptors Paolo Bonzini
2019-12-19 12:23 ` [PATCH 124/132] meson: install icons Paolo Bonzini
2019-12-19 12:23 ` [PATCH 125/132] meson: install desktop file Paolo Bonzini
2019-12-19 12:23 ` [PATCH 126/132] meson: install keymaps Paolo Bonzini
2019-12-19 12:23 ` [PATCH 127/132] meson: convert po/ Paolo Bonzini
2019-12-19 12:23 ` [PATCH 128/132] meson: replace pc-bios/keymaps/Makefile Paolo Bonzini
2019-12-19 12:23 ` [PATCH 129/132] meson: replace mostly useless pc-bios/Makefile Paolo Bonzini
2019-12-19 12:23 ` [PATCH 130/132] meson: convert pc-bios/s390-ccw Paolo Bonzini
2019-12-19 12:23 ` [PATCH 131/132] meson: convert pc-bios/optionrom Paolo Bonzini
2019-12-19 12:23 ` [PATCH 132/132] rules.mak: drop unneeded macros Paolo Bonzini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1576155176-2464-43-git-send-email-pbonzini@redhat.com \
--to=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).