Qemu 9.2: stubs: build issue with --enable-user --disable-system --enable-tools

Host environment

  • Build system: Buildroot
  • QEMU version: 9.2

Description of problem

Since commit "stubs: avoid duplicate symbols in libqemuutil.a", Qemu doesn't build with:

./configure --enable-user --disable-system --enable-tools

/usr/bin/ld: libhwcore.a.p/hw_core_qdev.c.o: in function 'device_finalize':
/home/autobuild/autobuild/instance-2/output-1/build/host-qemu-9.2.0/build/../hw/core/qdev.c:689:(.text+0x75c): undefined reference to 'qapi_event_send_device_deleted' collect2: error: ld returned 1 exit status

See Buildroot automated build results: http://autobuild.buildroot.org/?reason=host-qemu-9.2.0

Indeed, with have_system = false and have_tools = true, Qemu needs the stubs for QAPI events added by stub_ss.add(files('qdev.c')) to provide qapi_event_send_device_deleted.

Maybe the change in stubs/meson.build should have been: \

if not have_system and have_tools
stub_ss.add(files('qdev.c'))
endif

Best regards, Romain

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