[PATCH] meson: add 'qemuutil' dependency for block.c

Fiona Ebner posted 1 patch 3 months, 1 week ago
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] meson: add 'qemuutil' dependency for block.c
Posted by Fiona Ebner 3 months, 1 week ago
The macro block_module_load() used by block.c is a wrapper around
module_load(), which is implemented in util/module.c.

Fixes linking for a future binary or downstream binary that does not
depend on 'qemuutil' directly, but does depend on 'block'.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 81ecd4bae7..efa0ac8d0b 100644
--- a/meson.build
+++ b/meson.build
@@ -3555,7 +3555,7 @@ if have_block
     'blockjob.c',
     'job.c',
     'qemu-io-cmds.c',
-  ))
+  ), qemuutil)
   if config_host_data.get('CONFIG_REPLICATION')
     block_ss.add(files('replication.c'))
   endif
-- 
2.39.2
Re: [PATCH] meson: add 'qemuutil' dependency for block.c
Posted by Daniel P. Berrangé 3 months, 1 week ago
On Wed, Aug 14, 2024 at 12:00:52PM +0200, Fiona Ebner wrote:
> The macro block_module_load() used by block.c is a wrapper around
> module_load(), which is implemented in util/module.c.
> 
> Fixes linking for a future binary or downstream binary that does not
> depend on 'qemuutil' directly, but does depend on 'block'.

Such a scenario is impossible surely, even in future. Every file in
QEMU pulls in osdep.h, and as a result effectively gets a dep on
on qemuutil, not to mention the block layer using countless APIs
present in qemuutil

> Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
> ---
>  meson.build | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meson.build b/meson.build
> index 81ecd4bae7..efa0ac8d0b 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -3555,7 +3555,7 @@ if have_block
>      'blockjob.c',
>      'job.c',
>      'qemu-io-cmds.c',
> -  ))
> +  ), qemuutil)
>    if config_host_data.get('CONFIG_REPLICATION')
>      block_ss.add(files('replication.c'))
>    endif
> -- 
> 2.39.2
> 
> 

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|
Re: [PATCH] meson: add 'qemuutil' dependency for block.c
Posted by Fiona Ebner 2 months, 2 weeks ago
Am 15.08.24 um 17:58 schrieb Daniel P. Berrangé:
> On Wed, Aug 14, 2024 at 12:00:52PM +0200, Fiona Ebner wrote:
>> The macro block_module_load() used by block.c is a wrapper around
>> module_load(), which is implemented in util/module.c.
>>
>> Fixes linking for a future binary or downstream binary that does not
>> depend on 'qemuutil' directly, but does depend on 'block'.
> 
> Such a scenario is impossible surely, even in future. Every file in
> QEMU pulls in osdep.h, and as a result effectively gets a dep on
> on qemuutil, not to mention the block layer using countless APIs
> present in qemuutil
> 

Yes, you are right. Sorry, I missed this dependency. The sources for
both of our affected downstream binaries do include "qemu/osdep.h" and
thus have a direct dependency on qemuutil. So my patch can be disregarded.

Build for the mentioned binaries broke after, IIRC, 414b180d42 ("meson:
Pass objects and dependencies to declare_dependency()"), because they
didn't explicitly specify the qemuutil dependency in meson. The error
message I got was about "module_load" used by the block layer.

Best Regards,
Fiona


Re: [PATCH] meson: add 'qemuutil' dependency for block.c
Posted by Thomas Huth 3 months, 1 week ago
On 14/08/2024 12.00, Fiona Ebner wrote:
> The macro block_module_load() used by block.c is a wrapper around
> module_load(), which is implemented in util/module.c.
> 
> Fixes linking for a future binary or downstream binary that does not
> depend on 'qemuutil' directly, but does depend on 'block'.
> 
> Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
> ---
>   meson.build | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/meson.build b/meson.build
> index 81ecd4bae7..efa0ac8d0b 100644
> --- a/meson.build
> +++ b/meson.build
> @@ -3555,7 +3555,7 @@ if have_block
>       'blockjob.c',
>       'job.c',
>       'qemu-io-cmds.c',
> -  ))
> +  ), qemuutil)
>     if config_host_data.get('CONFIG_REPLICATION')
>       block_ss.add(files('replication.c'))
>     endif

Reviewed-by: Thomas Huth <thuth@redhat.com>

... and CC:-ing the block maintainers, hoping that they can have a look, 
too, and finally pick up this patch.