Currently the script won't generate a configuration file that sets up qemu-user-riscv32 on riscv64, likely under the assumption that 64-bit RISC-V machines can natively run 32-bit RISC-V code.
However this functionality, while theoretically possible, in practice is missing from most commonly available RISC-V hardware and not enabled at the distro level. So qemu-user-riscv32 really is the only option to run riscv32 binaries on riscv64. Make riscv32 and riscv64 each its own family, so that the configuration file we need to make 32-on-64 userspace emulation work gets generated. Link: https://src.fedoraproject.org/rpms/qemu/pull-request/72 Thanks: David Abdurachmanov <davi...@rivosinc.com> Thanks: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Andrea Bolognani <abolo...@redhat.com> --- scripts/qemu-binfmt-conf.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh index 6ef9f118d9..e38b767c24 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -110,11 +110,11 @@ hppa_family=hppa riscv32_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00' riscv32_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff' -riscv32_family=riscv +riscv32_family=riscv32 riscv64_magic='\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00' riscv64_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff' -riscv64_family=riscv +riscv64_family=riscv64 xtensa_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x5e\x00' xtensa_mask='\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff' @@ -168,9 +168,6 @@ qemu_get_family() { sparc*) echo "sparc" ;; - riscv*) - echo "riscv" - ;; loongarch*) echo "loongarch" ;; -- 2.47.0