On Thu, 27 Apr 2023 23:29:46 +0300 Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru> wrote:
> Add option to not build filter-mirror, filter-rewriter and > colo-compare when they are not needed. > > There could be more agile configuration, for example add separate > options for each filter, but that may be done in future on demand. The > aim of this patch is to make possible to disable the whole COLO Proxy > subsystem. > > Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@yandex-team.ru> > --- > meson_options.txt | 2 ++ > net/meson.build | 14 ++++++++++---- > scripts/meson-buildoptions.sh | 3 +++ > stubs/colo-compare.c | 7 +++++++ > stubs/meson.build | 1 + > 5 files changed, 23 insertions(+), 4 deletions(-) > create mode 100644 stubs/colo-compare.c > > diff --git a/meson_options.txt b/meson_options.txt > index 2471dd02da..b59e7ae342 100644 > --- a/meson_options.txt > +++ b/meson_options.txt > @@ -289,6 +289,8 @@ option('live_block_migration', type: 'feature', value: > 'auto', > description: 'block migration in the main migration stream') > option('replication', type: 'feature', value: 'auto', > description: 'replication support') > +option('colo_proxy', type: 'feature', value: 'auto', > + description: 'colo-proxy support') > option('bochs', type: 'feature', value: 'auto', > description: 'bochs image format support') > option('cloop', type: 'feature', value: 'auto', > diff --git a/net/meson.build b/net/meson.build > index 87afca3e93..4cfc850c69 100644 > --- a/net/meson.build > +++ b/net/meson.build > @@ -1,13 +1,9 @@ > softmmu_ss.add(files( > 'announce.c', > 'checksum.c', > - 'colo-compare.c', > - 'colo.c', > 'dump.c', > 'eth.c', > 'filter-buffer.c', > - 'filter-mirror.c', > - 'filter-rewriter.c', > 'filter.c', > 'hub.c', > 'net-hmp-cmds.c', > @@ -19,6 +15,16 @@ softmmu_ss.add(files( > 'util.c', > )) > > +if get_option('replication').allowed() or \ > + get_option('colo_proxy').allowed() > + softmmu_ss.add(files('colo-compare.c')) > + softmmu_ss.add(files('colo.c')) > +endif > + > +if get_option('colo_proxy').allowed() > + softmmu_ss.add(files('filter-mirror.c', 'filter-rewriter.c')) > +endif > + The last discussion didn't really come to a conclusion, but I still think that 'filter-mirror.c' (which also contains filter-redirect) should be left unchanged. > softmmu_ss.add(when: 'CONFIG_TCG', if_true: files('filter-replay.c')) > > if have_l2tpv3 > diff --git a/scripts/meson-buildoptions.sh b/scripts/meson-buildoptions.sh > index d4369a3ad8..036047ce6f 100644 > --- a/scripts/meson-buildoptions.sh > +++ b/scripts/meson-buildoptions.sh > @@ -83,6 +83,7 @@ meson_options_help() { > printf "%s\n" ' capstone Whether and how to find the capstone > library' > printf "%s\n" ' cloop cloop image format support' > printf "%s\n" ' cocoa Cocoa user interface (macOS only)' > + printf "%s\n" ' colo-proxy colo-proxy support' > printf "%s\n" ' coreaudio CoreAudio sound support' > printf "%s\n" ' crypto-afalg Linux AF_ALG crypto backend driver' > printf "%s\n" ' curl CURL block device driver' > @@ -236,6 +237,8 @@ _meson_option_parse() { > --disable-cloop) printf "%s" -Dcloop=disabled ;; > --enable-cocoa) printf "%s" -Dcocoa=enabled ;; > --disable-cocoa) printf "%s" -Dcocoa=disabled ;; > + --enable-colo-proxy) printf "%s" -Dcolo_proxy=enabled ;; > + --disable-colo-proxy) printf "%s" -Dcolo_proxy=disabled ;; > --enable-coreaudio) printf "%s" -Dcoreaudio=enabled ;; > --disable-coreaudio) printf "%s" -Dcoreaudio=disabled ;; > --enable-coroutine-pool) printf "%s" -Dcoroutine_pool=true ;; > diff --git a/stubs/colo-compare.c b/stubs/colo-compare.c > new file mode 100644 > index 0000000000..ec726665be > --- /dev/null > +++ b/stubs/colo-compare.c > @@ -0,0 +1,7 @@ > +#include "qemu/osdep.h" > +#include "qemu/notify.h" > +#include "net/colo-compare.h" > + > +void colo_compare_cleanup(void) > +{ > +} > diff --git a/stubs/meson.build b/stubs/meson.build > index 8412cad15f..a56645e2f7 100644 > --- a/stubs/meson.build > +++ b/stubs/meson.build > @@ -46,6 +46,7 @@ stub_ss.add(files('target-monitor-defs.c')) > stub_ss.add(files('trace-control.c')) > stub_ss.add(files('uuid.c')) > stub_ss.add(files('colo.c')) > +stub_ss.add(files('colo-compare.c')) > stub_ss.add(files('vmstate.c')) > stub_ss.add(files('vm-stop.c')) > stub_ss.add(files('win32-kbd-hook.c')) --
pgpyQ83V9J3SK.pgp
Description: OpenPGP digital signature