Message ID | 20221109173750.201615-1-thuth@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | qga: Allow building of the guest agent without system emulators or tools | expand |
Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com> On Wed, Nov 9, 2022 at 7:37 PM Thomas Huth <thuth@redhat.com> wrote: > If configuring with "--disable-system --disable-user --enable-guest-agent" > the linking currently fails with: > > qga/qemu-ga.p/commands.c.o: In function `qmp_command_info': > build/../../home/thuth/devel/qemu/qga/commands.c:70: undefined reference > to `qmp_command_name' > build/../../home/thuth/devel/qemu/qga/commands.c:71: undefined reference > to `qmp_command_is_enabled' > build/../../home/thuth/devel/qemu/qga/commands.c:72: undefined reference > to `qmp_has_success_response' > qga/qemu-ga.p/commands.c.o: In function `qmp_guest_info': > build/../../home/thuth/devel/qemu/qga/commands.c:82: undefined reference > to `qmp_for_each_command' > qga/qemu-ga.p/commands.c.o: In function `qmp_guest_exec': > build/../../home/thuth/devel/qemu/qga/commands.c:410: undefined reference > to `qbase64_decode' > qga/qemu-ga.p/channel-posix.c.o: In function `ga_channel_open': > build/../../home/thuth/devel/qemu/qga/channel-posix.c:214: undefined > reference to `unix_listen' > build/../../home/thuth/devel/qemu/qga/channel-posix.c:228: undefined > reference to `socket_parse' > build/../../home/thuth/devel/qemu/qga/channel-posix.c:234: undefined > reference to `socket_listen' > qga/qemu-ga.p/commands-posix.c.o: In function `qmp_guest_file_write': > build/../../home/thuth/devel/qemu/qga/commands-posix.c:527: undefined > reference to `qbase64_decode' > > Let's make sure that we also compile and link the required files if > the system emulators have not been enabled. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > qapi/meson.build | 2 +- > stubs/meson.build | 2 +- > util/meson.build | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/qapi/meson.build b/qapi/meson.build > index 9a36c15c04..fbdb442fdf 100644 > --- a/qapi/meson.build > +++ b/qapi/meson.build > @@ -13,7 +13,7 @@ util_ss.add(files( > if have_system > util_ss.add(files('qapi-type-helpers.c')) > endif > -if have_system or have_tools > +if have_system or have_tools or have_ga > util_ss.add(files( > 'qmp-dispatch.c', > 'qmp-event.c', > diff --git a/stubs/meson.build b/stubs/meson.build > index 4314161f5f..c96a74f095 100644 > --- a/stubs/meson.build > +++ b/stubs/meson.build > @@ -49,7 +49,7 @@ stub_ss.add(files('vmstate.c')) > stub_ss.add(files('vm-stop.c')) > stub_ss.add(files('win32-kbd-hook.c')) > stub_ss.add(files('cpu-synchronize-state.c')) > -if have_block > +if have_block or have_ga > stub_ss.add(files('replay-tools.c')) > endif > if have_system > diff --git a/util/meson.build b/util/meson.build > index 59c1f467bb..b260539bd5 100644 > --- a/util/meson.build > +++ b/util/meson.build > @@ -68,7 +68,7 @@ if have_system > util_ss.add(when: 'CONFIG_LINUX', if_true: files('userfaultfd.c')) > endif > > -if have_block > +if have_block or have_ga > util_ss.add(files('aiocb.c', 'async.c', 'aio-wait.c')) > util_ss.add(files('base64.c')) > util_ss.add(files('buffer.c')) > -- > 2.31.1 > >
On 9/11/22 18:37, Thomas Huth wrote: > If configuring with "--disable-system --disable-user --enable-guest-agent" > the linking currently fails with: > > qga/qemu-ga.p/commands.c.o: In function `qmp_command_info': > build/../../home/thuth/devel/qemu/qga/commands.c:70: undefined reference to `qmp_command_name' > build/../../home/thuth/devel/qemu/qga/commands.c:71: undefined reference to `qmp_command_is_enabled' > build/../../home/thuth/devel/qemu/qga/commands.c:72: undefined reference to `qmp_has_success_response' > qga/qemu-ga.p/commands.c.o: In function `qmp_guest_info': > build/../../home/thuth/devel/qemu/qga/commands.c:82: undefined reference to `qmp_for_each_command' > qga/qemu-ga.p/commands.c.o: In function `qmp_guest_exec': > build/../../home/thuth/devel/qemu/qga/commands.c:410: undefined reference to `qbase64_decode' > qga/qemu-ga.p/channel-posix.c.o: In function `ga_channel_open': > build/../../home/thuth/devel/qemu/qga/channel-posix.c:214: undefined reference to `unix_listen' > build/../../home/thuth/devel/qemu/qga/channel-posix.c:228: undefined reference to `socket_parse' > build/../../home/thuth/devel/qemu/qga/channel-posix.c:234: undefined reference to `socket_listen' > qga/qemu-ga.p/commands-posix.c.o: In function `qmp_guest_file_write': > build/../../home/thuth/devel/qemu/qga/commands-posix.c:527: undefined reference to `qbase64_decode' > > Let's make sure that we also compile and link the required files if > the system emulators have not been enabled. > > Signed-off-by: Thomas Huth <thuth@redhat.com> > --- > qapi/meson.build | 2 +- > stubs/meson.build | 2 +- > util/meson.build | 2 +- > 3 files changed, 3 insertions(+), 3 deletions(-) > diff --git a/util/meson.build b/util/meson.build > index 59c1f467bb..b260539bd5 100644 > --- a/util/meson.build > +++ b/util/meson.build > @@ -68,7 +68,7 @@ if have_system > util_ss.add(when: 'CONFIG_LINUX', if_true: files('userfaultfd.c')) > endif > > -if have_block > +if have_block or have_ga > util_ss.add(files('aiocb.c', 'async.c', 'aio-wait.c')) > util_ss.add(files('base64.c')) > util_ss.add(files('buffer.c')) This can be eventually reduced for 'have_ga': -- 8< -- diff --git a/util/meson.build b/util/meson.build index 59c1f467bbe..690e8be903e 100644 --- a/util/meson.build +++ b/util/meson.build @@ -68,28 +68,30 @@ util_ss.add(when: 'CONFIG_LINUX', if_true: files('userfaultfd.c')) endif -if have_block +if have_block or have_ga util_ss.add(files('aiocb.c', 'async.c', 'aio-wait.c')) util_ss.add(files('base64.c')) + util_ss.add(files('coroutine-@0@.c'.format(config_host['CONFIG_COROUTINE_BACKEND']))) + util_ss.add(files('lockcnt.c')) + util_ss.add(files('main-loop.c')) + util_ss.add(files('qemu-coroutine.c', 'qemu-coroutine-lock.c', 'qemu-coroutine-io.c')) + util_ss.add(files('qemu-coroutine-sleep.c')) + util_ss.add(files('qemu-co-shared-resource.c')) + util_ss.add(files('qemu-co-timeout.c')) + util_ss.add(files('iov.c', 'qemu-sockets.c', 'uri.c')) + util_ss.add(files('thread-pool.c', 'qemu-timer.c')) +endif +if have_block util_ss.add(files('buffer.c')) util_ss.add(files('bufferiszero.c')) - util_ss.add(files('coroutine-@0@.c'.format(config_host['CONFIG_COROUTINE_BACKEND']))) util_ss.add(files('hbitmap.c')) util_ss.add(files('hexdump.c')) util_ss.add(files('iova-tree.c')) - util_ss.add(files('iov.c', 'qemu-sockets.c', 'uri.c')) - util_ss.add(files('lockcnt.c')) - util_ss.add(files('main-loop.c')) util_ss.add(files('nvdimm-utils.c')) - util_ss.add(files('qemu-coroutine.c', 'qemu-coroutine-lock.c', 'qemu-coroutine-io.c')) util_ss.add(when: 'CONFIG_LINUX', if_true: [ files('vhost-user-server.c'), vhost_user ]) util_ss.add(files('block-helpers.c')) - util_ss.add(files('qemu-coroutine-sleep.c')) - util_ss.add(files('qemu-co-shared-resource.c')) - util_ss.add(files('qemu-co-timeout.c')) - util_ss.add(files('thread-pool.c', 'qemu-timer.c')) util_ss.add(files('readline.c')) util_ss.add(files('throttle.c')) util_ss.add(files('timed-average.c')) --- Regardless: Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Philippe Mathieu-Daudé <philmd@linaro.org> writes: > On 9/11/22 18:37, Thomas Huth wrote: >> If configuring with "--disable-system --disable-user --enable-guest-agent" >> the linking currently fails with: >> >> qga/qemu-ga.p/commands.c.o: In function `qmp_command_info': >> build/../../home/thuth/devel/qemu/qga/commands.c:70: undefined reference to `qmp_command_name' >> build/../../home/thuth/devel/qemu/qga/commands.c:71: undefined reference to `qmp_command_is_enabled' >> build/../../home/thuth/devel/qemu/qga/commands.c:72: undefined reference to `qmp_has_success_response' >> qga/qemu-ga.p/commands.c.o: In function `qmp_guest_info': >> build/../../home/thuth/devel/qemu/qga/commands.c:82: undefined reference to `qmp_for_each_command' >> qga/qemu-ga.p/commands.c.o: In function `qmp_guest_exec': >> build/../../home/thuth/devel/qemu/qga/commands.c:410: undefined reference to `qbase64_decode' >> qga/qemu-ga.p/channel-posix.c.o: In function `ga_channel_open': >> build/../../home/thuth/devel/qemu/qga/channel-posix.c:214: undefined reference to `unix_listen' >> build/../../home/thuth/devel/qemu/qga/channel-posix.c:228: undefined reference to `socket_parse' >> build/../../home/thuth/devel/qemu/qga/channel-posix.c:234: undefined reference to `socket_listen' >> qga/qemu-ga.p/commands-posix.c.o: In function `qmp_guest_file_write': >> build/../../home/thuth/devel/qemu/qga/commands-posix.c:527: undefined reference to `qbase64_decode' >> >> Let's make sure that we also compile and link the required files if >> the system emulators have not been enabled. >> >> Signed-off-by: Thomas Huth <thuth@redhat.com> I wonder for how long this has been broken. Should we add such a configuration to CI? >> --- >> qapi/meson.build | 2 +- >> stubs/meson.build | 2 +- >> util/meson.build | 2 +- >> 3 files changed, 3 insertions(+), 3 deletions(-) > >> diff --git a/util/meson.build b/util/meson.build >> index 59c1f467bb..b260539bd5 100644 >> --- a/util/meson.build >> +++ b/util/meson.build >> @@ -68,7 +68,7 @@ if have_system >> util_ss.add(when: 'CONFIG_LINUX', if_true: files('userfaultfd.c')) >> endif >> >> -if have_block >> +if have_block or have_ga >> util_ss.add(files('aiocb.c', 'async.c', 'aio-wait.c')) >> util_ss.add(files('base64.c')) >> util_ss.add(files('buffer.c')) > > This can be eventually reduced for 'have_ga': > > -- 8< -- > diff --git a/util/meson.build b/util/meson.build > index 59c1f467bbe..690e8be903e 100644 > --- a/util/meson.build > +++ b/util/meson.build > @@ -68,28 +68,30 @@ > util_ss.add(when: 'CONFIG_LINUX', if_true: files('userfaultfd.c')) > endif > > -if have_block > +if have_block or have_ga > util_ss.add(files('aiocb.c', 'async.c', 'aio-wait.c')) > util_ss.add(files('base64.c')) > + > util_ss.add(files('coroutine-@0@.c'.format(config_host['CONFIG_COROUTINE_BACKEND']))) > + util_ss.add(files('lockcnt.c')) > + util_ss.add(files('main-loop.c')) > + util_ss.add(files('qemu-coroutine.c', 'qemu-coroutine-lock.c', > 'qemu-coroutine-io.c')) > + util_ss.add(files('qemu-coroutine-sleep.c')) > + util_ss.add(files('qemu-co-shared-resource.c')) > + util_ss.add(files('qemu-co-timeout.c')) > + util_ss.add(files('iov.c', 'qemu-sockets.c', 'uri.c')) > + util_ss.add(files('thread-pool.c', 'qemu-timer.c')) > +endif > +if have_block > util_ss.add(files('buffer.c')) > util_ss.add(files('bufferiszero.c')) > - > util_ss.add(files('coroutine-@0@.c'.format(config_host['CONFIG_COROUTINE_BACKEND']))) > util_ss.add(files('hbitmap.c')) > util_ss.add(files('hexdump.c')) > util_ss.add(files('iova-tree.c')) > - util_ss.add(files('iov.c', 'qemu-sockets.c', 'uri.c')) > - util_ss.add(files('lockcnt.c')) > - util_ss.add(files('main-loop.c')) > util_ss.add(files('nvdimm-utils.c')) > - util_ss.add(files('qemu-coroutine.c', 'qemu-coroutine-lock.c', > 'qemu-coroutine-io.c')) > util_ss.add(when: 'CONFIG_LINUX', if_true: [ > files('vhost-user-server.c'), vhost_user > ]) > util_ss.add(files('block-helpers.c')) > - util_ss.add(files('qemu-coroutine-sleep.c')) > - util_ss.add(files('qemu-co-shared-resource.c')) > - util_ss.add(files('qemu-co-timeout.c')) > - util_ss.add(files('thread-pool.c', 'qemu-timer.c')) > util_ss.add(files('readline.c')) > util_ss.add(files('throttle.c')) > util_ss.add(files('timed-average.c')) Better! > --- > > Regardless: > > Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
On 09/11/2022 22.56, Philippe Mathieu-Daudé wrote: > On 9/11/22 18:37, Thomas Huth wrote: >> If configuring with "--disable-system --disable-user --enable-guest-agent" >> the linking currently fails with: >> >> qga/qemu-ga.p/commands.c.o: In function `qmp_command_info': >> build/../../home/thuth/devel/qemu/qga/commands.c:70: undefined reference >> to `qmp_command_name' >> build/../../home/thuth/devel/qemu/qga/commands.c:71: undefined reference >> to `qmp_command_is_enabled' >> build/../../home/thuth/devel/qemu/qga/commands.c:72: undefined reference >> to `qmp_has_success_response' >> qga/qemu-ga.p/commands.c.o: In function `qmp_guest_info': >> build/../../home/thuth/devel/qemu/qga/commands.c:82: undefined reference >> to `qmp_for_each_command' >> qga/qemu-ga.p/commands.c.o: In function `qmp_guest_exec': >> build/../../home/thuth/devel/qemu/qga/commands.c:410: undefined reference >> to `qbase64_decode' >> qga/qemu-ga.p/channel-posix.c.o: In function `ga_channel_open': >> build/../../home/thuth/devel/qemu/qga/channel-posix.c:214: undefined >> reference to `unix_listen' >> build/../../home/thuth/devel/qemu/qga/channel-posix.c:228: undefined >> reference to `socket_parse' >> build/../../home/thuth/devel/qemu/qga/channel-posix.c:234: undefined >> reference to `socket_listen' >> qga/qemu-ga.p/commands-posix.c.o: In function `qmp_guest_file_write': >> build/../../home/thuth/devel/qemu/qga/commands-posix.c:527: undefined >> reference to `qbase64_decode' >> >> Let's make sure that we also compile and link the required files if >> the system emulators have not been enabled. >> >> Signed-off-by: Thomas Huth <thuth@redhat.com> >> --- >> qapi/meson.build | 2 +- >> stubs/meson.build | 2 +- >> util/meson.build | 2 +- >> 3 files changed, 3 insertions(+), 3 deletions(-) > >> diff --git a/util/meson.build b/util/meson.build >> index 59c1f467bb..b260539bd5 100644 >> --- a/util/meson.build >> +++ b/util/meson.build >> @@ -68,7 +68,7 @@ if have_system >> util_ss.add(when: 'CONFIG_LINUX', if_true: files('userfaultfd.c')) >> endif >> -if have_block >> +if have_block or have_ga >> util_ss.add(files('aiocb.c', 'async.c', 'aio-wait.c')) >> util_ss.add(files('base64.c')) >> util_ss.add(files('buffer.c')) > > This can be eventually reduced for 'have_ga': > > -- 8< -- > diff --git a/util/meson.build b/util/meson.build > index 59c1f467bbe..690e8be903e 100644 > --- a/util/meson.build > +++ b/util/meson.build > @@ -68,28 +68,30 @@ > util_ss.add(when: 'CONFIG_LINUX', if_true: files('userfaultfd.c')) > endif > > -if have_block > +if have_block or have_ga > util_ss.add(files('aiocb.c', 'async.c', 'aio-wait.c')) Thanks for the idea! By breaking up the lines that contain multiple files, it seems that it can even be refined further. I'll send a v2. Thomas
On 10/11/2022 06.49, Markus Armbruster wrote: > Philippe Mathieu-Daudé <philmd@linaro.org> writes: > >> On 9/11/22 18:37, Thomas Huth wrote: >>> If configuring with "--disable-system --disable-user --enable-guest-agent" >>> the linking currently fails with: >>> >>> qga/qemu-ga.p/commands.c.o: In function `qmp_command_info': >>> build/../../home/thuth/devel/qemu/qga/commands.c:70: undefined reference to `qmp_command_name' >>> build/../../home/thuth/devel/qemu/qga/commands.c:71: undefined reference to `qmp_command_is_enabled' >>> build/../../home/thuth/devel/qemu/qga/commands.c:72: undefined reference to `qmp_has_success_response' >>> qga/qemu-ga.p/commands.c.o: In function `qmp_guest_info': >>> build/../../home/thuth/devel/qemu/qga/commands.c:82: undefined reference to `qmp_for_each_command' >>> qga/qemu-ga.p/commands.c.o: In function `qmp_guest_exec': >>> build/../../home/thuth/devel/qemu/qga/commands.c:410: undefined reference to `qbase64_decode' >>> qga/qemu-ga.p/channel-posix.c.o: In function `ga_channel_open': >>> build/../../home/thuth/devel/qemu/qga/channel-posix.c:214: undefined reference to `unix_listen' >>> build/../../home/thuth/devel/qemu/qga/channel-posix.c:228: undefined reference to `socket_parse' >>> build/../../home/thuth/devel/qemu/qga/channel-posix.c:234: undefined reference to `socket_listen' >>> qga/qemu-ga.p/commands-posix.c.o: In function `qmp_guest_file_write': >>> build/../../home/thuth/devel/qemu/qga/commands-posix.c:527: undefined reference to `qbase64_decode' >>> >>> Let's make sure that we also compile and link the required files if >>> the system emulators have not been enabled. >>> >>> Signed-off-by: Thomas Huth <thuth@redhat.com> > > I wonder for how long this has been broken. > > Should we add such a configuration to CI? Some month ago, I'd say: Sure! ... but considering that gitlab now limits the available CI minutes and that apparently nobody really cares about this configuration (otherwise someone would have complained about this earlier), I think it's not that important to have a separate CI test for this configuration. Thomas
On 10/11/22 09:35, Thomas Huth wrote: > On 10/11/2022 06.49, Markus Armbruster wrote: >> Philippe Mathieu-Daudé <philmd@linaro.org> writes: >> >>> On 9/11/22 18:37, Thomas Huth wrote: >>>> If configuring with "--disable-system --disable-user >>>> --enable-guest-agent" >>>> the linking currently fails with: >>>> >>>> qga/qemu-ga.p/commands.c.o: In function `qmp_command_info': >>>> build/../../home/thuth/devel/qemu/qga/commands.c:70: undefined >>>> reference to `qmp_command_name' >>>> Let's make sure that we also compile and link the required files if >>>> the system emulators have not been enabled. >>>> >>>> Signed-off-by: Thomas Huth <thuth@redhat.com> >> >> I wonder for how long this has been broken. >> >> Should we add such a configuration to CI? > > Some month ago, I'd say: Sure! ... but considering that gitlab now > limits the available CI minutes and that apparently nobody really cares > about this configuration (otherwise someone would have complained about > this earlier), I think it's not that important to have a separate CI > test for this configuration. We could eventually add a job restricted to qemu-project CI (not in forks).
On 10/11/2022 10.49, Philippe Mathieu-Daudé wrote: > On 10/11/22 09:35, Thomas Huth wrote: >> On 10/11/2022 06.49, Markus Armbruster wrote: >>> Philippe Mathieu-Daudé <philmd@linaro.org> writes: >>> >>>> On 9/11/22 18:37, Thomas Huth wrote: >>>>> If configuring with "--disable-system --disable-user --enable-guest-agent" >>>>> the linking currently fails with: >>>>> >>>>> qga/qemu-ga.p/commands.c.o: In function `qmp_command_info': >>>>> build/../../home/thuth/devel/qemu/qga/commands.c:70: undefined >>>>> reference to `qmp_command_name' > >>>>> Let's make sure that we also compile and link the required files if >>>>> the system emulators have not been enabled. >>>>> >>>>> Signed-off-by: Thomas Huth <thuth@redhat.com> >>> >>> I wonder for how long this has been broken. >>> >>> Should we add such a configuration to CI? >> >> Some month ago, I'd say: Sure! ... but considering that gitlab now limits >> the available CI minutes and that apparently nobody really cares about >> this configuration (otherwise someone would have complained about this >> earlier), I think it's not that important to have a separate CI test for >> this configuration. > > We could eventually add a job restricted to qemu-project CI (not in > forks). The problem is: Who's going to create such jobs? Someone needs to write the yaml stuff and test it first. And at least I pretty much lost motivation to work on new yaml stuff, since this burns my private CI minutes (which I rather need for my maintainer duties instead). Thomas
On Thu, Nov 10, 2022 at 10:57:27AM +0100, Thomas Huth wrote: > On 10/11/2022 10.49, Philippe Mathieu-Daudé wrote: > > On 10/11/22 09:35, Thomas Huth wrote: > > > On 10/11/2022 06.49, Markus Armbruster wrote: > > > > Philippe Mathieu-Daudé <philmd@linaro.org> writes: > > > > > > > > > On 9/11/22 18:37, Thomas Huth wrote: > > > > > > If configuring with "--disable-system --disable-user --enable-guest-agent" > > > > > > the linking currently fails with: > > > > > > > > > > > > qga/qemu-ga.p/commands.c.o: In function `qmp_command_info': > > > > > > build/../../home/thuth/devel/qemu/qga/commands.c:70: > > > > > > undefined reference to `qmp_command_name' > > > > > > > > Let's make sure that we also compile and link the required files if > > > > > > the system emulators have not been enabled. > > > > > > > > > > > > Signed-off-by: Thomas Huth <thuth@redhat.com> > > > > > > > > I wonder for how long this has been broken. > > > > > > > > Should we add such a configuration to CI? > > > > > > Some month ago, I'd say: Sure! ... but considering that gitlab now > > > limits the available CI minutes and that apparently nobody really > > > cares about this configuration (otherwise someone would have > > > complained about this earlier), I think it's not that important to > > > have a separate CI test for this configuration. > > > > We could eventually add a job restricted to qemu-project CI (not in > > forks). > > The problem is: Who's going to create such jobs? Someone needs to write the > yaml stuff and test it first. And at least I pretty much lost motivation to > work on new yaml stuff, since this burns my private CI minutes (which I > rather need for my maintainer duties instead). Top tip: if you're working on GitLab CI changes, create a separate QEMU fork in a different namespace for your adhoc testing, separate from your normal maintainer work. CI minutes are limited per namespace, ie group or user account, and AFAIK, there is no limit on the number of groups you can create. eg, create a group called /thuth-ci, and fork QEMU into that and you've doubled the number of CI minutes available, so you can afford to mess around with CI changes and not risk ability to do your other normal work. Now of course this ability to create many groups can be abused and I expect GitLab would take a dim view of such abuse. So I would only use this creation of extra groups for this very specific use case of needing to battle test CI YAML changes. With regards, Daniel
diff --git a/qapi/meson.build b/qapi/meson.build index 9a36c15c04..fbdb442fdf 100644 --- a/qapi/meson.build +++ b/qapi/meson.build @@ -13,7 +13,7 @@ util_ss.add(files( if have_system util_ss.add(files('qapi-type-helpers.c')) endif -if have_system or have_tools +if have_system or have_tools or have_ga util_ss.add(files( 'qmp-dispatch.c', 'qmp-event.c', diff --git a/stubs/meson.build b/stubs/meson.build index 4314161f5f..c96a74f095 100644 --- a/stubs/meson.build +++ b/stubs/meson.build @@ -49,7 +49,7 @@ stub_ss.add(files('vmstate.c')) stub_ss.add(files('vm-stop.c')) stub_ss.add(files('win32-kbd-hook.c')) stub_ss.add(files('cpu-synchronize-state.c')) -if have_block +if have_block or have_ga stub_ss.add(files('replay-tools.c')) endif if have_system diff --git a/util/meson.build b/util/meson.build index 59c1f467bb..b260539bd5 100644 --- a/util/meson.build +++ b/util/meson.build @@ -68,7 +68,7 @@ if have_system util_ss.add(when: 'CONFIG_LINUX', if_true: files('userfaultfd.c')) endif -if have_block +if have_block or have_ga util_ss.add(files('aiocb.c', 'async.c', 'aio-wait.c')) util_ss.add(files('base64.c')) util_ss.add(files('buffer.c'))
If configuring with "--disable-system --disable-user --enable-guest-agent" the linking currently fails with: qga/qemu-ga.p/commands.c.o: In function `qmp_command_info': build/../../home/thuth/devel/qemu/qga/commands.c:70: undefined reference to `qmp_command_name' build/../../home/thuth/devel/qemu/qga/commands.c:71: undefined reference to `qmp_command_is_enabled' build/../../home/thuth/devel/qemu/qga/commands.c:72: undefined reference to `qmp_has_success_response' qga/qemu-ga.p/commands.c.o: In function `qmp_guest_info': build/../../home/thuth/devel/qemu/qga/commands.c:82: undefined reference to `qmp_for_each_command' qga/qemu-ga.p/commands.c.o: In function `qmp_guest_exec': build/../../home/thuth/devel/qemu/qga/commands.c:410: undefined reference to `qbase64_decode' qga/qemu-ga.p/channel-posix.c.o: In function `ga_channel_open': build/../../home/thuth/devel/qemu/qga/channel-posix.c:214: undefined reference to `unix_listen' build/../../home/thuth/devel/qemu/qga/channel-posix.c:228: undefined reference to `socket_parse' build/../../home/thuth/devel/qemu/qga/channel-posix.c:234: undefined reference to `socket_listen' qga/qemu-ga.p/commands-posix.c.o: In function `qmp_guest_file_write': build/../../home/thuth/devel/qemu/qga/commands-posix.c:527: undefined reference to `qbase64_decode' Let's make sure that we also compile and link the required files if the system emulators have not been enabled. Signed-off-by: Thomas Huth <thuth@redhat.com> --- qapi/meson.build | 2 +- stubs/meson.build | 2 +- util/meson.build | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-)