[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 02/16] meson: move block.syms dependency out of libblock
From: |
Paolo Bonzini |
Subject: |
[PULL 02/16] meson: move block.syms dependency out of libblock |
Date: |
Thu, 4 Jul 2024 11:57:52 +0200 |
In order to define libqemuutil symbols that are requested by block modules,
QEMU currently uses a combination of the "link_depends" argument of
libraries (which is propagated into dependencies, but not available in
dependencies) and the "link_args" argument of declare_dependency()
(which _is_ available in static_library, but probably not used for
historical reasons only).
Unfortunately the link_depends will not be propagated into the
"block" dependency if it is defined using
declare_dependency(objects: ...); and it is not possible to
add it directly to the dependency because the keyword argument
simply is not available.
The only solution, in order to switch to defining the dependency
without using "link_whole" (which has problems of its own, see
https://github.com/mesonbuild/meson/pull/8151#issuecomment-754796420),
is unfortunately to add the link_args and link_depends to the
executables directly; fortunately there is just four of them.
It is possible (and I will look into it) to add "link_depends"
to declare_dependency(), but it probably will be a while before
QEMU can use it.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 5 +++--
storage-daemon/meson.build | 1 +
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 8909f8c87d9..df9a64302f0 100644
--- a/meson.build
+++ b/meson.build
@@ -3759,12 +3759,10 @@ system_ss.add(migration)
block_ss = block_ss.apply({})
libblock = static_library('block', block_ss.sources() + genh,
dependencies: block_ss.dependencies(),
- link_depends: block_syms,
name_suffix: 'fa',
build_by_default: false)
block = declare_dependency(link_whole: [libblock],
- link_args: '@block.syms',
dependencies: [crypto, io])
blockdev_ss = blockdev_ss.apply({})
@@ -4033,10 +4031,13 @@ endif
if have_tools
qemu_img = executable('qemu-img', [files('qemu-img.c'), hxdep],
+ link_args: '@block.syms', link_depends: block_syms,
dependencies: [authz, block, crypto, io, qom, qemuutil], install:
true)
qemu_io = executable('qemu-io', files('qemu-io.c'),
+ link_args: '@block.syms', link_depends: block_syms,
dependencies: [block, qemuutil], install: true)
qemu_nbd = executable('qemu-nbd', files('qemu-nbd.c'),
+ link_args: '@block.syms', link_depends: block_syms,
dependencies: [blockdev, qemuutil, gnutls, selinux],
install: true)
diff --git a/storage-daemon/meson.build b/storage-daemon/meson.build
index 46267b63e72..fd5e32f4b28 100644
--- a/storage-daemon/meson.build
+++ b/storage-daemon/meson.build
@@ -8,6 +8,7 @@ if have_tools
qsd_ss = qsd_ss.apply({})
qsd = executable('qemu-storage-daemon',
qsd_ss.sources(),
+ link_args: '@block.syms', link_depends: block_syms,
dependencies: qsd_ss.dependencies(),
install: true)
endif
--
2.45.2
- [PULL 00/16] meson, i386 changes for 2024-07-04, Paolo Bonzini, 2024/07/04
- [PULL 01/16] meson: move shared_module() calls where modules are already walked, Paolo Bonzini, 2024/07/04
- [PULL 02/16] meson: move block.syms dependency out of libblock,
Paolo Bonzini <=
- [PULL 03/16] meson: merge plugin_ldflags into emulator_link_args, Paolo Bonzini, 2024/07/04
- [PULL 04/16] meson: Pass objects and dependencies to declare_dependency(), Paolo Bonzini, 2024/07/04
- [PULL 05/16] Revert "meson: Propagate gnutls dependency", Paolo Bonzini, 2024/07/04
- [PULL 06/16] meson: Drop the .fa library suffix, Paolo Bonzini, 2024/07/04
- [PULL 07/16] target/i386: pass X86CPU to x86_cpu_get_supported_feature_word, Paolo Bonzini, 2024/07/04
- [PULL 08/16] target/i386: drop AMD machine check bits from Intel CPUID, Paolo Bonzini, 2024/07/04
- [PULL 11/16] i386/sev: Fix error message in sev_get_capabilities(), Paolo Bonzini, 2024/07/04
- [PULL 10/16] target/i386: do not include undefined bits in the AMD topoext leaf, Paolo Bonzini, 2024/07/04
- [PULL 13/16] target/i386: add avx-vnni-int16 feature, Paolo Bonzini, 2024/07/04
- [PULL 09/16] target/i386: SEV: fix formatting of CPUID mismatch message, Paolo Bonzini, 2024/07/04