Re: Artificially target-dependend compiles

2021-11-08 Thread Thomas Huth
On 08/11/2021 17.23, Paolo Bonzini wrote: On 11/8/21 16:38, Thomas Huth wrote: Hmm, we used to have a config-all-devices.mak file in the past (see commit a98006bc798169e which removed it), maybe we could re-introduce something similar again, but producing a config-all.h header file instead? S

Re: Artificially target-dependend compiles

2021-11-08 Thread Paolo Bonzini
On 11/8/21 16:38, Thomas Huth wrote: Hmm, we used to have a config-all-devices.mak file in the past (see commit a98006bc798169e which removed it), maybe we could re-introduce something similar again, but producing a config-all.h header file instead? So that this header file contains switches

Re: Artificially target-dependend compiles

2021-11-08 Thread Thomas Huth
On 08/11/2021 09.09, Markus Armbruster wrote: Markus Armbruster writes: [...] I just ran into an instance that may be clearer. The "rocker" device is target-independent (hw/net/meson.build adds it to softmmu_ss), but linked only for selected targets (hw/net/Kconfig has depends on PCI && MSI_

Re: Artificially target-dependend compiles

2021-11-08 Thread Paolo Bonzini
On 11/8/21 09:09, Markus Armbruster wrote: Simply not poisoning the CONFIG_FOO when the FOO code is actually target-independent avoids the target-dependency, but also messes up introspection: new the FOO stuff is present for all targets when*any* of them has it. This cure feels worse than the d

Re: Artificially target-dependend compiles

2021-11-08 Thread Markus Armbruster
Markus Armbruster writes: [...] > I just ran into an instance that may be clearer. > > The "rocker" device is target-independent (hw/net/meson.build adds it to > softmmu_ss), but linked only for selected targets (hw/net/Kconfig has > depends on PCI && MSI_NONBROKEN). > > This makes our build mac

Re: Artificially target-dependend compiles

2021-11-06 Thread Markus Armbruster
Paolo Bonzini writes: > On 11/5/21 14:45, Markus Armbruster wrote: >> Moving these definitions to machine-target.json moves the generated C >> from qapi/qapi-*-machine.[ch] to qapi/qapi-*-machine-target.[ch], where >> CONFIG_ACPI_VMGENID is okay. It also makes qmp_query_vm_generation_id() >> tar

Re: Artificially target-dependend compiles

2021-11-05 Thread Paolo Bonzini
On 11/5/21 14:45, Markus Armbruster wrote: Moving these definitions to machine-target.json moves the generated C from qapi/qapi-*-machine.[ch] to qapi/qapi-*-machine-target.[ch], where CONFIG_ACPI_VMGENID is okay. It also makes qmp_query_vm_generation_id() target-dependent: it needs qapi/qapi-co

Artificially target-dependend compiles

2021-11-05 Thread Markus Armbruster
Some .c need to be compiled per target. build-system.rst calls these target-dependent. Consider hw/acpi/vmgenid.c. hw/acpi/meson.build has acpi_ss.add(when: 'CONFIG_ACPI_VMGENID', if_true: files('vmgenid.c')) and softmmu_ss.add_all(when: 'CONFIG_ACPI', if_true: acpi_ss) softmmu_ss is