[PATCH 2/2] build: use symbol versioning

Jonas Ådahl jadahl at gmail.com
Thu Sep 11 13:55:43 PDT 2014


On Wed, Sep 10, 2014 at 01:32:25AM +0200, Jan Engelhardt wrote:
> Symbol versions provide a means by which ELF utilities can determine
> whether a program is incompatible with a too-old library version so
> that package management tools can autodetect version-based
> dependencies and suggest upgrade paths.

This sounds like a good idea. I have not pushed it yet though because
I'd want to avoid adding the symbols that will be deprecated in the
coming release (libinput_device_get_keys and libinput_device_calibrate).

Jonas

> 
> Signed-off-by: Jan Engelhardt <jengelh at inai.de>
> ---
>  src/Makefile.am  |  3 +-
>  src/libinput.map | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 89 insertions(+), 1 deletion(-)
>  create mode 100644 src/libinput.map
> 
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 44e73d3..629ce49 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -34,7 +34,8 @@ libinput_la_CFLAGS = -I$(top_srcdir)/include \
>  		     $(LIBEVDEV_CFLAGS)	\
>  		     $(GCC_CFLAGS)
>  
> -libinput_la_LDFLAGS = -version-info $(LIBINPUT_LT_VERSION) -shared
> +libinput_la_LDFLAGS = -version-info $(LIBINPUT_LT_VERSION) -shared \
> +                      -Wl,--version-script=$(srcdir)/libinput.map
>  
>  pkgconfigdir = $(libdir)/pkgconfig
>  pkgconfig_DATA = libinput.pc
> diff --git a/src/libinput.map b/src/libinput.map
> new file mode 100644
> index 0000000..414dbd2
> --- /dev/null
> +++ b/src/libinput.map
> @@ -0,0 +1,87 @@
> +V_0.5.0 {
> +global:
> +	libinput_event_destroy;
> +	libinput_event_get_type;
> +	libinput_event_get_context;
> +	libinput_event_get_device;
> +	libinput_event_get_pointer_event;
> +	libinput_event_get_keyboard_event;
> +	libinput_event_get_touch_event;
> +	libinput_event_get_device_notify_event;
> +	libinput_event_device_notify_get_base_event;
> +	libinput_event_keyboard_get_time;
> +	libinput_event_keyboard_get_key;
> +	libinput_event_keyboard_get_key_state;
> +	libinput_event_keyboard_get_base_event;
> +	libinput_event_keyboard_get_seat_key_count;
> +	libinput_event_pointer_get_time;
> +	libinput_event_pointer_get_dx;
> +	libinput_event_pointer_get_dy;
> +	libinput_event_pointer_get_absolute_x;
> +	libinput_event_pointer_get_absolute_y;
> +	libinput_event_pointer_get_absolute_x_transformed;
> +	libinput_event_pointer_get_absolute_y_transformed;
> +	libinput_event_pointer_get_button;
> +	libinput_event_pointer_get_button_state;
> +	libinput_event_pointer_get_seat_button_count;
> +	libinput_event_pointer_get_axis;
> +	libinput_event_pointer_get_axis_value;
> +	libinput_event_pointer_get_base_event;
> +	libinput_event_touch_get_time;
> +	libinput_event_touch_get_slot;
> +	libinput_event_touch_get_seat_slot;
> +	libinput_event_touch_get_x;
> +	libinput_event_touch_get_y;
> +	libinput_event_touch_get_x_transformed;
> +	libinput_event_touch_get_y_transformed;
> +	libinput_event_touch_get_base_event;
> +	libinput_udev_create_context;
> +	libinput_udev_assign_seat;
> +	libinput_path_create_context;
> +	libinput_path_add_device;
> +	libinput_path_remove_device;
> +	libinput_get_fd;
> +	libinput_dispatch;
> +	libinput_get_event;
> +	libinput_next_event_type;
> +	libinput_get_user_data;
> +	libinput_resume;
> +	libinput_suspend;
> +	libinput_ref;
> +	libinput_unref;
> +	libinput_log_set_priority;
> +	libinput_log_get_priority;
> +	libinput_log_set_handler;
> +	libinput_seat_ref;
> +	libinput_seat_unref;
> +	libinput_seat_set_user_data;
> +	libinput_seat_get_user_data;
> +	libinput_seat_get_physical_name;
> +	libinput_seat_get_logical_name;
> +	libinput_device_ref;
> +	libinput_device_unref;
> +	libinput_device_set_user_data;
> +	libinput_device_get_user_data;
> +	libinput_device_get_sysname;
> +	libinput_device_get_name;
> +	libinput_device_get_id_product;
> +	libinput_device_get_id_vendor;
> +	libinput_device_get_output_name;
> +	libinput_device_get_seat;
> +	libinput_device_led_update;
> +	libinput_device_get_keys;
> +	libinput_device_calibrate;
> +	libinput_device_has_capability;
> +	libinput_device_get_size;
> +	libinput_config_status_to_str;
> +	libinput_device_config_tap_get_finger_count;
> +	libinput_device_config_tap_set_enabled;
> +	libinput_device_config_tap_get_enabled;
> +	libinput_device_config_tap_get_default_enabled;
> +	libinput_device_config_calibration_has_matrix;
> +	libinput_device_config_calibration_set_matrix;
> +	libinput_device_config_calibration_get_matrix;
> +	libinput_device_config_calibration_get_default_matrix;
> +local:
> +	*;
> +};
> -- 
> 2.0.0
> 


More information about the wayland-devel mailing list