On Wed, Oct 14, 2026 at 6:45 PM Philippe Mathieu-Daudé
<[email protected]> wrote:
>
> On 14/10/26 12:30, Daniel P. Berrangé wrote:
> > 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.
>
> I'm not suggesting to change 'query-target' format; the opposite...
> If we are going to add 'query-targets' (the plural form) then we
> should report something more useful like {arch, wordsize, endianness}
> but not that EmuTarget type which I consider legacy.
I think it should be moved to qapi.json. As I needed it, do you have a better
way to have an enum for mapping target-name to that enum?
--
此致
礼
罗勇刚
Yours
sincerely,
Yonggang Luo