qemu/hw/display
Daniel P. Berrangé 8b8437259c hw/display: avoid creating empty loadable modules
When using --disable-virglrenderer, QEMU still creates

  hw-display-virtio-gpu-gl.so
  hw-display-virtio-vga-gl.so
  hw-display-virtio-gpu-pci-gl.so

but when these are loaded, they provide no functionality as the code
which registers types is not compiled in. Funtionally this is
relatively harmless, because QEMU is fine loading a module with no
types.

This is rather confusing for users and OS distro maintainers though,
as they think they have the GL functionality built, but in fact the
module they are looking at provides nothing of value.

The root cause is the use of 'when/if_true' rules when adding sources
to the module source set. If all the rules evaluate to false, then we
have declared the module, but not added anything to it.  We need to
put declaration of the entire module inside a condition based on
existance of the 3rd party library deps that are mandatory.

Fixes: https://gitlab.com/qemu-project/qemu/-/issues/1352
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20221219125830.2369169-1-berrange@redhat.com>
[Do not check for pixman. - Paolo]
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2023-01-11 10:44:34 +01:00
..
acpi-vga-stub.c acpi: pc: vga: use AcpiDevAmlIf interface to build VGA device descriptors 2022-11-07 14:00:29 -05:00
acpi-vga.c acpi: pc: vga: use AcpiDevAmlIf interface to build VGA device descriptors 2022-11-07 14:00:29 -05:00
artist.c artist: set memory region owners for buffers to the artist device 2022-06-26 18:40:28 +01:00
ati_2d.c display: include dependencies explicitly 2022-11-10 10:17:18 -05:00
ati_dbg.c ati-vga: Add dummy MEM_SDRAM_MODE_REG 2020-06-30 22:54:24 +02:00
ati_int.h include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
ati_regs.h ati-vga: Add dummy MEM_SDRAM_MODE_REG 2020-06-30 22:54:24 +02:00
ati.c hw/display: Allow vga_common_init() to return errors 2022-03-18 10:15:57 +01:00
bcm2835_fb.c hw/display/bcm2835_fb: Fix framebuffer allocation address 2022-07-26 14:09:44 +01:00
blizzard.c hw/display: fix tab indentation 2022-11-08 10:23:32 +01:00
bochs-display.c include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
cg3.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
cirrus_vga_internal.h hw/display/cirrus_vga: Move "isa-cirrus-vga" device into a separate file 2018-10-15 09:57:33 +02:00
cirrus_vga_isa.c display: include dependencies explicitly 2022-11-10 10:17:18 -05:00
cirrus_vga_rop2.h cirrus: fix PUTPIXEL macro 2017-03-27 12:14:45 +02:00
cirrus_vga_rop.h cirrus: fix off-by-one in cirrus_bitblt_rop_bkwd_transp_*_16 2017-03-17 10:23:44 +01:00
cirrus_vga.c include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
dpcd.c hw/display/dpcd: Convert debug printf()s to trace events 2020-05-28 11:38:57 +02:00
edid-generate.c edid: Fix clock of Detailed Timing Descriptor 2022-03-04 11:31:46 +01:00
edid-region.c Include exec/memory.h slightly less 2019-08-16 13:31:52 +02:00
exynos4210_fimd.c hw/display/exynos4210_fimd: Fix potential NULL pointer dereference 2020-11-02 16:52:17 +00:00
framebuffer.c Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
framebuffer.h
g364fb.c g364fb: add VMStateDescription for G364SysBusState 2021-07-02 17:35:08 +02:00
i2c-ddc.c Mark remaining global TypeInfo instances as const 2022-02-21 13:30:20 +00:00
jazz_led.c Use OBJECT_DECLARE_SIMPLE_TYPE when possible 2020-09-18 14:12:32 -04:00
Kconfig hw: Include the VMWare devices only in the x86 targets 2022-12-15 15:19:24 +01:00
macfb.c macfb: set initial value of mode control registers in macfb_common_realize() 2022-03-09 09:29:10 +00:00
meson.build hw/display: avoid creating empty loadable modules 2023-01-11 10:44:34 +01:00
next-fb.c hw/display/next-fb: Fix comment typo 2022-12-03 22:07:07 +01:00
omap_dss.c hw/display: fix tab indentation 2022-11-08 10:23:32 +01:00
omap_lcdc.c hw/display/omap_lcdc: Delete unnecessary macro 2021-03-06 13:30:38 +00:00
pl110_template.h Replace config-time define HOST_WORDS_BIGENDIAN 2022-04-06 10:50:37 +02:00
pl110.c hw/display/pl110: Remove use of BITS from pl110_template.h 2021-03-14 13:14:55 +00:00
pxa2xx_lcd.c hw/display: fix tab indentation 2022-11-08 10:23:32 +01:00
qxl-logger.c hw/display/qxl: Pass requested buffer size to qxl_phys2virt() 2022-11-29 18:15:26 -05:00
qxl-render.c hw/display/qxl: Pass requested buffer size to qxl_phys2virt() 2022-11-29 18:15:26 -05:00
qxl.c hw/display/qxl: Assert memory slot fits in preallocated MemoryRegion 2022-11-29 18:15:26 -05:00
qxl.h include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
ramfb-standalone.c Use DECLARE_*CHECKER* macros 2020-09-09 09:27:09 -04:00
ramfb.c ramfb: fix size calculation 2020-05-18 15:43:51 +02:00
sii9022.c hw/i2c: add asynchronous send 2022-06-30 09:21:14 +02:00
sm501.c include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
ssd0303.c hw/i2c: add asynchronous send 2022-06-30 09:21:14 +02:00
ssd0323.c hw/ssi: Rename SSI 'slave' as 'peripheral' 2020-12-10 12:15:03 -05:00
tc6393xb.c Use g_new() & friends where that makes obvious sense 2022-03-21 15:44:44 +01:00
tcx.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
trace-events hw/display/vmware_vga: do not discard screen updates 2022-04-22 11:47:08 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vga_int.h display: include dependencies explicitly 2022-11-10 10:17:18 -05:00
vga_regs.h hw/display: fix tab indentation 2022-11-08 10:23:32 +01:00
vga-access.h vga: move access helpers to separate include file 2019-09-19 10:37:46 +02:00
vga-helpers.h vga: move access helpers to separate include file 2019-09-19 10:37:46 +02:00
vga-isa.c display: include dependencies explicitly 2022-11-10 10:17:18 -05:00
vga-mmio.c display: include dependencies explicitly 2022-11-10 10:17:18 -05:00
vga-pci.c include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
vga.c display: include dependencies explicitly 2022-11-10 10:17:18 -05:00
vhost-user-gpu-pci.c modules: introduces module_kconfig directive 2022-06-06 09:26:53 +02:00
vhost-user-gpu.c virtio: introduce macro VIRTIO_CONFIG_IRQ_IDX 2023-01-08 01:54:22 -05:00
vhost-user-vga.c modules: introduces module_kconfig directive 2022-06-06 09:26:53 +02:00
virtio-gpu-base.c virtio-gpu: Respect UI refresh rate for EDID 2022-06-14 10:34:37 +02:00
virtio-gpu-gl.c modules: introduces module_kconfig directive 2022-06-06 09:26:53 +02:00
virtio-gpu-pci-gl.c modules: introduces module_kconfig directive 2022-06-06 09:26:53 +02:00
virtio-gpu-pci.c modules: introduces module_kconfig directive 2022-06-06 09:26:53 +02:00
virtio-gpu-udmabuf-stubs.c virtio-gpu: splitting one extended mode guest fb into n-scanouts 2021-11-05 12:29:19 +01:00
virtio-gpu-udmabuf.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
virtio-gpu-virgl.c virtio-gpu: use VIRTIO_GPU_RESOURCE_FLAG_Y_0_TOP 2021-12-21 10:50:21 +04:00
virtio-gpu.c virtio-gpu: update scanout if there is any area covered by the rect 2022-09-27 07:32:31 +02:00
virtio-vga-gl.c modules: introduces module_kconfig directive 2022-06-06 09:26:53 +02:00
virtio-vga.c hw/display/virtio-vga: Convert TYPE_VIRTIO_VGA_BASE to 3-phase reset 2022-12-16 15:59:07 +00:00
virtio-vga.h hw/display/virtio-vga: Convert TYPE_VIRTIO_VGA_BASE to 3-phase reset 2022-12-16 15:59:07 +00:00
vmware_vga.c include/hw/pci: Split pci_device.h off pci.h 2023-01-08 01:54:22 -05:00
xenfb.c hw/display: fix tab indentation 2022-11-08 10:23:32 +01:00
xlnx_dp.c xlnx_dp: drop unsupported AUXCommand in xlnx_dp_aux_set_command 2022-08-08 11:40:06 +02:00