From a2c5d16a70a6161449c687be74db2813b362cf5e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Guido=20G=C3=BCnther?= Date: Wed, 19 Aug 2015 10:38:31 +0200 Subject: [PATCH] libvirt-admin: Generate symbols file Since we're linking this into libvirtd we need some symbols to be public but not part of the public API so mark them as LIBVIRT_ADMIN_PRIVATE_ as we do with libvirt. Making all other symbols local makes sure we don't accidentally leak unwanted ones. --- configure.ac | 2 +- src/Makefile.am | 20 +++++++++++++++++-- src/libvirt_admin_private.syms | 14 +++++++++++++ ...t_admin.syms => libvirt_admin_public.syms} | 0 4 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 src/libvirt_admin_private.syms rename src/{libvirt_admin.syms => libvirt_admin_public.syms} (100%) diff --git a/configure.ac b/configure.ac index 965858be83..63750dbfc0 100644 --- a/configure.ac +++ b/configure.ac @@ -2346,7 +2346,7 @@ WIN32_EXTRA_CFLAGS= dnl libvirt.syms is generated in builddir, but libvirt_qemu.syms is in git; dnl hence the asymmetric naming of these two symbol files. LIBVIRT_SYMBOL_FILE=libvirt.syms -LIBVIRT_ADMIN_SYMBOL_FILE='$(srcdir)/libvirt_admin.syms' +LIBVIRT_ADMIN_SYMBOL_FILE=libvirt_admin.syms LIBVIRT_LXC_SYMBOL_FILE='$(srcdir)/libvirt_lxc.syms' LIBVIRT_QEMU_SYMBOL_FILE='$(srcdir)/libvirt_qemu.syms' MSCOM_LIBS= diff --git a/src/Makefile.am b/src/Makefile.am index c4d49a50b4..9667292607 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -540,7 +540,7 @@ check-drivername: $(AM_V_GEN)$(PERL) $(srcdir)/check-drivername.pl \ $(srcdir)/driver.h \ $(srcdir)/libvirt_public.syms \ - $(srcdir)/libvirt_admin.syms \ + $(srcdir)/libvirt_admin_public.syms \ $(srcdir)/libvirt_qemu.syms \ $(srcdir)/libvirt_lxc.syms @@ -2010,8 +2010,9 @@ EXTRA_DIST += \ libvirt_public.syms \ libvirt_lxc.syms \ libvirt_qemu.syms \ - libvirt_admin.syms \ + libvirt_admin_public.syms \ $(SYM_FILES) \ + $(ADMIN_SYM_FILES) \ $(NULL) BUILT_SOURCES += $(GENERATED_SYM_FILES) @@ -2038,6 +2039,19 @@ libvirt.syms: libvirt_public.syms $(USED_SYM_FILES) \ chmod a-w $@-tmp && \ mv $@-tmp $@ +libvirt_admin.syms: libvirt_admin_public.syms $(ADMIN_SYM_FILES) \ + $(top_builddir)/config.status + $(AM_V_GEN)rm -f $@-tmp $@ ; \ + printf '# WARNING: generated from the following:\n# $^\n\n' >$@-tmp && \ + cat $(srcdir)/libvirt_admin_public.syms >>$@-tmp && \ + printf '\n\n# Private symbols\n\n' >>$@-tmp && \ + printf 'LIBVIRT_ADMIN_PRIVATE_$(VERSION) {\n\n' >>$@-tmp && \ + printf 'global:\n\n' >>$@-tmp && \ + cat $(ADMIN_SYM_FILES) >>$@-tmp && \ + printf '\n\nlocal:\n*;\n\n};' >>$@-tmp && \ + chmod a-w $@-tmp && \ + mv $@-tmp libvirt_admin.syms + lib_LTLIBRARIES += libvirt-admin.la libvirt_admin_la_SOURCES = \ libvirt-admin.c \ @@ -2077,6 +2091,8 @@ libvirt_admin_la_LIBADD += \ $(SASL_LIBS) \ $(GNUTLS_LIBS) +ADMIN_SYM_FILES = $(srcdir)/libvirt_admin_private.syms + if WITH_DTRACE_PROBES libvirt_admin_la_LIBADD += libvirt_probes.lo endif WITH_DTRACE_PROBES diff --git a/src/libvirt_admin_private.syms b/src/libvirt_admin_private.syms new file mode 100644 index 0000000000..401cd4e7f4 --- /dev/null +++ b/src/libvirt_admin_private.syms @@ -0,0 +1,14 @@ +# +# General private symbols for libvirt_admin. Add symbols here, and see +# Makefile.am for more details. +# +# Keep this file sorted by header name, then by symbols with each header. +# + +# admin/admin_protocol.x +xdr_admin_connect_open_args; + +# Let emacs know we want case-insensitive sorting +# Local Variables: +# sort-fold-case: t +# End: diff --git a/src/libvirt_admin.syms b/src/libvirt_admin_public.syms similarity index 100% rename from src/libvirt_admin.syms rename to src/libvirt_admin_public.syms -- 2.39.5