[PATCH] stubs: Add missing qga stubs

Konstantin Kostiuk posted 1 patch 1 week, 2 days ago
There is a newer version of this series
stubs/meson.build | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
[PATCH] stubs: Add missing qga stubs
Posted by Konstantin Kostiuk 1 week, 2 days ago
Compilation QGA without system and user fails
./configure --disable-system --disable-user --enable-guest-agent

Fixes: 3a15604900c4f433c970cc6294520a98f201287e

Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
---
 stubs/meson.build | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/stubs/meson.build b/stubs/meson.build
index 8ee1fd5753..3b9d42023c 100644
--- a/stubs/meson.build
+++ b/stubs/meson.build
@@ -21,12 +21,12 @@ if have_block
   stub_ss.add(files('migr-blocker.c'))
   stub_ss.add(files('physmem.c'))
   stub_ss.add(files('ram-block.c'))
-  stub_ss.add(files('replay-tools.c'))
   stub_ss.add(files('runstate-check.c'))
   stub_ss.add(files('uuid.c'))
 endif
 
 if have_block or have_ga
+  stub_ss.add(files('replay-tools.c'))
   # stubs for hooks in util/main-loop.c, util/async.c etc.
   stub_ss.add(files('cpus-get-virtual-clock.c'))
   stub_ss.add(files('icount.c'))
@@ -45,6 +45,10 @@ if have_block or have_ga
   stub_ss.add(files('qmp-quit.c'))
 endif
 
+if have_ga
+  stub_ss.add(files('error-printf.c'))
+endif
+
 if have_block or have_user
   stub_ss.add(files('qtest.c'))
   stub_ss.add(files('vm-stop.c'))
-- 
2.44.0
Re: [PATCH] stubs: Add missing qga stubs
Posted by Philippe Mathieu-Daudé 1 week, 1 day ago
On 25/4/24 13:04, Konstantin Kostiuk wrote:
> Compilation QGA without system and user fails
> ./configure --disable-system --disable-user --enable-guest-agent

So this config isn't tested on CI.

Maybe worth enabling QGA in the build-tools-and-docs-debian job?


Please include the link failure:

   /usr/bin/ld: libqemuutil.a.p/util_main-loop.c.o: in function 
`os_host_main_loop_wait':
   ../util/main-loop.c:303: undefined reference to `replay_mutex_unlock'
   /usr/bin/ld: ../util/main-loop.c:307: undefined reference to 
`replay_mutex_lock'
   /usr/bin/ld: libqemuutil.a.p/util_error-report.c.o: in function 
`error_printf':
   ../util/error-report.c:38: undefined reference to `error_vprintf'
   /usr/bin/ld: libqemuutil.a.p/util_error-report.c.o: in function 
`vreport':
   ../util/error-report.c:225: undefined reference to `error_vprintf'
   /usr/bin/ld: libqemuutil.a.p/util_qemu-timer.c.o: in function 
`timerlist_run_timers':
   ../util/qemu-timer.c:562: undefined reference to `replay_checkpoint'
   /usr/bin/ld: ../util/qemu-timer.c:530: undefined reference to 
`replay_checkpoint'
   /usr/bin/ld: ../util/qemu-timer.c:525: undefined reference to 
