On Thu, Oct 25, 2012 at 04:02:49PM +0200, Jan Engelhardt wrote: > This helps package managers recognize when a new version of libxkbcommon > (with same SONAME) is required due to new symbols.
This seems like a good thing to me. But you left out the symbols in src/compat.c, which provides some ABI backwards compatibility. But since xkbcommon-compat.h does the rewriting to the new symbols, and the new release broke API and ABI anyway, I say we should just drop this file. So if Daniel agrees, we should just remove src/compat.c, before merging this patch. And we should also really set --version-info... But that's a different story. [One comment below] > Signed-off-by: Jan Engelhardt <jeng...@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 Would you mind adding -Wl,--no-undefined-version here, also? It checks the case where you remove a symbol from the code, but not from the version map (which of course shouldn't happen, but still). If there's also a way to make it warn about new symbols which are XKB_EXPORT'ed but are not mentioned in the map, that would be helpful as well. Thanks, Ran > 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 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel