On Mon, Jul 07, 2025 at 07:19:54PM +0200, Philippe Mathieu-Daudé wrote: > Rather than re-spinning the whole "single-binary: Make hw/arm/ > common" series, restrict to the API additions, but include > examples of their usefulness (hundreds of virtio objects > removed from default Linux build). > Time passed since I context-switched out of this work so I'm > not sure the DEFINE_MACHINE_WITH_INTERFACES() implementation > is in the form Zoltan asked.
I think I'd prefer to defer cleanups to post 10.1 - already too much on my plate as I was out sick. Unless there's a reason I'm missing to rush this in? Is there a feature we want in 10.1 that depends on it? > Philippe Mathieu-Daudé (14): > target/qmp: Use target_cpu_type() > qemu/target-info: Factor target_arch() out > qemu/target-info: Add %target_arch field to TargetInfo > qemu/target-info: Introduce target_base_arch() > qemu/target-info: Add target_endian_mode() > qemu: Convert target_words_bigendian() to TargetInfo API > gdbstub/helpers: Replace TARGET_BIG_ENDIAN -> target_big_endian() > qemu: Declare all load/store helpert in 'qemu/bswap.h' > hw/virtio: Build various files once > hw/core/null-machine: Define machine as generic QOM type > hw/arm: Register TYPE_TARGET_ARM/AARCH64_MACHINE QOM interfaces > hw/core: Allow ARM/Aarch64 binaries to use the 'none' machine > hw/boards: Introduce DEFINE_MACHINE_WITH_INTERFACES() macro > hw/arm: Add DEFINE_MACHINE_[ARM_]AARCH64() macros > > meson.build | 1 + > include/exec/tswap.h | 83 +-------------------------- > include/gdbstub/helpers.h | 15 ++--- > include/hw/arm/machines-qom.h | 31 ++++++++++ > include/hw/boards.h | 6 +- > include/qemu/bswap.h | 73 +++++++++++++++++++++++ > include/qemu/target-info-impl.h | 8 ++- > include/qemu/target-info-qapi.h | 36 ++++++++++++ > include/qemu/target-info.h | 10 +++- > include/system/memory.h | 1 - > include/user/abitypes.h | 1 - > target/ppc/mmu-hash64.h | 2 - > cpu-target.c | 7 --- > hw/acpi/bios-linker-loader.c | 2 - > hw/arm/allwinner-r40.c | 1 - > hw/arm/boot.c | 2 + > hw/arm/npcm7xx.c | 2 +- > hw/block/hd-geometry.c | 1 - > hw/char/riscv_htif.c | 1 - > hw/core/cpu-system.c | 2 +- > hw/core/machine-qmp-cmds.c | 8 +-- > hw/core/null-machine.c | 20 ++++++- > hw/cxl/cxl-events.c | 2 - > hw/display/artist.c | 1 + > hw/display/ati.c | 1 + > hw/display/vga.c | 2 +- > hw/net/can/ctucan_core.c | 1 - > hw/net/lan9118.c | 1 + > hw/net/rtl8139.c | 1 + > hw/net/vmxnet3.c | 1 - > hw/pci-host/gt64120.c | 1 + > hw/pci-host/pnv_phb3.c | 1 + > hw/pci-host/pnv_phb4.c | 1 + > hw/pci-host/ppce500.c | 1 - > hw/pci-host/sh_pci.c | 1 - > hw/s390x/s390-pci-inst.c | 1 + > hw/sensor/lsm303dlhc_mag.c | 1 - > hw/smbios/smbios.c | 1 + > hw/vfio/migration-multifd.c | 1 - > hw/virtio/virtio-config-io.c | 1 - > hw/virtio/virtio-pci.c | 1 + > hw/virtio/virtio.c | 2 +- > hw/vmapple/virtio-blk.c | 1 - > system/memory.c | 1 + > system/qtest.c | 1 + > target-info-qom.c | 24 ++++++++ > target-info-stub.c | 3 + > target-info.c | 33 +++++++++++ > target/arm/arm-qmp-cmds.c | 3 +- > target/arm/cpu.c | 1 - > target/arm/machine.c | 12 ++++ > target/i386/tcg/system/excp_helper.c | 1 - > target/i386/xsave_helper.c | 1 - > target/loongarch/loongarch-qmp-cmds.c | 3 +- > target/mips/system/mips-qmp-cmds.c | 3 +- > target/riscv/vector_helper.c | 1 - > tests/tcg/plugins/mem.c | 1 + > hw/block/meson.build | 6 +- > hw/virtio/meson.build | 20 ++++--- > 59 files changed, 302 insertions(+), 149 deletions(-) > create mode 100644 include/hw/arm/machines-qom.h > create mode 100644 include/qemu/target-info-qapi.h > create mode 100644 target-info-qom.c > > -- > 2.49.0