On Wed, Oct 14, 2026 at 12:24:57PM +0200, Philippe Mathieu-Daudé wrote: > On 14/10/26 11:31, Yonggang Luo wrote: > > This usermode targets: > > aarch64_be > > armeb > > microblazeel > > mipsn32 > > mipsn32el > > ppc64le > > sparc32plus > > are not in machine.json > > > > This is a prepare for directly using TARGET_ARCH_VARIANT latter. > > > > Also get target-info.c to be compatible with future TARGET_ARCH_VARIANT > > only usage. > > So that we can define TARGET_ARCH_VARIANT to target_name directly > > > > Signed-off-by: Yonggang Luo <[email protected]> > > --- > > include/qemu/base-arch-defs.h | 13 +++++++++++++ > > qapi/machine.json | 25 +++++++++++++------------ > > target-info.c | 26 +++++++++----------------- > > 3 files changed, 35 insertions(+), 29 deletions(-) > > > > diff --git a/qapi/machine.json b/qapi/machine.json > > index 07fac4f0764..a3d6e08a847 100644 > > --- a/qapi/machine.json > > +++ b/qapi/machine.json > > @@ -15,11 +15,10 @@ > > ## > > # @EmuTarget: > > -# The comprehensive enumeration of QEMU system emulation > > -# ("softmmu") targets. Run "./configure --help" in the project > > -# root directory, and look for the \*-softmmu targets near the > > -# "--target-list" option. The individual target constants are not > > -# documented here, for the time being. > > +# The comprehensive enumeration of QEMU system and user-mode > > +# emulation targets. Run "./configure --help" in the project root > > +# directory, and look for the targets near the "--target-list" > > +# option. Individual target constants are not documented here. > > # > > # @rx: since 5.0 > > # > > @@ -30,17 +29,19 @@ > > # @hexagon: since 11.0 > > # > > # .. note:: The resulting QMP strings can be appended to the > > -# "qemu-system-" prefix to produce the corresponding QEMU > > -# executable name. This is true even for "qemu-system-x86_64". > > +# "qemu-system-" prefix for system emulation, or the "qemu-" prefix > > +# for user-mode emulation, to produce the corresponding executable > > +# name, where that target supports the respective emulation mode. > > # > > # Since: 3.0 > > ## > > { 'enum' : 'EmuTarget', > > - 'data' : [ 'aarch64', 'alpha', 'arm', 'avr', 'hexagon', 'hppa', 'i386', > > - 'loongarch64', 'm68k', 'microblaze', 'mips', 'mips64', > > - 'mips64el', 'mipsel', 'or1k', 'ppc', > > - 'ppc64', 'riscv32', 'riscv64', 'rx', 's390x', 'sh4', > > - 'sh4eb', 'sparc', 'sparc64', 'tricore', > > + 'data' : [ 'aarch64', 'aarch64_be', 'alpha', 'arm', 'armeb', 'avr', > > + 'hexagon', 'hppa', 'i386', 'loongarch64', 'm68k', > > 'microblaze', > > + 'microblazeel', 'mips', 'mips64', 'mips64el', 'mipsel', > > + 'mipsn32', 'mipsn32el', 'or1k', 'ppc', 'ppc64', 'ppc64le', > > + 'riscv32', 'riscv64', 'rx', 's390x', 'sh4', 'sh4eb', 'sparc', > > + 'sparc32plus', 'sparc64', 'tricore', > > 'x86_64', 'xtensa', 'xtensaeb' ] } > > 'machine.json' is for system binaries. > > If we want to expose these QAPI types to the user binaries > (I'm not sure we want...) then this declaration block should > be moved in another {qapi}.json file. QAPI types are versioned, > so we'd need some " @aarch64_be # Since v13.0" comments. > > Anyway I doubt we want to alter EmuTarget, I'd rather let it > die as a legacy field, and expose {arch, wordsize, endianness} > to management layer if this is important to consume.
Libvirt uses query-target so we don't want that data to go away. If we want to expose other data alongside the target name that's fine. With regards, Daniel -- |: https://berrange.com ~~ https://hachyderm.io/@berrange :| |: https://libvirt.org ~~ https://entangle-photo.org :| |: https://pixelfed.art/berrange ~~ https://fstop138.berrange.com :|
