Under Darwin, using -shared makes it impossible to have undefined symbols
and -bundle has to be used instead; so detect the OS and use
different options.
Based-on: <20230907101811.469236-1-pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
This replaces Philippe's patch to link with GLib, and also fixes
errors like
"_qemu_plugin_get_hwaddr", referenced from:
_vcpu_mem in execlog.o
I guess this shows that we're kinda losing in not using Meson
for the plugins, but as I said I appreciate the didactic value
of using a standalone Makefile (with only a handful of lines
in configure).
contrib/plugins/Makefile | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/contrib/plugins/Makefile b/contrib/plugins/Makefile
index db1bd04dfa6..c26fa08441e 100644
--- a/contrib/plugins/Makefile
+++ b/contrib/plugins/Makefile
@@ -37,7 +37,11 @@ all: $(SONAMES)
$(CC) $(CFLAGS) -c -o $@ $<
lib%.so: %.o
+ifeq ($(CONFIG_DARWIN),y)
+ $(CC) -bundle -Wl,-undefined,dynamic_lookup -o $@ $^ $(LDLIBS)
+else
$(CC) -shared -o $@ $^ $(LDLIBS)
+endif
clean:
rm -f *.o *.so *.d
--
2.41.0