id = 553 title = "Virtio-vga with blobs on fails, when qemu compiled with enabled modules" state = "closed" created_at = "2021-08-21T19:15:08.697Z" closed_at = "2021-09-01T11:37:49.404Z" labels = ["Build System", "Regression"] url = "https://gitlab.com/qemu-project/qemu/-/issues/553" host-os = "Manjaro Linux" host-arch = "x86 (others may be affected too)" qemu-version = "QEMU emulator version 6.0.94 (v6.1.0-rc4-dirty)" guest-os = "n/a" guest-arch = "n/a" description = """When using qemu configured with `--enabled-modules` and starting qemu with command line above, qemu crashes with following output: ``` qemu-system-x86_64: -device virtio-vga,blob=on: cannot enable blob resources without udmabuf ``` While qemu configured without `--enabled-modules` runs this command successfully.""" reproduce = """1. Get latest qemu source code 2. Build qemu `mkdir build && cd build && ../configure && ninja` 3. Check if following command runs without errors and show sdl qemu window ``` sudo ./qemu-system-x86_64 \\ -object memory-backend-memfd,id=mem1,size=512M \\ -machine memory-backend=mem1 \\ -display sdl \\ -device virtio-vga,blob=on ``` 4. Then try to build with modules enabled `mkdir build && cd build && ../configure --enable-modules && ninja` 5. Try to do step 3 again""" additional = """I tried to debug this bug, and found that problem is with function `virtio_gpu_have_udmabuf`: when qemu is build without modules this function is from `hw/display/virtio-gpu-udmabuf.c` (which is correct), but when qemu compiled with modules this function comes from `stubs/virtio-gpu-udmabuf.c` and when `hw-display-virtio-gpu.so` is loaded, `virtio_gpu_have_udmabuf` is not replaced, and remains function from stub (which always return 0) and command fails. I think I will submit patch that fix it tomorrow"""