Skip to content

RISC-V KVM strerrorname_np regression breaks build on Alpine Linux

Host environment

  • Operating system: Alpine Linux
  • OS/kernel version: n/a
  • Architecture: riscv64
  • QEMU flavor: qemu-system-riscv64
  • QEMU version: 9.0.0
  • QEMU command line: n/a
    ./qemu-system-x86_64 -M q35 -m 4096 -enable-kvm -hda fedora32.qcow2

Emulated/Virtualized environment

  • Operating system: n/a
  • OS/kernel version: n/a
  • Architecture: n/a

Description of problem

Build from source fails on Alpine Linux due to the use of the non-portable strerrorname_np:

/usr/lib/gcc/riscv64-alpine-linux-musl/13.2.1/../../../../riscv64-alpine-linux-musl/bin/ld: libqemu-riscv64-softmmu.fa.p/target_riscv_kvm_kvm-cpu.c.o: in function `kvm_cpu_realize':
kvm-cpu.c:(.text+0x538): undefined reference to `strerrorname_np'
/usr/lib/gcc/riscv64-alpine-linux-musl/13.2.1/../../../../riscv64-alpine-linux-musl/bin/ld: libqemu-riscv64-softmmu.fa.p/target_riscv_kvm_kvm-cpu.c.o: in function `kvm_cpu_instance_init':
kvm-cpu.c:(.text+0x1244): undefined reference to `strerrorname_np'

Steps to reproduce

  1. install alpine linux on a riscv64 machine
  2. build qemu-9.0.0 from source.

Additional information

Same problem as #2041 (closed)

Re-introduced with d4ff3da8 and 0d71f0a3

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information