]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
libvirt-admin: Generate symbols file
authorGuido Günther <agx@sigxcpu.org>
Wed, 19 Aug 2015 08:38:31 +0000 (10:38 +0200)
committerCole Robinson <crobinso@redhat.com>
Tue, 22 Sep 2015 00:18:01 +0000 (20:18 -0400)
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_<VERSION> as we do with libvirt.

Making all other symbols local makes sure we don't accidentally leak
unwanted ones.

(cherry picked from commit a2c5d16a70a6161449c687be74db2813b362cf5e)

configure.ac
src/Makefile.am
src/libvirt_admin_private.syms [new file with mode: 0644]
src/libvirt_admin_public.syms [moved from src/libvirt_admin.syms with 100% similarity]

index 91ae01add795677bd358cf10ced09e51ea1f3e2c..c6e1e4d8f14312e995ade6fc5a8d20d4bd11d242 100644 (file)
@@ -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=
index 7338ab95c6ee74ddfab3177c597beca9c08af2e8..f8a67fbe8e9276deeea2d3b8baa8973fa0334525 100644 (file)
@@ -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
 
@@ -2009,8 +2009,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)
@@ -2037,6 +2038,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                 \
@@ -2076,6 +2090,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 (file)
index 0000000..401cd4e
--- /dev/null
@@ -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: