RISC-V Regression: QEMU_CPU=f=false,zfinx=true gives misleading error message
Host environment
- Operating system: Ubuntu 22.04.4 LTS (Jammy)
- OS/kernel version: Linux patrick-ThinkPad-X1-Carbon-Gen-8 6.5.0-44-generic #44 (closed)~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Jun 18 14:36:16 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
- Architecture: x86
- QEMU flavor: qemu-riscv64
- QEMU version: v9.1.0-rc0
- QEMU command line:
> QEMU_CPU=rv64,zfinx=true,f=false ./qemu-riscv64 test.out qemu-riscv64: Zfinx cannot be supported together with F extension
Emulated/Virtualized environment
- Operating system: QEMU user mode
- OS/kernel version: QEMU user mode
- Architecture: RISC-V
Description of problem
The f extension looks like it should be toggle-able using qemu_cpu since it doesn't throw error messages when specified. Disabling the extension using f=false does not actually disable it as shown by the zfinx error message. Eg. Unsupported extension is explicitly rejected
> QEMU_CPU=rv64,j=false ./qemu-riscv64 test.out
qemu-riscv64: can't apply global rv64-riscv-cpu.j=false: Property 'rv64-riscv-cpu.j' not found
Steps to reproduce
- Compile any riscv binary like:
int main() {}
- Execute using
QEMU_CPU=rv64,zfinx=true,f=false ./qemu-riscv64 test.out