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-pbonz...@redhat.com> Signed-off-by: Paolo Bonzini <pbonz...@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