[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 16/16] meson: leave unnecessary modules out of the build
From: |
Paolo Bonzini |
Subject: |
[PULL 16/16] meson: leave unnecessary modules out of the build |
Date: |
Tue, 9 May 2023 11:04:53 +0200 |
meson.build files choose whether to build modules based on foo.found()
expressions. If a feature is enabled (e.g. --enable-gtk), these expressions
are true even if the code is not used by any emulator, and this results
in an unexpected difference between modular and non-modular builds.
For non-modular builds, the files are not included in any binary, and
therefore the source files are never processed. For modular builds,
however, all .so files are unconditionally built by default, and therefore
a normal "make" tries to build them. However, the corresponding trace-*.h
files are absent due to this conditional:
if have_system
trace_events_subdirs += [
...
'ui',
...
]
endif
which was added to avoid wasting time running tracetool on unused trace-events
files. This causes a compilation failure; fix it by skipping module builds
entirely if (depending on the module directory) have_block or have_system
are false.
Reported-by: Michael Tokarev <mjt@tls.msk.ru>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
meson.build | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/meson.build b/meson.build
index 229eb585f798..27782f8f52e1 100644
--- a/meson.build
+++ b/meson.build
@@ -3217,6 +3217,10 @@ modinfo_files = []
block_mods = []
softmmu_mods = []
foreach d, list : modules
+ if not (d == 'block' ? have_block : have_system)
+ continue
+ endif
+
foreach m, module_ss : list
if enable_modules and targetos != 'windows'
module_ss = module_ss.apply(config_all, strict: false)
--
2.40.1
- [PULL 04/16] call_rcu: stop using mb_set/mb_read, (continued)
- [PULL 04/16] call_rcu: stop using mb_set/mb_read, Paolo Bonzini, 2023/05/09
- [PULL 07/16] include/qemu/osdep.h: Bump _WIN32_WINNT to the Windows 8 API, Paolo Bonzini, 2023/05/09
- [PULL 05/16] tb-maint: do not use mb_read/mb_set, Paolo Bonzini, 2023/05/09
- [PULL 09/16] target/i386: Add new EPYC CPU versions with updated cache_info, Paolo Bonzini, 2023/05/09
- [PULL 06/16] MAINTAINERS: add stanza for Kconfig files, Paolo Bonzini, 2023/05/09
- [PULL 08/16] target/i386: allow versioned CPUs to specify new cache_info, Paolo Bonzini, 2023/05/09
- [PULL 12/16] target/i386: Add missing feature bits in EPYC-Milan model, Paolo Bonzini, 2023/05/09
- [PULL 11/16] target/i386: Add feature bits for CPUID_Fn80000021_EAX, Paolo Bonzini, 2023/05/09
- [PULL 13/16] target/i386: Add VNMI and automatic IBRS feature bits, Paolo Bonzini, 2023/05/09
- [PULL 10/16] target/i386: Add a couple of feature bits in 8000_0008_EBX, Paolo Bonzini, 2023/05/09
- [PULL 16/16] meson: leave unnecessary modules out of the build,
Paolo Bonzini <=
- [PULL 14/16] target/i386: Add EPYC-Genoa model to support Zen 4 processor series, Paolo Bonzini, 2023/05/09
- [PULL 15/16] docs: clarify --without-default-devices, Paolo Bonzini, 2023/05/09
- Re: [PULL 00/16] Misc patches for 2023-05-09, Richard Henderson, 2023/05/10