`replay_checkpoint'
   ninja: build stopped: subcommand failed.

> Fixes: 3a15604900c4f433c970cc6294520a98f201287e

Fixes: 3a15604900 ("stubs: include stubs only if needed")

> Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
> ---
>   stubs/meson.build | 6 +++++-
>   1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/stubs/meson.build b/stubs/meson.build
> index 8ee1fd5753..3b9d42023c 100644
> --- a/stubs/meson.build
> +++ b/stubs/meson.build
> @@ -21,12 +21,12 @@ if have_block
>     stub_ss.add(files('migr-blocker.c'))
>     stub_ss.add(files('physmem.c'))
>     stub_ss.add(files('ram-block.c'))
> -  stub_ss.add(files('replay-tools.c'))
>     stub_ss.add(files('runstate-check.c'))
>     stub_ss.add(files('uuid.c'))
>   endif
>   
>   if have_block or have_ga
> +  stub_ss.add(files('replay-tools.c'))
>     # stubs for hooks in util/main-loop.c, util/async.c etc.
>     stub_ss.add(files('cpus-get-virtual-clock.c'))
>     stub_ss.add(files('icount.c'))
> @@ -45,6 +45,10 @@ if have_block or have_ga
>     stub_ss.add(files('qmp-quit.c'))
>   endif
>   
> +if have_ga
> +  stub_ss.add(files('error-printf.c'))

So now included twice, not a big deal.

> +endif
> +
>   if have_block or have_user
>     stub_ss.add(files('qtest.c'))
>     stub_ss.add(files('vm-stop.c'))

       # more symbols provided by the monitor
       stub_ss.add(files('error-printf.c'))
   endif

Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>

With updated description:
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>


Re: [PATCH] stubs: Add missing qga stubs
Posted by Konstantin Kostiuk 1 week, 1 day ago
On Fri, Apr 26, 2024 at 2:08 PM Philippe Mathieu-Daudé <philmd@linaro.org>
wrote:

> On 25/4/24 13:04, Konstantin Kostiuk wrote:
> > Compilation QGA without system and user fails
> > ./configure --disable-system --disable-user --enable-guest-agent
>
> So this config isn't tested on CI.
>
> Maybe worth enabling QGA in the build-tools-and-docs-debian job?
>

I am not sure that this is very often use case. I used it only during qga
cross-compilation for Windows to speed up build.


>
>
> Please include the link failure:
>
>    /usr/bin/ld: libqemuutil.a.p/util_main-loop.c.o: in function
> `os_host_main_loop_wait':
>    ../util/main-loop.c:303: undefined reference to `replay_mutex_unlock'
>    /usr/bin/ld: ../util/main-loop.c:307: undefined reference to
> `replay_mutex_lock'
>    /usr/bin/ld: libqemuutil.a.p/util_error-report.c.o: in function
> `error_printf':
>    ../util/error-report.c:38: undefined reference to `error_vprintf'
>    /usr/bin/ld: libqemuutil.a.p/util_error-report.c.o: in function
> `vreport':
>    ../util/error-report.c:225: undefined reference to `error_vprintf'
>    /usr/bin/ld: libqemuutil.a.p/util_qemu-timer.c.o: in function
> `timerlist_run_timers':
>    ../util/qemu-timer.c:562: undefined reference to `replay_checkpoint'
>    /usr/bin/ld: ../util/qemu-timer.c:530: undefined reference to
> `replay_checkpoint'
>    /usr/bin/ld: ../util/qemu-timer.c:525: undefined reference to
> `replay_checkpoint'
>    ninja: build stopped: subcommand failed.
>
> > Fixes: 3a15604900c4f433c970cc6294520a98f201287e
>
> Fixes: 3a15604900 ("stubs: include stubs only if needed")
>
> > Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
> > ---
> >   stubs/meson.build | 6 +++++-
> >   1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/stubs/meson.build b/stubs/meson.build
> > index 8ee1fd5753..3b9d42023c 100644
> > --- a/stubs/meson.build
> > +++ b/stubs/meson.build
> > @@ -21,12 +21,12 @@ if have_block
> >     stub_ss.add(files('migr-blocker.c'))
> >     stub_ss.add(files('physmem.c'))
> >     stub_ss.add(files('ram-block.c'))
> > -  stub_ss.add(files('replay-tools.c'))
> >     stub_ss.add(files('runstate-check.c'))
> >     stub_ss.add(files('uuid.c'))
> >   endif
> >
> >   if have_block or have_ga
> > +  stub_ss.add(files('replay-tools.c'))
> >     # stubs for hooks in util/main-loop.c, util/async.c etc.
> >     stub_ss.add(files('cpus-get-virtual-clock.c'))
> >     stub_ss.add(files('icount.c'))
> > @@ -45,6 +45,10 @@ if have_block or have_ga
> >     stub_ss.add(files('qmp-quit.c'))
> >   endif
> >
> > +if have_ga
> > +  stub_ss.add(files('error-printf.c'))
>
> So now included twice, not a big deal.
>

we can fix this only with more if
split `if have_block or have_user` into 2 blocks
should I do this?


>
> > +endif
> > +
> >   if have_block or have_user
> >     stub_ss.add(files('qtest.c'))
> >     stub_ss.add(files('vm-stop.c'))
>
>        # more symbols provided by the monitor
>        stub_ss.add(files('error-printf.c'))
>    endif
>
> Tested-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>
> With updated description:
> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>
>