[PATCH] Use a library symbol version map

Jan Engelhardt jengelh at inai.de
Thu Oct 25 07:02:49 PDT 2012


This helps package managers recognize when a new version of libxkbcommon
(with same SONAME) is required due to new symbols.

Signed-off-by: Jan Engelhardt <jengelh at inai.de>
---
 Makefile.am      |    4 +++-
 libxkbcommon.map |   66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 1 deletion(-)
 create mode 100644 libxkbcommon.map

diff --git a/Makefile.am b/Makefile.am
index c08bca1..a50422b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -35,7 +35,9 @@ xkbcommoninclude_HEADERS = \
 	xkbcommon/xkbcommon-names.h
 
 lib_LTLIBRARIES = libxkbcommon.la
-libxkbcommon_la_LDFLAGS = -no-undefined
+libxkbcommon_la_LDFLAGS = \
+	-Wl,--version-script=${srcdir}/libxkbcommon.map \
+	-no-undefined
 libxkbcommon_la_SOURCES = \
 	src/xkbcomp/action.c \
 	src/xkbcomp/action.h \
diff --git a/libxkbcommon.map b/libxkbcommon.map
new file mode 100644
index 0000000..822d985
--- /dev/null
+++ b/libxkbcommon.map
@@ -0,0 +1,66 @@
+XKBCOMMON_0.2.0 {
+global:
+	xkb_keysym_get_name;
+	xkb_keysym_from_name;
+	xkb_keysym_to_utf8;
+	xkb_keysym_to_utf32;
+	xkb_context_new;
+	xkb_context_ref;
+	xkb_context_unref;
+	xkb_context_set_user_data;
+	xkb_context_get_user_data;
+	xkb_context_include_path_append;
+	xkb_context_include_path_append_default;
+	xkb_context_include_path_reset_defaults;
+	xkb_context_include_path_clear;
+	xkb_context_num_include_paths;
+	xkb_context_include_path_get;
+	xkb_context_set_log_level;
+	xkb_context_get_log_level;
+	xkb_context_set_log_verbosity;
+	xkb_context_get_log_verbosity;
+	xkb_context_set_log_fn;
+	xkb_keymap_new_from_names;
+	xkb_keymap_new_from_file;
+	xkb_keymap_new_from_string;
+	xkb_keymap_ref;
+	xkb_keymap_unref;
+	xkb_keymap_get_as_string;
+	xkb_keymap_num_mods;
+	xkb_keymap_mod_get_name;
+	xkb_keymap_mod_get_index;
+	xkb_keymap_num_layouts;
+	xkb_keymap_layout_get_name;
+	xkb_keymap_layout_get_index;
+	xkb_keymap_num_layouts_for_key;
+	xkb_keymap_num_levels_for_key;
+	xkb_keymap_key_get_syms_by_level;
+	xkb_keymap_num_leds;
+	xkb_keymap_led_get_name;
+	xkb_keymap_led_get_index;
+	xkb_keymap_key_repeats;
+	xkb_state_new;
+	xkb_state_ref;
+	xkb_state_unref;
+	xkb_state_get_keymap;
+	xkb_state_update_key;
+	xkb_state_key_get_syms;
+	xkb_state_key_get_one_sym;
+	xkb_state_key_get_layout;
+	xkb_state_key_get_level;
+	xkb_state_update_mask;
+	xkb_state_serialize_mods;
+	xkb_state_serialize_layout;
+	xkb_state_mod_name_is_active;
+	xkb_state_mod_names_are_active;
+	xkb_state_mod_index_is_active;
+	xkb_state_mod_indices_are_active;
+	xkb_state_mod_index_is_consumed;
+	xkb_state_mod_mask_remove_consumed;
+	xkb_state_layout_name_is_active;
+	xkb_state_layout_index_is_active;
+	xkb_state_led_name_is_active;
+	xkb_state_led_index_is_active;
+local:
+	*;
+};
-- 
1.7.10.4



More information about the wayland-devel mailing list