diff mbox series

[2/2] vga: build qxl as module

Message ID 20200604075943.7001-3-kraxel@redhat.com
State New
Headers show
Series build qxl as module | expand

Commit Message

Gerd Hoffmann June 4, 2020, 7:59 a.m. UTC
Open questions:
 * Do we want this be contigurable?  If so, how?  Does our miniconf
   support tristate Kconfig options?
 * The Makefile.target chunk feels quite hackish.  Better ideas anyone?

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 Makefile.objs            | 1 +
 Makefile.target          | 7 +++++++
 hw/core/qdev.c           | 2 ++
 hw/Makefile.objs         | 1 +
 hw/display/Makefile.objs | 4 +++-
 5 files changed, 14 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/Makefile.objs b/Makefile.objs
index 99774cfd2545..28c165c0e623 100644
--- a/Makefile.objs
+++ b/Makefile.objs
@@ -59,6 +59,7 @@  common-obj-y += migration/
 common-obj-y += audio/
 common-obj-m += audio/
 common-obj-y += hw/
+common-obj-m += hw/
 
 common-obj-y += replay/
 
diff --git a/Makefile.target b/Makefile.target
index 8ed1eba95b9c..c70325df5796 100644
--- a/Makefile.target
+++ b/Makefile.target
@@ -179,6 +179,13 @@  endif # CONFIG_SOFTMMU
 dummy := $(call unnest-vars,,obj-y)
 all-obj-y := $(obj-y)
 
+#
+# common-obj-m has some crap here, probably as side effect from
+# filling obj-y.  Clear it.  Fixes suspious dependency errors when
+# building devices as modules.
+#
+common-obj-m :=
+
 include $(SRC_PATH)/Makefile.objs
 dummy := $(call unnest-vars,.., \
                authz-obj-y \
diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index 20e5c4cbafd8..9ab30676fff7 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -156,6 +156,8 @@  static struct {
     const char *type;
     const char *mod;
 } const hwmodules[] = {
+    { .type = "qxl-vga",        .mod = "display-qxl"            },
+    { .type = "qxl",            .mod = "display-qxl"            },
 };
 
 static bool qdev_module_loaded_all;
diff --git a/hw/Makefile.objs b/hw/Makefile.objs
index 660e2b437348..fdbc7b017487 100644
--- a/hw/Makefile.objs
+++ b/hw/Makefile.objs
@@ -43,4 +43,5 @@  devices-dirs-y += smbios/
 endif
 
 common-obj-y += $(devices-dirs-y)
+common-obj-m += display/
 obj-y += $(devices-dirs-y)
diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs
index 77a7d622bd2d..e2003d7083c2 100644
--- a/hw/display/Makefile.objs
+++ b/hw/display/Makefile.objs
@@ -44,7 +44,9 @@  common-obj-$(CONFIG_ARTIST) += artist.o
 
 obj-$(CONFIG_VGA) += vga.o
 
-common-obj-$(CONFIG_QXL) += qxl.o qxl-logger.o qxl-render.o
+#common-obj-$(CONFIG_QXL) += qxl.mo
+common-obj-m += qxl.mo
+qxl.mo-objs = qxl.o qxl-logger.o qxl-render.o
 
 obj-$(CONFIG_VIRTIO_GPU) += virtio-gpu-base.o virtio-gpu.o virtio-gpu-3d.o
 obj-$(CONFIG_VHOST_USER_GPU) += vhost-user-gpu.o