On Wed, Oct 14, 2026 at 6:25 PM Philippe Mathieu-Daudé
<[email protected]> 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,
OK,
> 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}
Are you talking about base_arch? that won't work(we need mapping to
the EmuTarget to select the $target directly)
What the advantage of EmuTarget is that we can have a one-to-one
mapping from EmuTarget to TargetInfo
That each EmuTarget only mapping to a single TargetInfo, so we can
reliably choose TargetInfo from EmuTarget
that is one item of data
Hi Philippe
rationale:
https://lore.kernel.org/qemu-devel/[email protected]/
This was tried before and rejected.
> to management layer if this is important to consume.
--
此致
礼
罗勇刚
Yours
sincerely,
Yonggang Luo