[Spice-devel] [spice-gtk] build: generate sym-file

Marc-André Lureau marcandre.lureau at gmail.com
Tue Aug 7 09:36:37 PDT 2012


ack

On Tue, Aug 7, 2012 at 6:34 PM, Christophe Fergeau <cfergeau at redhat.com> wrote:
> When -Wl,--version-script is not available, we fallback to using
> libtool --export-symbols feature, but the needed sym-file is missing
> from git. This commit adds generation of the sym-file to the
> update-map-file Makefile target, and adds a sym-file to git.
> The linker on OSX Lion doesn't like to have non-existing symbols
> specified in the symbol files it's given, so the symbols need to
> be split in glib symbols and gtk symbols.
> ---
>  gtk/Makefile.am         | 16 ++++++----
>  gtk/spice-glib-sym-file | 78 +++++++++++++++++++++++++++++++++++++++++++++++++
>  gtk/spice-gtk-sym-file  | 23 +++++++++++++++
>  3 files changed, 112 insertions(+), 5 deletions(-)
>  create mode 100644 gtk/spice-glib-sym-file
>  create mode 100644 gtk/spice-gtk-sym-file
>
> diff --git a/gtk/Makefile.am b/gtk/Makefile.am
> index 785736d..344c028 100644
> --- a/gtk/Makefile.am
> +++ b/gtk/Makefile.am
> @@ -55,9 +55,11 @@ lib_LTLIBRARIES += libspice-client-gtk-3.0.la
>  endif
>
>  if HAVE_LD_VERSION_SCRIPT
> -VERSION_LDFLAGS = -Wl,--version-script=${srcdir}/map-file
> +GLIB_VERSION_LDFLAGS = -Wl,--version-script=${srcdir}/map-file
> +GTK_VERSION_LD_FLAGS = $(GLIB_VERSION_LDFLAGS)
>  else
> -VERSION_LDFLAGS = -export-symbols ${srcdir}/sym-file
> +GLIB_VERSION_LDFLAGS = -export-symbols ${srcdir}/spice-glib-sym-file
> +GTK_VERSION_LDFLAGS = -export-symbols ${srcdir}/spice-gtk-sym-file
>  endif
>
>  KEYMAP_GEN = $(srcdir)/keymap-gen.pl
> @@ -99,7 +101,7 @@ AM_CPPFLAGS =                                        \
>  SPICE_GTK_LDFLAGS_COMMON =             \
>         -version-info 4:0:0             \
>         -no-undefined                   \
> -       $(VERSION_LDFLAGS)              \
> +       $(GTK_VERSION_LDFLAGS)          \
>         $(NULL)
>
>  SPICE_GTK_LIBADD_COMMON =              \
> @@ -169,7 +171,7 @@ nodist_libspice_client_gtkinclude_HEADERS = \
>  libspice_client_glib_2_0_la_LDFLAGS =  \
>         -version-info 8:0:0             \
>         -no-undefined                   \
> -       $(VERSION_LDFLAGS)              \
> +       $(GLIB_VERSION_LDFLAGS)         \
>         $(NULL)
>
>  libspice_client_glib_2_0_la_LIBADD =                                   \
> @@ -637,12 +639,16 @@ typelibs_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
>  CLEANFILES += $(gir_DATA) $(typelibs_DATA)
>  endif
>
> -update-map-file:
> +update-symbol-files:
>         ( echo "SPICEGTK_1 {" ; \
>           echo "global:" ; \
>           ctags -f - --c-kinds=p $(libspice_client_gtkinclude_HEADERS) $(nodist_libspice_client_gtkinclude_HEADERS) $(libspice_client_glibinclude_HEADERS) $(nodist_libspice_client_glibinclude_HEADERS) | awk '/^spice_/ { print $$1 ";" }' | sort ; \
>           echo "local:" ;  \
>           echo "*;" ; \
>           echo "};" ) > $(srcdir)/map-file
> +       ( ctags -f - --c-kinds=p $(libspice_client_glibinclude_HEADERS) $(nodist_libspice_client_glibinclude_HEADERS) | awk '/^spice_/ { print $$1 }' | sort ; \
> +       ) > $(srcdir)/spice-glib-sym-file
> +       ( ctags -f - --c-kinds=p $(libspice_client_gtkinclude_HEADERS) $(nodist_libspice_client_gtkinclude_HEADERS) | awk '/^spice_/ { print $$1 }' | sort ; \
> +       ) > $(srcdir)/spice-gtk-sym-file
>
>  -include $(top_srcdir)/git.mk
> diff --git a/gtk/spice-glib-sym-file b/gtk/spice-glib-sym-file
> new file mode 100644
> index 0000000..2c7c33a
> --- /dev/null
> +++ b/gtk/spice-glib-sym-file
> @@ -0,0 +1,78 @@
> +spice_audio_get
> +spice_audio_get_type
> +spice_audio_new
> +spice_channel_connect
> +spice_channel_destroy
> +spice_channel_disconnect
> +spice_channel_event_get_type
> +spice_channel_get_type
> +spice_channel_new
> +spice_channel_open_fd
> +spice_channel_set_capability
> +spice_channel_test_capability
> +spice_channel_test_common_capability
> +spice_channel_type_to_string
> +spice_client_error_quark
> +spice_cursor_channel_get_type
> +spice_display_channel_get_type
> +spice_display_get_primary
> +spice_get_option_group
> +spice_g_signal_connect_object
> +spice_inputs_button_press
> +spice_inputs_button_release
> +spice_inputs_channel_get_type
> +spice_inputs_key_press
> +spice_inputs_key_release
> +spice_inputs_lock_get_type
> +spice_inputs_motion
> +spice_inputs_position
> +spice_inputs_set_key_locks
> +spice_main_agent_test_capability
> +spice_main_channel_get_type
> +spice_main_clipboard_grab
> +spice_main_clipboard_notify
> +spice_main_clipboard_release
> +spice_main_clipboard_request
> +spice_main_clipboard_selection_grab
> +spice_main_clipboard_selection_notify
> +spice_main_clipboard_selection_release
> +spice_main_clipboard_selection_request
> +spice_main_send_monitor_config
> +spice_main_set_display
> +spice_main_set_display_enabled
> +spice_playback_channel_get_type
> +spice_playback_channel_set_delay
> +spice_record_channel_get_type
> +spice_record_send_data
> +spice_session_connect
> +spice_session_disconnect
> +spice_session_get_channels
> +spice_session_get_read_only
> +spice_session_get_type
> +spice_session_has_channel_type
> +spice_session_migration_get_type
> +spice_session_new
> +spice_session_open_fd
> +spice_session_verify_get_type
> +spice_set_session_option
> +spice_smartcard_channel_get_type
> +spice_smartcard_manager_get
> +spice_smartcard_manager_get_type
> +spice_smartcard_manager_insert_card
> +spice_smartcard_manager_remove_card
> +spice_smartcard_reader_get_type
> +spice_smartcard_reader_is_software
> +spice_usb_device_get_description
> +spice_usb_device_get_type
> +spice_usb_device_manager_can_redirect_device
> +spice_usb_device_manager_connect_device_async
> +spice_usb_device_manager_connect_device_finish
> +spice_usb_device_manager_disconnect_device
> +spice_usb_device_manager_get
> +spice_usb_device_manager_get_devices
> +spice_usb_device_manager_get_type
> +spice_usb_device_manager_is_device_connected
> +spice_usbredir_channel_get_type
> +spice_util_get_debug
> +spice_util_get_version_string
> +spice_util_set_debug
> diff --git a/gtk/spice-gtk-sym-file b/gtk/spice-gtk-sym-file
> new file mode 100644
> index 0000000..1574e07
> --- /dev/null
> +++ b/gtk/spice-gtk-sym-file
> @@ -0,0 +1,23 @@
> +spice_display_copy_to_guest
> +spice_display_get_grab_keys
> +spice_display_get_pixbuf
> +spice_display_get_type
> +spice_display_key_event_get_type
> +spice_display_mouse_ungrab
> +spice_display_new
> +spice_display_new_with_monitor
> +spice_display_paste_from_guest
> +spice_display_send_keys
> +spice_display_set_grab_keys
> +spice_grab_sequence_as_string
> +spice_grab_sequence_copy
> +spice_grab_sequence_free
> +spice_grab_sequence_get_type
> +spice_grab_sequence_new
> +spice_grab_sequence_new_from_string
> +spice_gtk_session_copy_to_guest
> +spice_gtk_session_get
> +spice_gtk_session_get_type
> +spice_gtk_session_paste_from_guest
> +spice_usb_device_widget_get_type
> +spice_usb_device_widget_new
> --
> 1.7.11.2
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel



-- 
Marc-André Lureau


More information about the Spice-devel mailing list