On 28/9/26 12:51, Yonggang Luo wrote:
On Mon, Sep 28, 2026 at 6:39 PM Philippe Mathieu-Daudé <
[email protected]> wrote:
On 28/9/26 12:13, Daniel P. Berrangé wrote:
On Sat, Sep 26, 2026 at 03:00:45PM +0800, Yonggang Luo wrote:
query-targets lists each linked target, including none, with its
arch, endianness, and the machines that target accepts.
Signed-off-by: Yonggang Luo <[email protected]>
---
hw/core/machine-qmp-cmds.c | 30 ++++++++++++++++++++++++++++++
qapi/machine.json | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 65 insertions(+)
diff --git a/qapi/machine.json b/qapi/machine.json
index 6aaa2af709a..d8cdea6203e 100644
--- a/qapi/machine.json
+++ b/qapi/machine.json
@@ -307,6 +307,41 @@
##
{ 'command': 'query-target', 'returns': 'QemuTargetInfo' }
+##
+# @TargetMachines:
+#
+# One registered system target and the machines that can run on it.
+#
+# @arch: the target architecture
+#
+# @endianness: the target endianness
+#
+# @machines: machine type names, not aliases
+#
+# Since: 11.2
+##
+{ 'struct': 'TargetMachines',
+ 'data': { 'arch': 'SysEmuTarget',
+ 'endianness': 'EndianMode',
+ 'machines': ['str'] } }
We already have 'QemuTargetInfo' struct which is used
with 'query-target', that should also be used with the
new 'query-targets' command.
We need to add the 'endianness' field to QemuTargetInfo.
Why do we want to expose endianness, and what endianness to
expose? Endianness is a runtime bit state of CPUs. Sometime
this bit is hardwired but that is an implementation detail.
For some targets it's, but for some targets it's not. for example
mips-softmmu.mak
mipsel-softmmu.mak
mips64el-softmmu.mak
mips64-softmmu.mak
mips64el-softmmu.mak
mips64-softmmu.mak
only differ the endianless
If you look at git / mailing list history you'll see I spent more
than a year unifying QEMU endianness. It was too much work for a
single person so we decided to reduce the scope to ARM + MicroBlaze
for single binary and we got MicroBlaze unified. We don't want
an endianness-specific single binary. I'm not sure what you are
trying to build, you didn't clearly explained what is your goal here.
You can find series unifying endianness for MIPS, not merged because
more things need to be addressed and not the priority.