diff mbox series

meson: add 'qemuutil' dependency for block.c

Message ID 20240814100052.263060-1-f.ebner@proxmox.com
State New
Headers show
Series meson: add 'qemuutil' dependency for block.c | expand

Commit Message

Fiona Ebner Aug. 14, 2024, 10 a.m. UTC
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(-)

Comments

Thomas Huth Aug. 15, 2024, 3:12 p.m. UTC | #1
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.
Daniel P. Berrangé Aug. 15, 2024, 3:58 p.m. UTC | #2
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
Fiona Ebner Sept. 4, 2024, 8:27 a.m. UTC | #3
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
diff mbox series

Patch

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