[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 17/63] stubs: include stubs only if needed
|
From: |
Paolo Bonzini |
|
Subject: |
[PULL 17/63] stubs: include stubs only if needed |
|
Date: |
Tue, 23 Apr 2024 17:09:05 +0200 |
Currently it is not documented anywhere why some functions need to
be stubbed.
Group the files in stubs/meson.build according to who needs them, both
to reduce the size of the compilation and to clarify the use of stubs.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-ID: <20240408155330.522792-18-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
stubs/{monitor.c => monitor-internal.c} | 0
stubs/meson.build | 122 +++++++++++++++---------
2 files changed, 75 insertions(+), 47 deletions(-)
rename stubs/{monitor.c => monitor-internal.c} (100%)
diff --git a/stubs/monitor.c b/stubs/monitor-internal.c
similarity index 100%
rename from stubs/monitor.c
rename to stubs/monitor-internal.c
diff --git a/stubs/meson.build b/stubs/meson.build
index 4a524f5816b..8ee1fd57530 100644
--- a/stubs/meson.build
+++ b/stubs/meson.build
@@ -1,58 +1,86 @@
-stub_ss.add(files('bdrv-next-monitor-owned.c'))
-stub_ss.add(files('blk-commit-all.c'))
-stub_ss.add(files('blk-exp-close-all.c'))
-stub_ss.add(files('blockdev-close-all-bdrv-states.c'))
-stub_ss.add(files('change-state-handler.c'))
-stub_ss.add(files('cmos.c'))
+# If possible, add new files to other directories, by using "if_false".
+# If you need them here, try to add them under one of the if statements
+# below, so that it is clear who needs the stubbed functionality.
+
stub_ss.add(files('cpu-get-clock.c'))
-stub_ss.add(files('cpus-get-virtual-clock.c'))
-stub_ss.add(files('qemu-timer-notify-cb.c'))
-stub_ss.add(files('icount.c'))
-stub_ss.add(files('dump.c'))
-stub_ss.add(files('error-printf.c'))
stub_ss.add(files('fdset.c'))
-stub_ss.add(files('gdbstub.c'))
-stub_ss.add(files('get-vm-name.c'))
-stub_ss.add(files('graph-lock.c'))
-stub_ss.add(files('hotplug-stubs.c'))
-if linux_io_uring.found()
- stub_ss.add(files('io_uring.c'))
-endif
stub_ss.add(files('iothread-lock.c'))
-if have_block
- stub_ss.add(files('iothread-lock-block.c'))
-endif
stub_ss.add(files('is-daemonized.c'))
-if libaio.found()
- stub_ss.add(files('linux-aio.c'))
-endif
-stub_ss.add(files('migr-blocker.c'))
-stub_ss.add(files('monitor.c'))
stub_ss.add(files('monitor-core.c'))
-stub_ss.add(files('physmem.c'))
-stub_ss.add(files('qemu-timer-notify-cb.c'))
-stub_ss.add(files('qmp-command-available.c'))
-stub_ss.add(files('qmp-quit.c'))
-stub_ss.add(files('qtest.c'))
-stub_ss.add(files('ram-block.c'))
-stub_ss.add(files('replay.c'))
stub_ss.add(files('replay-mode.c'))
-stub_ss.add(files('runstate-check.c'))
-stub_ss.add(files('sysbus.c'))
-stub_ss.add(files('target-get-monitor-def.c'))
-stub_ss.add(files('target-monitor-defs.c'))
stub_ss.add(files('trace-control.c'))
-stub_ss.add(files('uuid.c'))
-stub_ss.add(files('vmstate.c'))
-stub_ss.add(files('vm-stop.c'))
-stub_ss.add(files('win32-kbd-hook.c'))
-stub_ss.add(files('cpu-synchronize-state.c'))
-if have_block or have_ga
+
+if have_block
+ stub_ss.add(files('bdrv-next-monitor-owned.c'))
+ stub_ss.add(files('blk-commit-all.c'))
+ stub_ss.add(files('blk-exp-close-all.c'))
+ stub_ss.add(files('blockdev-close-all-bdrv-states.c'))
+ stub_ss.add(files('change-state-handler.c'))
+ stub_ss.add(files('get-vm-name.c'))
+ stub_ss.add(files('iothread-lock-block.c'))
+ 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_system
- stub_ss.add(files('fw_cfg.c'))
- stub_ss.add(files('xen-hw-stub.c'))
-else
+
+if have_block or have_ga
+ # 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'))
+ stub_ss.add(files('graph-lock.c'))
+ if linux_io_uring.found()
+ stub_ss.add(files('io_uring.c'))
+ endif
+ if libaio.found()
+ stub_ss.add(files('linux-aio.c'))
+ endif
+ stub_ss.add(files('qemu-timer-notify-cb.c'))
+
+ # stubs for monitor
+ stub_ss.add(files('monitor-internal.c'))
+ stub_ss.add(files('qmp-command-available.c'))
+ stub_ss.add(files('qmp-quit.c'))
+endif
+
+if have_block or have_user
+ stub_ss.add(files('qtest.c'))
+ stub_ss.add(files('vm-stop.c'))
+ stub_ss.add(files('vmstate.c'))
+
+ # more symbols provided by the monitor
+ stub_ss.add(files('error-printf.c'))
+endif
+
+if have_user
+ # Symbols that are used by hw/core.
+ stub_ss.add(files('cpu-synchronize-state.c'))
stub_ss.add(files('qdev.c'))
endif
+
+if have_system
+ # Symbols that are only needed in some configurations. Try not
+ # adding more of these. If the symbol is used in specific_ss,
+ # in particular, consider defining a preprocessor macro via
+ # Kconfig or configs/targets/.
+ stub_ss.add(files('dump.c'))
+ stub_ss.add(files('cmos.c'))
+ stub_ss.add(files('fw_cfg.c'))
+ stub_ss.add(files('target-get-monitor-def.c'))
+ stub_ss.add(files('target-monitor-defs.c'))
+ stub_ss.add(files('win32-kbd-hook.c'))
+ stub_ss.add(files('xen-hw-stub.c'))
+endif
+
+if have_system or have_user
+ stub_ss.add(files('gdbstub.c'))
+
+ # Also included in have_system for --disable-tcg builds
+ stub_ss.add(files('replay.c'))
+
+ # Also included in have_system for tests/unit/test-qdev-global-props
+ stub_ss.add(files('hotplug-stubs.c'))
+ stub_ss.add(files('sysbus.c'))
+endif
--
2.44.0
- [PULL 07/63] hw/core: Move system emulation files to system_ss, (continued)
- [PULL 07/63] hw/core: Move system emulation files to system_ss, Paolo Bonzini, 2024/04/23
- [PULL 08/63] hw: Include minimal source set in user emulation build, Paolo Bonzini, 2024/04/23
- [PULL 12/63] semihosting: move stubs out of stubs/, Paolo Bonzini, 2024/04/23
- [PULL 13/63] ramfb: move stubs out of stubs/, Paolo Bonzini, 2024/04/23
- [PULL 14/63] memory-device: move stubs out of stubs/, Paolo Bonzini, 2024/04/23
- [PULL 22/63] hw: Add compat machines for 9.1, Paolo Bonzini, 2024/04/23
- [PULL 27/63] target/i386: Add new CPU model SierraForest, Paolo Bonzini, 2024/04/23
- [PULL 33/63] i386/sev: Switch to use confidential_guest_kvm_init(), Paolo Bonzini, 2024/04/23
- [PULL 32/63] confidential guest support: Add kvm_init() and kvm_reset() in class, Paolo Bonzini, 2024/04/23
- [PULL 19/63] vga: optimize computation of dirty memory region, Paolo Bonzini, 2024/04/23
- [PULL 17/63] stubs: include stubs only if needed,
Paolo Bonzini <=
- [PULL 21/63] kvm: use configs/ definition to conditionalize debug support, Paolo Bonzini, 2024/04/23
- [PULL 34/63] ppc/pef: switch to use confidential_guest_kvm_init/reset(), Paolo Bonzini, 2024/04/23
- [PULL 10/63] hw/usb: move stubs out of stubs/, Paolo Bonzini, 2024/04/23
- [PULL 11/63] hw/virtio: move stubs out of stubs/, Paolo Bonzini, 2024/04/23
- [PULL 29/63] pci-host/q35: Move PAM initialization above SMRAM initialization, Paolo Bonzini, 2024/04/23
- [PULL 36/63] scripts/update-linux-headers: Add setup_data.h to import list, Paolo Bonzini, 2024/04/23
- [PULL 56/63] kvm/tdx: Don't complain when converting vMMIO region to shared, Paolo Bonzini, 2024/04/23
- [PULL 58/63] target/i386/host-cpu: Consolidate the use of warn_report_once(), Paolo Bonzini, 2024/04/23
- [PULL 41/63] KVM: remove kvm_arch_cpu_check_are_resettable, Paolo Bonzini, 2024/04/23
- [PULL 37/63] scripts/update-linux-headers: Add bits.h to file imports, Paolo Bonzini, 2024/04/23