[Spice-devel] [PATCH] server: add symbol versioning to the spice server shared library.

Gerd Hoffmann kraxel at redhat.com
Tue Jul 19 04:59:31 PDT 2011


This patch adds symbol versions to the spice server library.  Each
symbol which is exported by libspice-server gets tagged with the
(stable) version where it appeared first.  This way the linker and rpm
are able to figure which version of the spice-server libary is required
by a particular qemu binary/package.

Signed-off-by: Gerd Hoffmann <kraxel at redhat.com>
---
 server/Makefile.am       |    1 +
 server/spice-server.syms |   66 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 0 deletions(-)
 create mode 100644 server/spice-server.syms

diff --git a/server/Makefile.am b/server/Makefile.am
index 601840a..d94f9fb 100644
--- a/server/Makefile.am
+++ b/server/Makefile.am
@@ -34,6 +34,7 @@ lib_LTLIBRARIES = libspice-server.la
 
 libspice_server_la_LDFLAGS =			\
 	-version-number $(SPICE_LT_VERSION)	\
+	-Wl,--version-script=spice-server.syms	\
 	-no-undefined				\
 	$(NULL)
 
diff --git a/server/spice-server.syms b/server/spice-server.syms
new file mode 100644
index 0000000..7f3c5d4
--- /dev/null
+++ b/server/spice-server.syms
@@ -0,0 +1,66 @@
+SPICE_SERVER_0.6.0 {
+global:
+    spice_server_add_interface;
+    spice_server_add_renderer;
+    spice_server_char_device_recognized_subtypes;
+    spice_server_char_device_wakeup;
+    spice_server_destroy;
+    spice_server_get_image_compression;
+    spice_server_get_peer_info;
+    spice_server_get_sock_info;
+    spice_server_init;
+    spice_server_kbd_leds;
+    spice_server_migrate_client_state;
+    spice_server_migrate_end;
+    spice_server_migrate_info;
+    spice_server_migrate_start;
+    spice_server_new;
+    spice_server_playback_get_buffer;
+    spice_server_playback_put_samples;
+    spice_server_playback_start;
+    spice_server_playback_stop;
+    spice_server_record_get_samples;
+    spice_server_record_start;
+    spice_server_record_stop;
+    spice_server_remove_interface;
+    spice_server_set_addr;
+    spice_server_set_agent_mouse;
+    spice_server_set_channel_security;
+    spice_server_set_image_compression;
+    spice_server_set_jpeg_compression;
+    spice_server_set_noauth;
+    spice_server_set_playback_compression;
+    spice_server_set_port;
+    spice_server_set_streaming_video;
+    spice_server_set_ticket;
+    spice_server_set_tls;
+    spice_server_set_zlib_glz_compression;
+local: *;
+};
+
+SPICE_SERVER_0.6.1 {
+global:
+    spice_get_current_compat_version;
+    spice_server_set_compat_version;
+} SPICE_SERVER_0.6.0;
+
+SPICE_SERVER_0.8.0 {
+global:
+    spice_server_migrate_switch;
+} SPICE_SERVER_0.6.1;
+
+SPICE_SERVER_0.8.1 {
+global:
+    spice_server_set_agent_copypaste;
+} SPICE_SERVER_0.8.0;
+
+SPICE_SERVER_0.10.0 {
+global:
+    spice_server_playback_set_mute;
+    spice_server_playback_set_volume;
+    spice_server_record_set_mute;
+    spice_server_record_set_volume;
+    spice_server_set_sasl;
+    spice_server_set_sasl_appname;
+} SPICE_SERVER_0.8.1;
+
-- 
1.7.1



More information about the Spice-devel mailing list