[libvirt] [PATCH v4 4/8] Qemu Monitor API entry point.

Chris Lalancette clalance at redhat.com
Fri Jul 23 15:42:29 UTC 2010


On 07/20/10 - 11:56:52AM, Daniel P. Berrange wrote:
> This needs to be a in a separate libvirt_qemu_public.syms since
> this symbol is in a separate library. Also make sure to give
> it a different version name, eg  LIBVIRT_QEMU_0.8.3

Here's a "diff-diff", which shows the changes I've done to address this
concern.  Assuming you are OK with this, I'll push this series (minus the
virsh patch) today.

--
Chris Lalancette
-------------- next part --------------
--- /tmp/04.patch	2010-07-23 10:53:00.535977382 -0400
+++ 0004-Qemu-Monitor-API-entry-point.patch	2010-07-23 10:55:45.501976791 -0400
@@ -96,10 +45,31 @@ Signed-off-by: Chris Lalancette <clalanc
  src/vbox/vbox_tmpl.c           |    1 +
  src/xen/xen_driver.c           |    1 +
  src/xenapi/xenapi_driver.c     |    1 +
- 19 files changed, 144 insertions(+), 1 deletions(-)
+ 20 files changed, 156 insertions(+), 1 deletions(-)
  create mode 100644 include/libvirt/libvirt-qemu.h
  create mode 100644 src/libvirt-qemu.c
+ create mode 100644 src/libvirt_qemu.syms
 
+diff --git a/configure.ac b/configure.ac
+index eece723..08b7eb6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1833,6 +1833,7 @@ CYGWIN_EXTRA_PYTHON_LIBADD=
+ MINGW_EXTRA_LDFLAGS=
+ WIN32_EXTRA_CFLAGS=
+ LIBVIRT_SYMBOL_FILE=libvirt.syms
++LIBVIRT_QEMU_SYMBOL_FILE=libvirt_qemu.syms
+ case "$host" in
+   *-*-cygwin*)
+     CYGWIN_EXTRA_LDFLAGS="-no-undefined"
+@@ -1872,6 +1873,7 @@ AC_SUBST([CYGWIN_EXTRA_PYTHON_LIBADD])
+ AC_SUBST([MINGW_EXTRA_LDFLAGS])
+ AC_SUBST([WIN32_EXTRA_CFLAGS])
+ AC_SUBST([LIBVIRT_SYMBOL_FILE])
++AC_SUBST([LIBVIRT_QEMU_SYMBOL_FILE])
+ AC_SUBST([VERSION_SCRIPT_FLAGS])
+ 
+ 
 diff --git a/include/libvirt/Makefile.am b/include/libvirt/Makefile.am
 index 8589dc5..b2c2b76 100644
 --- a/include/libvirt/Makefile.am
@@ -166,7 +136,7 @@ index ece18a6..9cf9d67 100644
  libvirt_test_la_CFLAGS = $(COVERAGE_CFLAGS)
  
 +libvirt_qemu_la_SOURCES = libvirt-qemu.c
-+libvirt_qemu_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_SYMBOL_FILE) \
++libvirt_qemu_la_LDFLAGS = $(VERSION_SCRIPT_FLAGS)$(LIBVIRT_QEMU_SYMBOL_FILE) \
 +                          -version-info $(LIBVIRT_VERSION_INFO) \
 +                          $(CYGWIN_EXTRA_LDFLAGS) $(MINGW_EXTRA_LDFLAGS)
 +libvirt_qemu_la_CFLAGS = $(COVERAGE_CFLAGS)
@@ -309,21 +279,28 @@ index 778ceb1..fe8f4c9 100644
  
  
  # xml.h
-diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms
-index 849c163..302b012 100644
---- a/src/libvirt_public.syms
-+++ b/src/libvirt_public.syms
-@@ -405,4 +405,10 @@ LIBVIRT_0.8.2 {
-         virDomainCreateWithFlags;
- } LIBVIRT_0.8.1;
- 
-+
-+LIBVIRT_0.8.3 {
+diff --git a/src/libvirt_qemu.syms b/src/libvirt_qemu.syms
+new file mode 100644
+index 0000000..5702d36
+--- /dev/null
++++ b/src/libvirt_qemu.syms
+@@ -0,0 +1,16 @@
++#
++# Officially exported symbols, for which header
++# file definitions are installed in /usr/include/libvirt
++# from libvirt-qemu.h
++#
++# Versions here are *fixed* to match the libvirt version
++# at which the symbol was introduced. This ensures that
++# a new client app requiring symbol foo() can't accidentally
++# run with old libvirt-qemu.so not providing foo() - the global
++# soname version info can't enforce this since we never
++# change the soname
++#
++LIBVIRT_QEMU_0.8.3 {
 +    global:
 +        virDomainQemuMonitorCommand;
-+} LIBVIRT_0.8.2;
-+
- # .... define new API here using predicted next version number ....
++};
 diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
 index 462bc9c..4fc1ecd 100644
 --- a/src/lxc/lxc_driver.c


More information about the libvir-list mailing list