diff --git a/meson.build b/meson.build index 2fc78d33..d5ae7863 100644 --- a/meson.build +++ b/meson.build @@ -140,6 +140,8 @@ wlr_deps += [ math, ] +symbols_file = 'wlroots.syms' +symbols_flag = '-Wl,--version-script,@0@/@1@'.format(meson.current_source_dir(), symbols_file) lib_wlr = library( meson.project_name(), version: '.'.join(so_version), @@ -147,6 +149,7 @@ lib_wlr = library( dependencies: wlr_deps, include_directories: wlr_inc, install: true, + link_args : symbols_flag, ) wlroots = declare_dependency( diff --git a/wlroots.syms b/wlroots.syms new file mode 100644 index 00000000..93d6fe51 --- /dev/null +++ b/wlroots.syms @@ -0,0 +1,49 @@ +WLROOTS_0_0_0 { + global: + wlr_*; + _wlr_log; + local: + wlr_data_device_keyboard_drag_interface; + wlr_data_device_pointer_drag_interface; + wlr_data_device_touch_drag_interface; + wlr_drm_backend_get_session; + wlr_drm_check_features; + wlr_drm_connector_cleanup; + wlr_drm_connector_start_renderer; + wlr_drm_event; + wlr_drm_get_connector_props; + wlr_drm_get_crtc_props; + wlr_drm_get_plane_props; + wlr_drm_get_prop; + wlr_drm_get_prop_blob; + wlr_drm_plane_surfaces_init; + wlr_drm_renderer_finish; + wlr_drm_renderer_init; + wlr_drm_resources_free; + wlr_drm_resources_init; + wlr_drm_restore_outputs; + wlr_drm_scan_connectors; + wlr_drm_surface_finish; + wlr_drm_surface_get_front; + wlr_drm_surface_init; + wlr_drm_surface_make_current; + wlr_drm_surface_mgpu_copy; + wlr_drm_surface_post; + wlr_drm_surface_swap_buffers; + wlr_egl_get_buffer_age; + wlr_libinput_event; + wlr_libinput_keyboard_create; + wlr_libinput_pointer_create; + wlr_libinput_tablet_pad_create; + wlr_libinput_tablet_tool_create; + wlr_libinput_touch_create; + wlr_log_stderr; + wlr_signal_emit_safe; + wlr_subsurface_destroy; + wlr_wl_output_for_surface; + wlr_wl_output_layout_get_box; + wlr_wl_output_move_cursor; + wlr_wl_output_update_cursor; + wlr_wl_registry_poll; + *; +};