[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 43/46] meson: remove CONFIG_ALL
From: |
Paolo Bonzini |
Subject: |
[PULL 43/46] meson: remove CONFIG_ALL |
Date: |
Sun, 31 Dec 2023 09:44:59 +0100 |
CONFIG_ALL is tricky to use and was ported over to Meson from the
recursive processing of Makefile variables. Meson sourcesets
however have all_sources() and all_dependencies() methods that
remove the need for it.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
docs/devel/build-system.rst | 15 ---------------
fsdev/meson.build | 1 -
hw/acpi/meson.build | 5 -----
hw/cxl/meson.build | 2 --
hw/display/meson.build | 1 -
hw/mem/meson.build | 1 -
hw/net/meson.build | 2 --
hw/pci-bridge/meson.build | 2 --
hw/pci/meson.build | 1 -
hw/remote/meson.build | 1 -
hw/smbios/meson.build | 5 -----
hw/virtio/meson.build | 2 --
meson.build | 32 +++++++-------------------------
net/meson.build | 2 --
14 files changed, 7 insertions(+), 65 deletions(-)
diff --git a/docs/devel/build-system.rst b/docs/devel/build-system.rst
index 43d6005881e..09caf2f8e19 100644
--- a/docs/devel/build-system.rst
+++ b/docs/devel/build-system.rst
@@ -256,21 +256,6 @@ Target-independent emulator sourcesets:
``system_ss`` only in system emulators, ``user_ss`` only in user-mode
emulators.
- Target-independent sourcesets must exercise particular care when using
- ``if_false`` rules. The ``if_false`` rule will be used correctly when
linking
- emulator binaries; however, when *compiling* target-independent files
- into .o files, Meson may need to pick *both* the ``if_true`` and
- ``if_false`` sides to cater for targets that want either side. To
- achieve that, you can add a special rule using the ``CONFIG_ALL``
- symbol::
-
- # Some targets have CONFIG_ACPI, some don't, so this is not enough
- system_ss.add(when: 'CONFIG_ACPI', if_true: files('acpi.c'),
- if_false: files('acpi-stub.c'))
-
- # This is required as well:
- system_ss.add(when: 'CONFIG_ALL', if_true: files('acpi-stub.c'))
-
Target-dependent emulator sourcesets:
In the target-dependent set lives CPU emulation, some device emulation and
much glue code. This sometimes also has to be compiled multiple times,
diff --git a/fsdev/meson.build b/fsdev/meson.build
index c76347615df..db67530d7f2 100644
--- a/fsdev/meson.build
+++ b/fsdev/meson.build
@@ -1,6 +1,5 @@
fsdev_ss = ss.source_set()
fsdev_ss.add(files('qemu-fsdev-opts.c', 'qemu-fsdev-throttle.c'))
-fsdev_ss.add(when: 'CONFIG_ALL', if_true: files('qemu-fsdev-dummy.c'))
fsdev_ss.add(when: ['CONFIG_FSDEV_9P'], if_true: files(
'9p-iov-marshal.c',
'9p-marshal.c',
diff --git a/hw/acpi/meson.build b/hw/acpi/meson.build
index fc1b952379a..5441c9b1e4c 100644
--- a/hw/acpi/meson.build
+++ b/hw/acpi/meson.build
@@ -33,9 +33,4 @@ endif
system_ss.add(when: 'CONFIG_ACPI', if_false: files('acpi-stub.c',
'aml-build-stub.c', 'ghes-stub.c', 'acpi_interface.c'))
system_ss.add(when: 'CONFIG_ACPI_PCI_BRIDGE', if_false:
files('pci-bridge-stub.c'))
system_ss.add_all(when: 'CONFIG_ACPI', if_true: acpi_ss)
-system_ss.add(when: 'CONFIG_ALL', if_true: files('acpi-stub.c',
'aml-build-stub.c',
- 'acpi-x86-stub.c',
'ipmi-stub.c', 'ghes-stub.c',
- 'acpi-mem-hotplug-stub.c',
'acpi-cpu-hotplug-stub.c',
- 'acpi-pci-hotplug-stub.c',
'acpi-nvdimm-stub.c',
- 'cxl-stub.c',
'pci-bridge-stub.c'))
system_ss.add(files('acpi-qmp-cmds.c'))
diff --git a/hw/cxl/meson.build b/hw/cxl/meson.build
index ea0aebf6e3c..3e375f61a98 100644
--- a/hw/cxl/meson.build
+++ b/hw/cxl/meson.build
@@ -11,5 +11,3 @@ system_ss.add(when: 'CONFIG_CXL',
if_false: files(
'cxl-host-stubs.c',
))
-
-system_ss.add(when: 'CONFIG_ALL', if_true: files('cxl-host-stubs.c'))
diff --git a/hw/display/meson.build b/hw/display/meson.build
index 02b0044c9ec..ac0159c516e 100644
--- a/hw/display/meson.build
+++ b/hw/display/meson.build
@@ -143,5 +143,4 @@ endif
system_ss.add(when: 'CONFIG_OMAP', if_true: files('omap_lcdc.c'))
-system_ss.add(when: 'CONFIG_ALL', if_true: files('acpi-vga-stub.c'))
modules += { 'hw-display': hw_display_modules }
diff --git a/hw/mem/meson.build b/hw/mem/meson.build
index ec26ef55443..faee1fe9360 100644
--- a/hw/mem/meson.build
+++ b/hw/mem/meson.build
@@ -5,7 +5,6 @@ mem_ss.add(when: 'CONFIG_NPCM7XX', if_true:
files('npcm7xx_mc.c'))
mem_ss.add(when: 'CONFIG_NVDIMM', if_true: files('nvdimm.c'))
mem_ss.add(when: 'CONFIG_CXL_MEM_DEVICE', if_true: files('cxl_type3.c'))
system_ss.add(when: 'CONFIG_CXL_MEM_DEVICE', if_false:
files('cxl_type3_stubs.c'))
-system_ss.add(when: 'CONFIG_ALL', if_true: files('cxl_type3_stubs.c'))
system_ss.add_all(when: 'CONFIG_MEM_DEVICE', if_true: mem_ss)
diff --git a/hw/net/meson.build b/hw/net/meson.build
index f64651c467e..9afceb06191 100644
--- a/hw/net/meson.build
+++ b/hw/net/meson.build
@@ -50,7 +50,6 @@ specific_ss.add(when: 'CONFIG_VIRTIO_NET', if_true:
files('virtio-net.c'))
if have_vhost_net
system_ss.add(when: 'CONFIG_VIRTIO_NET', if_true: files('vhost_net.c'),
if_false: files('vhost_net-stub.c'))
- system_ss.add(when: 'CONFIG_ALL', if_true: files('vhost_net-stub.c'))
else
system_ss.add(files('vhost_net-stub.c'))
endif
@@ -69,7 +68,6 @@ system_ss.add(when: 'CONFIG_ROCKER', if_true: files(
'rocker/rocker_of_dpa.c',
'rocker/rocker_world.c',
), if_false: files('rocker/qmp-norocker.c'))
-system_ss.add(when: 'CONFIG_ALL', if_true: files('rocker/qmp-norocker.c'))
system_ss.add(files('rocker/rocker-hmp-cmds.c'))
subdir('can')
diff --git a/hw/pci-bridge/meson.build b/hw/pci-bridge/meson.build
index 6d5ad9f37b2..f2a60434dda 100644
--- a/hw/pci-bridge/meson.build
+++ b/hw/pci-bridge/meson.build
@@ -13,5 +13,3 @@ pci_ss.add(when: 'CONFIG_CXL', if_true:
files('cxl_root_port.c', 'cxl_upstream.c
pci_ss.add(when: 'CONFIG_SIMBA', if_true: files('simba.c'))
system_ss.add_all(when: 'CONFIG_PCI', if_true: pci_ss)
-
-system_ss.add(when: 'CONFIG_ALL', if_true:
files('pci_expander_bridge_stubs.c'))
diff --git a/hw/pci/meson.build b/hw/pci/meson.build
index b1855452f5b..b9c34b2acfe 100644
--- a/hw/pci/meson.build
+++ b/hw/pci/meson.build
@@ -20,4 +20,3 @@ system_ss.add(when: 'CONFIG_PCI_EXPRESS', if_true:
files('pcie_port.c', 'pcie_ho
system_ss.add_all(when: 'CONFIG_PCI', if_true: pci_ss)
system_ss.add(when: 'CONFIG_PCI', if_false: files('pci-stub.c'))
-system_ss.add(when: 'CONFIG_ALL', if_true: files('pci-stub.c'))
diff --git a/hw/remote/meson.build b/hw/remote/meson.build
index a3aa29aaf17..41eb4971d98 100644
--- a/hw/remote/meson.build
+++ b/hw/remote/meson.build
@@ -11,7 +11,6 @@ remote_ss.add(when: 'CONFIG_MULTIPROCESS', if_true:
files('iommu.c'))
remote_ss.add(when: 'CONFIG_VFIO_USER_SERVER', if_true: libvfio_user_dep)
remote_ss.add(when: 'CONFIG_VFIO_USER_SERVER', if_true:
files('vfio-user-obj.c'),
if_false: files('vfio-user-obj-stub.c'))
-remote_ss.add(when: 'CONFIG_ALL', if_true: files('vfio-user-obj-stub.c'))
specific_ss.add(when: 'CONFIG_MULTIPROCESS', if_true: files('memory.c'))
specific_ss.add(when: 'CONFIG_MULTIPROCESS', if_true:
files('proxy-memory-listener.c'))
diff --git a/hw/smbios/meson.build b/hw/smbios/meson.build
index 6eeae4b35c2..70469674621 100644
--- a/hw/smbios/meson.build
+++ b/hw/smbios/meson.build
@@ -6,8 +6,3 @@ smbios_ss.add(when: 'CONFIG_IPMI',
system_ss.add_all(when: 'CONFIG_SMBIOS', if_true: smbios_ss)
system_ss.add(when: 'CONFIG_SMBIOS', if_false: files('smbios-stub.c'))
-
-system_ss.add(when: 'CONFIG_ALL', if_true: files(
- 'smbios-stub.c',
- 'smbios_type_38-stub.c',
-))
diff --git a/hw/virtio/meson.build b/hw/virtio/meson.build
index c0055a78326..c8c1001451d 100644
--- a/hw/virtio/meson.build
+++ b/hw/virtio/meson.build
@@ -74,8 +74,6 @@ specific_virtio_ss.add_all(when: 'CONFIG_VIRTIO_PCI',
if_true: virtio_pci_ss)
system_ss.add_all(when: 'CONFIG_VIRTIO', if_true: system_virtio_ss)
system_ss.add(when: 'CONFIG_VIRTIO', if_false: files('vhost-stub.c'))
system_ss.add(when: 'CONFIG_VIRTIO', if_false: files('virtio-stub.c'))
-system_ss.add(when: 'CONFIG_ALL', if_true: files('vhost-stub.c'))
-system_ss.add(when: 'CONFIG_ALL', if_true: files('virtio-stub.c'))
system_ss.add(files('virtio-hmp-cmds.c'))
specific_ss.add_all(when: 'CONFIG_VIRTIO', if_true: specific_virtio_ss)
diff --git a/meson.build b/meson.build
index 7aa06dc7c1b..6e5a8a5b48e 100644
--- a/meson.build
+++ b/meson.build
@@ -2888,7 +2888,6 @@ minikconf = find_program('scripts/minikconf.py')
config_all = {}
config_all_devices = {}
-config_all_disas = {}
config_devices_mak_list = []
config_devices_h = {}
config_target_h = {}
@@ -3014,7 +3013,6 @@ foreach target : target_dirs
if host_arch.startswith(k) or
config_target['TARGET_BASE_ARCH'].startswith(k)
foreach sym: v
config_target += { sym: 'y' }
- config_all_disas += { sym: 'y' }
endforeach
endif
endforeach
@@ -3073,24 +3071,6 @@ foreach target : target_dirs
endforeach
target_dirs = actual_target_dirs
-# This configuration is used to build files that are shared by
-# multiple binaries, and then extracted out of the "common"
-# static_library target.
-#
-# We do not use all_sources()/all_dependencies(), because it would
-# build literally all source files, including devices only used by
-# targets that are not built for this compilation. The CONFIG_ALL
-# pseudo symbol replaces it.
-
-config_all += config_all_devices
-config_all += config_all_disas
-config_all += {
- 'CONFIG_XEN': xen.found(),
- 'CONFIG_SYSTEM_ONLY': have_system,
- 'CONFIG_USER_ONLY': have_user,
- 'CONFIG_ALL': true,
-}
-
target_configs_h = []
foreach target: target_dirs
target_configs_h += config_target_h[target]
@@ -3556,7 +3536,7 @@ foreach d, list : modules
foreach m, module_ss : list
if enable_modules
- module_ss = module_ss.apply(config_all, strict: false)
+ module_ss = module_ss.apply(config_all_devices, strict: false)
sl = static_library(d + '-' + m, [genh, module_ss.sources()],
dependencies: [modulecommon,
module_ss.dependencies()], pic: true)
if d == 'block'
@@ -3751,13 +3731,15 @@ common_ss.add(qom, qemuutil)
common_ss.add_all(when: 'CONFIG_SYSTEM_ONLY', if_true: [system_ss])
common_ss.add_all(when: 'CONFIG_USER_ONLY', if_true: user_ss)
-common_all = common_ss.apply(config_all, strict: false)
+# Note that this library is never used directly (only through extract_objects)
+# and is not built by default; therefore, source files not used by the build
+# configuration will be in build.ninja, but are never built by default.
common_all = static_library('common',
build_by_default: false,
- sources: common_all.sources() + genh,
+ sources: common_ss.all_sources() + genh,
include_directories: common_user_inc,
implicit_include_directories: false,
- dependencies: common_all.dependencies(),
+ dependencies: common_ss.all_dependencies(),
name_suffix: 'fa')
feature_to_c = find_program('scripts/feature_to_c.py')
@@ -4230,7 +4212,7 @@ if have_system
if xen.found()
summary_info += {'xen ctrl version': xen.version()}
endif
- summary_info += {'Xen emulation': config_all.has_key('CONFIG_XEN_EMU')}
+ summary_info += {'Xen emulation':
config_all_devices.has_key('CONFIG_XEN_EMU')}
endif
summary_info += {'TCG support': config_all.has_key('CONFIG_TCG')}
if config_all.has_key('CONFIG_TCG')
diff --git a/net/meson.build b/net/meson.build
index ce99bd4447f..a53f18ad7b4 100644
--- a/net/meson.build
+++ b/net/meson.build
@@ -41,7 +41,6 @@ system_ss.add(when: libxdp, if_true: files('af-xdp.c'))
if have_vhost_net_user
system_ss.add(when: 'CONFIG_VIRTIO_NET', if_true: files('vhost-user.c'),
if_false: files('vhost-user-stub.c'))
- system_ss.add(when: 'CONFIG_ALL', if_true: files('vhost-user-stub.c'))
endif
if targetos == 'windows'
@@ -57,7 +56,6 @@ else
endif
if have_vhost_net_vdpa
system_ss.add(when: 'CONFIG_VIRTIO_NET', if_true: files('vhost-vdpa.c'),
if_false: files('vhost-vdpa-stub.c'))
- system_ss.add(when: 'CONFIG_ALL', if_true: files('vhost-vdpa-stub.c'))
endif
vmnet_files = files(
--
2.43.0
- [PULL 25/46] meson: fix type of "relocatable" option, (continued)
- [PULL 25/46] meson: fix type of "relocatable" option, Paolo Bonzini, 2023/12/31
- [PULL 31/46] meson: add more sections to main meson.build, Paolo Bonzini, 2023/12/31
- [PULL 32/46] meson: move program checks together, Paolo Bonzini, 2023/12/31
- [PULL 23/46] target/i386: the sgx_epc_get_section stub is reachable, Paolo Bonzini, 2023/12/31
- [PULL 24/46] esp: check for NULL result from scsi_device_find(), Paolo Bonzini, 2023/12/31
- [PULL 39/46] meson: always probe u2f and canokey if the option is enabled, Paolo Bonzini, 2023/12/31
- [PULL 33/46] meson: move option validation together, Paolo Bonzini, 2023/12/31
- [PULL 27/46] meson: use version_compare() to compare version, Paolo Bonzini, 2023/12/31
- [PULL 30/46] configure: unify again the case arms in probe_target_compiler, Paolo Bonzini, 2023/12/31
- [PULL 44/46] meson: rename config_all, Paolo Bonzini, 2023/12/31
- [PULL 43/46] meson: remove CONFIG_ALL,
Paolo Bonzini <=
- [PULL 45/46] configure, meson: rename targetos to host_os, Paolo Bonzini, 2023/12/31
- [PULL 26/46] meson: remove unused variable, Paolo Bonzini, 2023/12/31
- [PULL 37/46] meson: move config-host.h definitions together, Paolo Bonzini, 2023/12/31
- [PULL 40/46] meson: remove OS definitions from config_targetos, Paolo Bonzini, 2023/12/31
- [PULL 36/46] meson: move CFI detection code with other compiler flags, Paolo Bonzini, 2023/12/31
- [PULL 42/46] meson: remove config_targetos, Paolo Bonzini, 2023/12/31
- [PULL 41/46] meson: remove CONFIG_POSIX and CONFIG_WIN32 from config_targetos, Paolo Bonzini, 2023/12/31
- [PULL 35/46] meson: keep subprojects together, Paolo Bonzini, 2023/12/31
- [PULL 46/46] meson.build: report graphics backends separately, Paolo Bonzini, 2023/12/31