From: Dmitry Eremin-Solenikov <dmitry.ereminsoleni...@linaro.org> For ABI-compat case provide version script declaring all public symbols (and their versions). For now all symbols are reset to version 1.17 (latest public release). API and ABI checking will be set up to ease maintaining of version script.
Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsoleni...@linaro.org> --- /** Email created from pull request 449 (lumag:visibility) ** https://github.com/Linaro/odp/pull/449 ** Patch: https://github.com/Linaro/odp/pull/449.patch ** Base sha: 5865787680be13b47b777e8b0b64646755be41e0 ** Merge commit sha: cc979019373b81a80e9e7c7c417ce9557932d6cc **/ platform/Makefile.inc | 6 +- platform/libodp-linux.map | 600 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 605 insertions(+), 1 deletion(-) create mode 100644 platform/libodp-linux.map diff --git a/platform/Makefile.inc b/platform/Makefile.inc index 813ad97e0..516a1e4b2 100644 --- a/platform/Makefile.inc +++ b/platform/Makefile.inc @@ -8,8 +8,12 @@ lib_LTLIBRARIES = $(LIB)/libodp-linux.la AM_LDFLAGS = -version-number '$(ODP_LIBSO_VERSION)' +VERSION_SCRIPT = $(srcdir)/../libodp-linux.map +EXTRA_DIST = $(VERSION_SCRIPT) + if ODP_ABI_COMPAT -AM_LDFLAGS += -export-symbols-regex '^(_deprecated)?odp_' +AM_LDFLAGS += -Wl,--version-script=$(VERSION_SCRIPT) +EXTRA___LIB__libodp_linux_la_DEPENDENCIES = $(VERSION_SCRIPT) else AM_LDFLAGS += -export-symbols-regex '^(_deprecated)?_?odp_' endif diff --git a/platform/libodp-linux.map b/platform/libodp-linux.map new file mode 100644 index 000000000..868a5e3ad --- /dev/null +++ b/platform/libodp-linux.map @@ -0,0 +1,600 @@ +LIBODP_LINUX_1.17 { + global: + odp_atomic_add_rel_u32; + odp_atomic_add_rel_u64; + odp_atomic_add_u32; + odp_atomic_add_u64; + odp_atomic_cas_acq_rel_u32; + odp_atomic_cas_acq_rel_u64; + odp_atomic_cas_acq_u32; + odp_atomic_cas_acq_u64; + odp_atomic_cas_rel_u32; + odp_atomic_cas_rel_u64; + odp_atomic_cas_u32; + odp_atomic_cas_u64; + odp_atomic_dec_u32; + odp_atomic_dec_u64; + odp_atomic_fetch_add_u32; + odp_atomic_fetch_add_u64; + odp_atomic_fetch_dec_u32; + odp_atomic_fetch_dec_u64; + odp_atomic_fetch_inc_u32; + odp_atomic_fetch_inc_u64; + odp_atomic_fetch_sub_u32; + odp_atomic_fetch_sub_u64; + odp_atomic_inc_u32; + odp_atomic_inc_u64; + odp_atomic_init_u32; + odp_atomic_init_u64; + odp_atomic_load_acq_u32; + odp_atomic_load_acq_u64; + odp_atomic_load_u32; + odp_atomic_load_u64; + odp_atomic_lock_free_u64; + odp_atomic_max_u32; + odp_atomic_max_u64; + odp_atomic_min_u32; + odp_atomic_min_u64; + odp_atomic_store_rel_u32; + odp_atomic_store_rel_u64; + odp_atomic_store_u32; + odp_atomic_store_u64; + odp_atomic_sub_rel_u32; + odp_atomic_sub_rel_u64; + odp_atomic_sub_u32; + odp_atomic_sub_u64; + odp_atomic_xchg_u32; + odp_atomic_xchg_u64; + odp_barrier_init; + odp_barrier_wait; + odp_be_to_cpu_16; + odp_be_to_cpu_32; + odp_be_to_cpu_64; + odp_buffer_addr; + odp_buffer_alloc; + odp_buffer_alloc_multi; + odp_buffer_free; + odp_buffer_free_multi; + odp_buffer_from_event; + odp_buffer_is_valid; + odp_buffer_pool; + odp_buffer_print; + odp_buffer_size; + odp_buffer_to_event; + odp_buffer_to_u64; + odp_chksum_ones_comp16; + odp_cls_capability; + odp_cls_cos_create; + odp_cls_cos_num_queue; + odp_cls_cos_param_init; + odp_cls_cos_pool; + odp_cls_cos_pool_set; + odp_cls_cos_queues; + odp_cls_pmr_create; + odp_cls_pmr_destroy; + odp_cls_pmr_param_init; + odp_cos_destroy; + odp_cos_drop; + odp_cos_drop_set; + odp_cos_queue; + odp_cos_queue_set; + odp_cos_to_u64; + odp_cos_with_l2_priority; + odp_cos_with_l3_qos; + odp_cpu_count; + odp_cpu_cycles; + odp_cpu_cycles_diff; + odp_cpu_cycles_max; + odp_cpu_cycles_resolution; + odp_cpu_hz; + odp_cpu_hz_id; + odp_cpu_hz_max; + odp_cpu_hz_max_id; + odp_cpu_id; + odp_cpumask_all_available; + odp_cpumask_and; + odp_cpumask_clr; + odp_cpumask_copy; + odp_cpumask_count; + odp_cpumask_default_control; + odp_cpumask_default_worker; + odp_cpumask_equal; + odp_cpumask_first; + odp_cpumask_from_str; + odp_cpumask_isset; + odp_cpumask_last; + odp_cpumask_next; + odp_cpumask_or; + odp_cpumask_set; + odp_cpumask_setall; + odp_cpumask_to_str; + odp_cpumask_xor; + odp_cpumask_zero; + odp_cpu_model_str; + odp_cpu_model_str_id; + odp_cpu_to_be_16; + odp_cpu_to_be_32; + odp_cpu_to_be_64; + odp_cpu_to_le_16; + odp_cpu_to_le_32; + odp_cpu_to_le_64; + odp_crypto_auth_capability; + odp_crypto_capability; + odp_crypto_cipher_capability; + odp_crypto_compl_free; + odp_crypto_compl_from_event; + odp_crypto_compl_result; + odp_crypto_compl_to_event; + odp_crypto_compl_to_u64; + odp_crypto_op; + odp_crypto_op_enq; + odp_crypto_operation; + odp_crypto_packet_from_event; + odp_crypto_packet_to_event; + odp_crypto_result; + odp_crypto_session_create; + odp_crypto_session_destroy; + odp_crypto_session_param_init; + odp_crypto_session_to_u64; + odp_errno; + odp_errno_print; + odp_errno_str; + odp_errno_zero; + odp_event_filter_packet; + odp_event_free; + odp_event_free_multi; + odp_event_free_sp; + odp_event_subtype; + odp_event_to_u64; + odp_event_type; + odp_event_type_multi; + odp_event_types; + odp_hash_crc32c; + odp_init_global; + odp_init_local; + odp_init_param_init; + odp_ipsec_auth_capability; + odp_ipsec_capability; + odp_ipsec_cipher_capability; + odp_ipsec_config; + odp_ipsec_config_init; + odp_ipsec_in; + odp_ipsec_in_enq; + odp_ipsec_out; + odp_ipsec_out_enq; + odp_ipsec_out_inline; + odp_ipsec_packet_from_event; + odp_ipsec_packet_to_event; + odp_ipsec_result; + odp_ipsec_sa_context; + odp_ipsec_sa_create; + odp_ipsec_sa_destroy; + odp_ipsec_sa_disable; + odp_ipsec_sa_mtu_update; + odp_ipsec_sa_param_init; + odp_ipsec_sa_to_u64; + odp_ipsec_status; + odp_le_to_cpu_16; + odp_le_to_cpu_32; + odp_le_to_cpu_64; + odp_mb_acquire; + odp_mb_full; + odp_mb_release; + odp_memcmp; + odp_memcpy; + odp_memset; + odp_override_abort; + odp_override_log; + odp_packet_add_data; + odp_packet_align; + odp_packet_alloc; + odp_packet_alloc_multi; + odp_packet_buf_len; + odp_packet_color; + odp_packet_color_set; + odp_packet_concat; + odp_packet_copy; + odp_packet_copy_data; + odp_packet_copy_from_mem; + odp_packet_copy_from_pkt; + odp_packet_copy_part; + odp_packet_copy_to_mem; + odp_packet_data; + odp_packet_drop_eligible; + odp_packet_drop_eligible_set; + odp_packet_extend_head; + odp_packet_extend_tail; + odp_packet_first_seg; + odp_packet_flow_hash; + odp_packet_flow_hash_set; + odp_packet_free; + odp_packet_free_multi; + odp_packet_free_sp; + odp_packet_from_event; + odp_packet_from_event_multi; + odp_packet_has_arp; + odp_packet_has_arp_set; + odp_packet_has_error; + odp_packet_has_eth; + odp_packet_has_eth_bcast; + odp_packet_has_eth_bcast_set; + odp_packet_has_eth_mcast; + odp_packet_has_eth_mcast_set; + odp_packet_has_eth_set; + odp_packet_has_flow_hash; + odp_packet_has_flow_hash_clr; + odp_packet_has_icmp; + odp_packet_has_icmp_set; + odp_packet_has_ip_bcast; + odp_packet_has_ip_bcast_set; + odp_packet_has_ipfrag; + odp_packet_has_ipfrag_set; + odp_packet_has_ip_mcast; + odp_packet_has_ip_mcast_set; + odp_packet_has_ipopt; + odp_packet_has_ipopt_set; + odp_packet_has_ipsec; + odp_packet_has_ipsec_set; + odp_packet_has_ipv4; + odp_packet_has_ipv4_set; + odp_packet_has_ipv6; + odp_packet_has_ipv6_set; + odp_packet_has_jumbo; + odp_packet_has_jumbo_set; + odp_packet_has_l2; + odp_packet_has_l2_error; + odp_packet_has_l2_set; + odp_packet_has_l3; + odp_packet_has_l3_error; + odp_packet_has_l3_set; + odp_packet_has_l4; + odp_packet_has_l4_error; + odp_packet_has_l4_set; + odp_packet_has_ref; + odp_packet_has_sctp; + odp_packet_has_sctp_set; + odp_packet_has_tcp; + odp_packet_has_tcp_set; + odp_packet_has_ts; + odp_packet_has_ts_clr; + odp_packet_has_udp; + odp_packet_has_udp_set; + odp_packet_has_vlan; + odp_packet_has_vlan_qinq; + odp_packet_has_vlan_qinq_set; + odp_packet_has_vlan_set; + odp_packet_head; + odp_packet_headroom; + odp_packet_input; + odp_packet_input_index; + odp_packet_is_segmented; + odp_packet_is_valid; + odp_packet_l2_offset; + odp_packet_l2_offset_set; + odp_packet_l2_ptr; + odp_packet_l3_chksum_insert; + odp_packet_l3_chksum_status; + odp_packet_l3_offset; + odp_packet_l3_offset_set; + odp_packet_l3_ptr; + odp_packet_l4_chksum_insert; + odp_packet_l4_chksum_status; + odp_packet_l4_offset; + odp_packet_l4_offset_set; + odp_packet_l4_ptr; + odp_packet_last_seg; + odp_packet_len; + odp_packet_move_data; + odp_packet_next_seg; + odp_packet_num_segs; + odp_packet_offset; + odp_packet_ones_comp; + odp_packet_parse; + odp_packet_parse_multi; + odp_packet_pool; + odp_packet_prefetch; + odp_packet_print; + odp_packet_print_data; + odp_packet_pull_head; + odp_packet_pull_tail; + odp_packet_push_head; + odp_packet_push_tail; + odp_packet_ref; + odp_packet_ref_pkt; + odp_packet_ref_static; + odp_packet_rem_data; + odp_packet_reset; + odp_packet_seg_data; + odp_packet_seg_data_len; + odp_packet_seg_len; + odp_packet_seg_to_u64; + odp_packet_shaper_len_adjust; + odp_packet_shaper_len_adjust_set; + odp_packet_split; + odp_packet_tail; + odp_packet_tailroom; + odp_packet_to_event; + odp_packet_to_event_multi; + odp_packet_to_u64; + odp_packet_trunc_head; + odp_packet_trunc_tail; + odp_packet_ts; + odp_packet_ts_set; + odp_packet_user_area; + odp_packet_user_area_size; + odp_packet_user_ptr; + odp_packet_user_ptr_set; + odp_pktin_event_queue; + odp_pktin_maxlen; + odp_pktin_queue; + odp_pktin_queue_config; + odp_pktin_queue_param_init; + odp_pktin_recv; + odp_pktin_recv_mq_tmo; + odp_pktin_recv_tmo; + odp_pktin_ts_from_ns; + odp_pktin_ts_res; + odp_pktin_wait_time; + odp_pktio_capability; + odp_pktio_close; + odp_pktio_config; + odp_pktio_config_init; + odp_pktio_default_cos_set; + odp_pktio_error_cos_set; + odp_pktio_headroom_set; + odp_pktio_index; + odp_pktio_info; + odp_pktio_link_status; + odp_pktio_lookup; + odp_pktio_mac_addr; + odp_pktio_mac_addr_set; + odp_pktio_max_index; + odp_pktio_open; + odp_pktio_param_init; + odp_pktio_print; + odp_pktio_promisc_mode; + odp_pktio_promisc_mode_set; + odp_pktio_skip_set; + odp_pktio_start; + odp_pktio_stats; + odp_pktio_stats_reset; + odp_pktio_stop; + odp_pktio_to_u64; + odp_pktout_event_queue; + odp_pktout_maxlen; + odp_pktout_queue; + odp_pktout_queue_config; + odp_pktout_queue_param_init; + odp_pktout_send; + odp_pmr_to_u64; + odp_pool_capability; + odp_pool_create; + odp_pool_destroy; + odp_pool_info; + odp_pool_lookup; + odp_pool_param_init; + odp_pool_print; + odp_pool_to_u64; + odp_queue_capability; + odp_queue_context; + odp_queue_context_set; + odp_queue_create; + odp_queue_deq; + odp_queue_deq_multi; + odp_queue_destroy; + odp_queue_enq; + odp_queue_enq_multi; + odp_queue_info; + odp_queue_lock_count; + odp_queue_lookup; + odp_queue_param_init; + odp_queue_sched_group; + odp_queue_sched_prio; + odp_queue_sched_type; + odp_queue_to_u64; + odp_queue_type; + odp_random_data; + odp_random_max_kind; + odp_random_test_data; + odp_rwlock_init; + odp_rwlock_read_lock; + odp_rwlock_read_trylock; + odp_rwlock_read_unlock; + odp_rwlock_recursive_init; + odp_rwlock_recursive_read_lock; + odp_rwlock_recursive_read_trylock; + odp_rwlock_recursive_read_unlock; + odp_rwlock_recursive_write_lock; + odp_rwlock_recursive_write_trylock; + odp_rwlock_recursive_write_unlock; + odp_rwlock_write_lock; + odp_rwlock_write_trylock; + odp_rwlock_write_unlock; + odp_schedule; + odp_schedule_group_create; + odp_schedule_group_destroy; + odp_schedule_group_info; + odp_schedule_group_join; + odp_schedule_group_leave; + odp_schedule_group_lookup; + odp_schedule_group_thrmask; + odp_schedule_multi; + odp_schedule_num_prio; + odp_schedule_order_lock; + odp_schedule_order_unlock; + odp_schedule_order_unlock_lock; + odp_schedule_pause; + odp_schedule_prefetch; + odp_schedule_release_atomic; + odp_schedule_release_ordered; + odp_schedule_resume; + odp_schedule_wait_time; + odp_shm_addr; + odp_shm_capability; + odp_shm_free; + odp_shm_import; + odp_shm_info; + odp_shm_lookup; + odp_shm_print; + odp_shm_print_all; + odp_shm_reserve; + odp_shm_to_u64; + odp_spinlock_init; + odp_spinlock_is_locked; + odp_spinlock_lock; + odp_spinlock_recursive_init; + odp_spinlock_recursive_is_locked; + odp_spinlock_recursive_lock; + odp_spinlock_recursive_trylock; + odp_spinlock_recursive_unlock; + odp_spinlock_trylock; + odp_spinlock_unlock; + odp_sys_cache_line_size; + odp_sys_huge_page_size; + odp_sys_huge_page_size_all; + odp_sys_info_print; + odp_sys_page_size; + odp_term_global; + odp_term_local; + odp_thread_count; + odp_thread_count_max; + odp_thread_id; + odp_thread_type; + odp_thrmask_and; + odp_thrmask_clr; + odp_thrmask_control; + odp_thrmask_copy; + odp_thrmask_count; + odp_thrmask_equal; + odp_thrmask_first; + odp_thrmask_from_str; + odp_thrmask_isset; + odp_thrmask_last; + odp_thrmask_next; + odp_thrmask_or; + odp_thrmask_set; + odp_thrmask_setall; + odp_thrmask_to_str; + odp_thrmask_worker; + odp_thrmask_xor; + odp_thrmask_zero; + odp_ticketlock_init; + odp_ticketlock_is_locked; + odp_ticketlock_lock; + odp_ticketlock_trylock; + odp_ticketlock_unlock; + odp_time_cmp; + odp_time_diff; + odp_time_diff_ns; + odp_time_global; + odp_time_global_from_ns; + odp_time_global_res; + odp_time_local; + odp_time_local_from_ns; + odp_time_local_res; + odp_timeout_alloc; + odp_timeout_free; + odp_timeout_fresh; + odp_timeout_from_event; + odp_timeout_tick; + odp_timeout_timer; + odp_timeout_to_event; + odp_timeout_to_u64; + odp_timeout_user_ptr; + odp_timer_alloc; + odp_timer_cancel; + odp_timer_capability; + odp_timer_current_tick; + odp_timer_free; + odp_timer_ns_to_tick; + odp_timer_pool_create; + odp_timer_pool_destroy; + odp_timer_pool_info; + odp_timer_pool_start; + odp_timer_pool_to_u64; + odp_timer_set_abs; + odp_timer_set_rel; + odp_timer_tick_to_ns; + odp_timer_to_u64; + odp_time_sum; + odp_time_to_ns; + odp_time_wait_ns; + odp_time_wait_until; + odp_tm_capabilities; + odp_tm_capability; + odp_tm_create; + odp_tm_destroy; + odp_tm_drop_prec_marking; + odp_tm_ecn_marking; + odp_tm_egress_init; + odp_tm_enq; + odp_tm_enq_with_cnt; + odp_tm_find; + odp_tm_is_idle; + odp_tm_node_connect; + odp_tm_node_context; + odp_tm_node_context_set; + odp_tm_node_create; + odp_tm_node_destroy; + odp_tm_node_disconnect; + odp_tm_node_fanin_info; + odp_tm_node_info; + odp_tm_node_lookup; + odp_tm_node_params_init; + odp_tm_node_sched_config; + odp_tm_node_shaper_config; + odp_tm_node_threshold_config; + odp_tm_node_wred_config; + odp_tm_priority_query; + odp_tm_priority_threshold_config; + odp_tm_queue_connect; + odp_tm_queue_context; + odp_tm_queue_context_set; + odp_tm_queue_create; + odp_tm_queue_destroy; + odp_tm_queue_disconnect; + odp_tm_queue_info; + odp_tm_queue_params_init; + odp_tm_queue_query; + odp_tm_queue_sched_config; + odp_tm_queue_shaper_config; + odp_tm_queue_threshold_config; + odp_tm_queue_wred_config; + odp_tm_requirements_init; + odp_tm_sched_create; + odp_tm_sched_destroy; + odp_tm_sched_lookup; + odp_tm_sched_params_init; + odp_tm_sched_params_read; + odp_tm_sched_params_update; + odp_tm_shaper_create; + odp_tm_shaper_destroy; + odp_tm_shaper_lookup; + odp_tm_shaper_params_init; + odp_tm_shaper_params_read; + odp_tm_shaper_params_update; + odp_tm_stats_print; + odp_tm_threshold_create; + odp_tm_threshold_destroy; + odp_tm_threshold_params_init; + odp_tm_thresholds_lookup; + odp_tm_thresholds_params_read; + odp_tm_thresholds_params_update; + odp_tm_total_query; + odp_tm_total_threshold_config; + odp_tm_vlan_marking; + odp_tm_wred_create; + odp_tm_wred_destroy; + odp_tm_wred_lookup; + odp_tm_wred_params_init; + odp_tm_wred_params_read; + odp_tm_wred_params_update; + odp_version_api_str; + odp_version_impl_name; + odp_version_impl_str; + +local: + *; + + _odp_*; +};