qemu-trivial
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] qga: Allow building of the guest agent without system emulat


From: Markus Armbruster
Subject: Re: [PATCH] qga: Allow building of the guest agent without system emulators or tools
Date: Thu, 10 Nov 2022 06:49:11 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

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>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]