From: Alex Bennée <alex.ben...@linaro.org> > Andrew Fasano <fas...@mit.edu> writes: > > > Use plugin filenames to set the preprocessor variable CURRENT_PLUGIN > > as a string during plugin compilation. > > > > Signed-off-by: Andrew Fasano <fas...@mit.edu> > > --- > > contrib/plugins/Makefile | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/contrib/plugins/Makefile b/contrib/plugins/Makefile > > index df3499f4f2..b7720fea0f 100644 > > --- a/contrib/plugins/Makefile > > +++ b/contrib/plugins/Makefile > > @@ -34,7 +34,7 @@ CFLAGS += -I$(SRC_PATH)/include/qemu > > all: $(SONAMES) > > > > %.o: %.c > > - $(CC) $(CFLAGS) -c -o $@ $< > > + $(CC) $(CFLAGS) -DCURRENT_PLUGIN=\"$(basename $@)\" -c -o $@ $< > > While all plugins are currently single files this seems a little clumsy. > > We can already check exported plugin symbols in loader.c (see > qemu_plugin_version) so maybe it would be better to declare an API > update and mandate any plugin object also needs to define a > qemu_plugin_name with a null terminated string?
That design sounds good to me and would be good for multi-file plugins. Perhaps plugins could also (optionally?) specify their own API versioning here. > > > > > lib%.so: %.o > > $(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDLIBS) > > > -- > Alex Bennée