[dpdk-dev] [PATCH 2/4] Provide initial versioning for all DPDK libraries

Sergio Gonzalez Monroy sergio.gonzalez.monroy at intel.com
Wed Oct 1 13:25:52 CEST 2014


On Mon, Sep 15, 2014 at 03:23:49PM -0400, Neil Horman wrote:
> Add linker version script files to each DPDK library to put a stake in the
> ground from which we can start cleaning up API's
> 
> Signed-off-by: Neil Horman <nhorman at tuxdriver.com>
> CC: Thomas Monjalon <thomas.monjalon at 6wind.com>
> CC: "Richardson, Bruce" <bruce.richardson at intel.com>
> ---
>  lib/librte_acl/Makefile                            |   2 +
>  lib/librte_acl/rte_acl_version.map                 |  19 ++++
>  lib/librte_cfgfile/Makefile                        |   2 +
>  lib/librte_cfgfile/rte_cfgfile_version.map         |  14 +++
>  lib/librte_cmdline/Makefile                        |   2 +
>  lib/librte_cmdline/rte_cmdline_version.map         |  69 +++++++++++++
>  lib/librte_distributor/Makefile                    |   2 +
>  lib/librte_distributor/rte_distributor_version.map |  16 +++
>  lib/librte_eal/bsdapp/eal/Makefile                 |   2 +
>  lib/librte_eal/bsdapp/eal/rte_eal_version.map      |  89 +++++++++++++++++
>  lib/librte_eal/linuxapp/eal/Makefile               |   2 +
>  lib/librte_eal/linuxapp/eal/rte_eal_version.map    |  89 +++++++++++++++++
>  lib/librte_ether/Makefile                          |   2 +
>  lib/librte_ether/rte_ether_version.map             | 108 +++++++++++++++++++++
>  lib/librte_hash/Makefile                           |   2 +
>  lib/librte_hash/rte_hash_version.map               |  18 ++++
>  lib/librte_ip_frag/Makefile                        |   2 +
>  lib/librte_ip_frag/rte_ipfrag_version.map          |  14 +++
>  lib/librte_ivshmem/Makefile                        |   2 +
>  lib/librte_ivshmem/rte_ivshmem_version.map         |  13 +++
>  lib/librte_kni/Makefile                            |   2 +
>  lib/librte_kni/rte_kni_version.map                 |  19 ++++
>  lib/librte_kvargs/Makefile                         |   2 +
>  lib/librte_kvargs/rte_kvargs_version.map           |  10 ++
>  lib/librte_lpm/Makefile                            |   2 +
>  lib/librte_lpm/rte_lpm_version.map                 |  24 +++++
>  lib/librte_malloc/Makefile                         |   2 +
>  lib/librte_malloc/rte_malloc_version.map           |  19 ++++
>  lib/librte_mbuf/Makefile                           |   2 +
>  lib/librte_mbuf/rte_mbuf_version.map               |  12 +++
>  lib/librte_mempool/Makefile                        |   2 +
>  lib/librte_mempool/rte_mempool_version.map         |  18 ++++
>  lib/librte_meter/Makefile                          |   2 +
>  lib/librte_meter/rte_meter_version.map             |  13 +++
>  lib/librte_pipeline/Makefile                       |   2 +
>  lib/librte_pipeline/rte_pipeline_version.map       |  23 +++++
>  lib/librte_pmd_bond/Makefile                       |   2 +
>  lib/librte_pmd_bond/rte_eth_bond_version.map       |  20 ++++
>  lib/librte_pmd_e1000/Makefile                      |   2 +
>  lib/librte_pmd_e1000/rte_pmd_e1000_version.map     |   5 +
>  lib/librte_pmd_i40e/Makefile                       |   2 +
>  lib/librte_pmd_i40e/rte_pmd_i40e_version.map       |   5 +
>  lib/librte_pmd_ixgbe/Makefile                      |   2 +
>  lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map     |   5 +
>  lib/librte_pmd_pcap/Makefile                       |   2 +
>  lib/librte_pmd_pcap/rte_pmd_pcap_version.map       |   5 +
>  lib/librte_pmd_ring/Makefile                       |   2 +
>  lib/librte_pmd_ring/rte_eth_ring.c                 |   2 +-
>  lib/librte_pmd_ring/rte_eth_ring.h                 |   6 --
>  lib/librte_pmd_ring/rte_eth_ring_version.map       |  10 ++
>  lib/librte_pmd_virtio/Makefile                     |   1 +
>  lib/librte_pmd_virtio/rte_pmd_virtio_version.map   |   5 +
>  lib/librte_pmd_vmxnet3/Makefile                    |   2 +
>  lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map |   5 +
>  lib/librte_pmd_xenvirt/Makefile                    |   2 +
>  lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map |   8 ++
>  lib/librte_port/Makefile                           |   2 +
>  lib/librte_port/rte_port_version.map               |  18 ++++
>  lib/librte_power/Makefile                          |   2 +
>  lib/librte_power/rte_power_version.map             |  14 +++
>  lib/librte_ring/Makefile                           |   2 +
>  lib/librte_ring/rte_ring_version.map               |  12 +++
>  lib/librte_sched/Makefile                          |   2 +
>  lib/librte_sched/rte_sched_version.map             |  22 +++++
>  lib/librte_table/Makefile                          |   2 +
>  lib/librte_table/rte_table_version.map             |  22 +++++
>  lib/librte_timer/Makefile                          |   2 +
>  lib/librte_timer/rte_timer_version.map             |  16 +++
>  68 files changed, 825 insertions(+), 7 deletions(-)
>  create mode 100644 lib/librte_acl/rte_acl_version.map
>  create mode 100644 lib/librte_cfgfile/rte_cfgfile_version.map
>  create mode 100644 lib/librte_cmdline/rte_cmdline_version.map
>  create mode 100644 lib/librte_distributor/rte_distributor_version.map
>  create mode 100644 lib/librte_eal/bsdapp/eal/rte_eal_version.map
>  create mode 100644 lib/librte_eal/linuxapp/eal/rte_eal_version.map
>  create mode 100644 lib/librte_ether/rte_ether_version.map
>  create mode 100644 lib/librte_hash/rte_hash_version.map
>  create mode 100644 lib/librte_ip_frag/rte_ipfrag_version.map
>  create mode 100644 lib/librte_ivshmem/rte_ivshmem_version.map
>  create mode 100644 lib/librte_kni/rte_kni_version.map
>  create mode 100644 lib/librte_kvargs/rte_kvargs_version.map
>  create mode 100644 lib/librte_lpm/rte_lpm_version.map
>  create mode 100644 lib/librte_malloc/rte_malloc_version.map
>  create mode 100644 lib/librte_mbuf/rte_mbuf_version.map
>  create mode 100644 lib/librte_mempool/rte_mempool_version.map
>  create mode 100644 lib/librte_meter/rte_meter_version.map
>  create mode 100644 lib/librte_pipeline/rte_pipeline_version.map
>  create mode 100644 lib/librte_pmd_bond/rte_eth_bond_version.map
>  create mode 100644 lib/librte_pmd_e1000/rte_pmd_e1000_version.map
>  create mode 100644 lib/librte_pmd_i40e/rte_pmd_i40e_version.map
>  create mode 100644 lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
>  create mode 100644 lib/librte_pmd_pcap/rte_pmd_pcap_version.map
>  create mode 100644 lib/librte_pmd_ring/rte_eth_ring_version.map
>  create mode 100644 lib/librte_pmd_virtio/rte_pmd_virtio_version.map
>  create mode 100644 lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
>  create mode 100644 lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
>  create mode 100644 lib/librte_port/rte_port_version.map
>  create mode 100644 lib/librte_power/rte_power_version.map
>  create mode 100644 lib/librte_ring/rte_ring_version.map
>  create mode 100644 lib/librte_sched/rte_sched_version.map
>  create mode 100644 lib/librte_table/rte_table_version.map
>  create mode 100644 lib/librte_timer/rte_timer_version.map
> 
> diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile
> index 65e566d..1f96645 100644
> --- a/lib/librte_acl/Makefile
> +++ b/lib/librte_acl/Makefile
> @@ -37,6 +37,8 @@ LIB = librte_acl.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_acl/rte_acl_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_ACL) += tb_mem.c
>  
> diff --git a/lib/librte_acl/rte_acl_version.map b/lib/librte_acl/rte_acl_version.map
> new file mode 100644
> index 0000000..4480690
> --- /dev/null
> +++ b/lib/librte_acl/rte_acl_version.map
> @@ -0,0 +1,19 @@
> +DPDK_1.8 {
> +	global:
> +	rte_acl_create;
> +	rte_acl_find_existing;
> +	rte_acl_free;
> +	rte_acl_add_rules;
> +	rte_acl_reset_rules;
> +	rte_acl_build;
> +	rte_acl_reset;
> +	rte_acl_classify;
> +	rte_acl_dump;
> +	rte_acl_list_dump;
> +	rte_acl_ipv4vlan_add_rules;
> +	rte_acl_ipv4vlan_build;
> +	rte_acl_classify_scalar;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_cfgfile/Makefile b/lib/librte_cfgfile/Makefile
> index 55e8701..e655098 100644
> --- a/lib/librte_cfgfile/Makefile
> +++ b/lib/librte_cfgfile/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_cfgfile.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_cfgfile/rte_cfgfile_version.map
> +
>  #
>  # all source are stored in SRCS-y
>  #
> diff --git a/lib/librte_cfgfile/rte_cfgfile_version.map b/lib/librte_cfgfile/rte_cfgfile_version.map
> new file mode 100644
> index 0000000..10ecea6
> --- /dev/null
> +++ b/lib/librte_cfgfile/rte_cfgfile_version.map
> @@ -0,0 +1,14 @@
> +DPDK_1.8 {
> +	global:
> +	rte_cfgfile_load;
> +	rte_cfgfile_num_sections;
> +	rte_cfgfile_sections;
> +	rte_cfgfile_has_section;
> +	rte_cfgfile_section_num_entries;
> +	rte_cfgfile_section_entries;
> +	rte_cfgfile_get_entry;
> +	rte_cfgfile_has_entry;
> +	rte_cfgfile_close;
> +
> +	local: *;
> +};
> diff --git a/lib/librte_cmdline/Makefile b/lib/librte_cmdline/Makefile
> index 7eae449..1a47173 100644
> --- a/lib/librte_cmdline/Makefile
> +++ b/lib/librte_cmdline/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_cmdline.a
>  
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_cmdline/rte_cmdline_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) := cmdline.c
>  SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_cirbuf.c
> diff --git a/lib/librte_cmdline/rte_cmdline_version.map b/lib/librte_cmdline/rte_cmdline_version.map
> new file mode 100644
> index 0000000..7616eff
> --- /dev/null
> +++ b/lib/librte_cmdline/rte_cmdline_version.map
> @@ -0,0 +1,69 @@
> +DPDK_1.8 {
> +	global:
> +	cmdline_new;
> +	cmdline_set_prompt;
> +	cmdline_free;
> +	cmdline_printf;
> +	cmdline_in;
> +	cmdline_write_char;
> +	cmdline_interact;
> +	cmdline_quit;
> +	cmdline_parse;
> +	cmdline_complete;
> +	cmdline_isendoftoken;
> +	cmdline_parse_num;
> +	cmdline_get_help_num;
> +	cmdline_parse_ipaddr;
> +	cmdline_get_help_ipaddr;
> +	cmdline_parse_etheraddr;
> +	cmdline_get_help_etheraddr;
> +	cmdline_parse_string;
> +	cmdline_complete_get_nb_string;
> +	cmdline_complete_get_elt_string;
> +	cmdline_get_help_string;
> +	cmdline_parse_portlist;
> +	cmdline_get_help_portlist;
> +	cmdline_token_string_ops;
> +	cmdline_token_num_ops;
> +	cmdline_token_string_ops;
> +	cmdline_token_ipaddr_ops;
> +	cmdline_token_etheraddr_ops;
> +	vt100_init;
> +	vt100_parser;
> +	cmdline_file_new;
> +	cmdline_stdin_new;
> +	cmdline_stdin_exit;
> +	cirbuf_init;
> +	cirbuf_add_head_safe;
> +	cirbuf_add_head;
> +	cirbuf_add_tail_safe;
> +	cirbuf_add_tail;
> +	cirbuf_del_head_safe;
> +	cirbuf_del_head;
> +	cirbuf_del_tail_safe;
> +	cirbuf_del_tail;
> +	cirbuf_get_head;
> +	cirbuf_get_tail;
> +	cirbuf_add_buf_head;
> +	cirbuf_add_buf_tail;
> +	cirbuf_del_buf_head;
> +	cirbuf_del_buf_tail;
> +	cirbuf_get_buf_head;
> +	cirbuf_get_buf_tail;
> +	cirbuf_align_left;
> +	cirbuf_align_right;
> +	rdline_init;
> +	rdline_newline;
> +	rdline_stop;
> +	rdline_quit;
> +	rdline_restart;
> +	rdline_redisplay;
> +	rdline_reset;
> +	rdline_char_in;
> +	rdline_get_buffer;
> +	rdline_add_history;
> +	rdline_clear_history;
> +	rdline_get_history_item;
> +
> +	local: *;
> +};
> diff --git a/lib/librte_distributor/Makefile b/lib/librte_distributor/Makefile
> index 36699f8..97d8bbb 100644
> --- a/lib/librte_distributor/Makefile
> +++ b/lib/librte_distributor/Makefile
> @@ -37,6 +37,8 @@ LIB = librte_distributor.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_distributor/rte_distributor_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) := rte_distributor.c
>  
> diff --git a/lib/librte_distributor/rte_distributor_version.map b/lib/librte_distributor/rte_distributor_version.map
> new file mode 100644
> index 0000000..b81ddc8
> --- /dev/null
> +++ b/lib/librte_distributor/rte_distributor_version.map
> @@ -0,0 +1,16 @@
> +DPDK_1.8 {
> +
> +	global:
> +	rte_distributor_create;
> +	rte_distributor_process;
> +	rte_distributor_returned_pkts;
> +	rte_distributor_flush;
> +	rte_distributor_clear_returns;
> +	rte_distributor_get_pkt;
> +	rte_distributor_return_pkt;
> +	rte_distributor_request_pkt;
> +	rte_distributor_poll_pkt;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_eal/bsdapp/eal/Makefile b/lib/librte_eal/bsdapp/eal/Makefile
> index 8f44273..2caaf00 100644
> --- a/lib/librte_eal/bsdapp/eal/Makefile
> +++ b/lib/librte_eal/bsdapp/eal/Makefile
> @@ -45,6 +45,8 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_pmd_ring
>  CFLAGS += -I$(RTE_SDK)/lib/librte_pmd_pcap
>  CFLAGS += $(WERROR_FLAGS) -O3
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_eal/bsdapp/eal/rte_eal_version.map
> +
>  # specific to linuxapp exec-env
>  SRCS-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP) := eal.c
>  SRCS-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP) += eal_memory.c
> diff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map
> new file mode 100644
> index 0000000..71788e1
> --- /dev/null
> +++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map
> @@ -0,0 +1,89 @@
> +DPDK_1.8 {
> +	global:
> +	rte_eal_alarm_set;
> +	rte_eal_alarm_cancel;
> +	rte_exit;
> +	rte_cpu_get_flag_enabled;
> +	rte_cpu_check_supported;
> +	rte_get_tsc_hz;
> +	rte_get_hpet_cycles;
> +	rte_get_hpet_hz;
> +	rte_eal_hpet_init;
> +	rte_delay_us;
> +	rte_dump_stack;
> +	rte_dump_registers;
> +	__rte_panic;
> +	rte_eal_devargs_add;
> +	rte_eal_devargs_type_count;
> +	rte_eal_devargs_dump;
> +	rte_eal_driver_register;
> +	rte_eal_driver_unregister;
> +	rte_eal_dev_init;
> +	rte_eal_init;
> +	rte_set_application_usage_hook;
> +	rte_eal_has_hugepages;
> +	rte_strerror;
> +	rte_hexdump;
> +	rte_memdump;
> +	rte_intr_callback_register;
> +	rte_intr_callback_unregister;
> +	rte_intr_enable;
> +	rte_intr_disable;
> +	rte_eal_remote_launch;
> +	rte_eal_mp_remote_launch;
> +	rte_eal_get_lcore_state;
> +	rte_eal_wait_lcore;
> +	rte_eal_mp_wait_lcore;
> +	rte_openlog_stream;
> +	rte_set_log_level;
> +	rte_set_log_type;
> +	rte_log_cur_msg_loglevel;
> +	rte_log_cur_msg_logtype;
> +	rte_log_set_history;
> +	rte_log_dump_history;
> +	rte_log_add_in_history;
> +	rte_log;
> +	rte_vlog;
> +	rte_mem_lock_page;
> +	rte_mem_virt2phy;
> +	rte_eal_get_physmem_layout;
> +	rte_dump_physmem_layout;
> +	rte_eal_get_physmem_size;
> +	rte_memory_get_nchannel;
> +	rte_memory_get_nrank;
> +	rte_mem_phy2mch;
> +	rte_xen_dom0_memory_init;
> +	rte_xen_dom0_memory_attach;
> +	rte_memzone_reserve;
> +	rte_memzone_reserve_aligned;
> +	rte_memzone_reserve_bounded;
> +	rte_memzone_lookup;
> +	rte_memzone_dump;
> +	rte_memzone_walk;
> +	rte_eal_pci_probe;
> +	rte_eal_pci_dump;
> +	rte_eal_pci_register;
> +	rte_eal_pci_unregister;
> +	rte_snprintf;
> +	rte_strsplit;
> +	rte_eal_tailq_reserve;
> +	rte_eal_tailq_reserve_by_idx;
> +	rte_dump_tailq;
> +	rte_eal_tailq_lookup;
> +	rte_eal_tailq_lookup_by_idx;
> +	lcore_config;
> +	per_lcore__lcore_id;
> +	eal_timer_source;
> +	rte_cycles_vmware_tsc_map;
> +	rte_eal_get_configuration;
> +	rte_logs;
> +	rte_eal_lcore_role;
> +	test_mp_secondary;
> +	rte_eal_process_type;
> +	per_lcore__rte_errno;
> +	pci_device_list;
> +	devargs_list;
> +	eal_parse_sysfs_value;
> +
> +	local: *;
> +};
> diff --git a/lib/librte_eal/linuxapp/eal/Makefile b/lib/librte_eal/linuxapp/eal/Makefile
> index 756d6b0..254d59c 100644
> --- a/lib/librte_eal/linuxapp/eal/Makefile
> +++ b/lib/librte_eal/linuxapp/eal/Makefile
> @@ -33,6 +33,8 @@ include $(RTE_SDK)/mk/rte.vars.mk
>  
>  LIB = librte_eal.a
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> +
>  VPATH += $(RTE_SDK)/lib/librte_eal/common
>  
>  CFLAGS += -I$(SRCDIR)/include
> diff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> new file mode 100644
> index 0000000..71788e1
> --- /dev/null
> +++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map
> @@ -0,0 +1,89 @@
> +DPDK_1.8 {
> +	global:
> +	rte_eal_alarm_set;
> +	rte_eal_alarm_cancel;
> +	rte_exit;
> +	rte_cpu_get_flag_enabled;
> +	rte_cpu_check_supported;
> +	rte_get_tsc_hz;
> +	rte_get_hpet_cycles;
> +	rte_get_hpet_hz;
> +	rte_eal_hpet_init;
> +	rte_delay_us;
> +	rte_dump_stack;
> +	rte_dump_registers;
> +	__rte_panic;
> +	rte_eal_devargs_add;
> +	rte_eal_devargs_type_count;
> +	rte_eal_devargs_dump;
> +	rte_eal_driver_register;
> +	rte_eal_driver_unregister;
> +	rte_eal_dev_init;
> +	rte_eal_init;
> +	rte_set_application_usage_hook;
> +	rte_eal_has_hugepages;
> +	rte_strerror;
> +	rte_hexdump;
> +	rte_memdump;
> +	rte_intr_callback_register;
> +	rte_intr_callback_unregister;
> +	rte_intr_enable;
> +	rte_intr_disable;
> +	rte_eal_remote_launch;
> +	rte_eal_mp_remote_launch;
> +	rte_eal_get_lcore_state;
> +	rte_eal_wait_lcore;
> +	rte_eal_mp_wait_lcore;
> +	rte_openlog_stream;
> +	rte_set_log_level;
> +	rte_set_log_type;
> +	rte_log_cur_msg_loglevel;
> +	rte_log_cur_msg_logtype;
> +	rte_log_set_history;
> +	rte_log_dump_history;
> +	rte_log_add_in_history;
> +	rte_log;
> +	rte_vlog;
> +	rte_mem_lock_page;
> +	rte_mem_virt2phy;
> +	rte_eal_get_physmem_layout;
> +	rte_dump_physmem_layout;
> +	rte_eal_get_physmem_size;
> +	rte_memory_get_nchannel;
> +	rte_memory_get_nrank;
> +	rte_mem_phy2mch;
> +	rte_xen_dom0_memory_init;
> +	rte_xen_dom0_memory_attach;
> +	rte_memzone_reserve;
> +	rte_memzone_reserve_aligned;
> +	rte_memzone_reserve_bounded;
> +	rte_memzone_lookup;
> +	rte_memzone_dump;
> +	rte_memzone_walk;
> +	rte_eal_pci_probe;
> +	rte_eal_pci_dump;
> +	rte_eal_pci_register;
> +	rte_eal_pci_unregister;
> +	rte_snprintf;
> +	rte_strsplit;
> +	rte_eal_tailq_reserve;
> +	rte_eal_tailq_reserve_by_idx;
> +	rte_dump_tailq;
> +	rte_eal_tailq_lookup;
> +	rte_eal_tailq_lookup_by_idx;
> +	lcore_config;
> +	per_lcore__lcore_id;
> +	eal_timer_source;
> +	rte_cycles_vmware_tsc_map;
> +	rte_eal_get_configuration;
> +	rte_logs;
> +	rte_eal_lcore_role;
> +	test_mp_secondary;
> +	rte_eal_process_type;
> +	per_lcore__rte_errno;
> +	pci_device_list;
> +	devargs_list;
> +	eal_parse_sysfs_value;
> +
> +	local: *;
> +};
> diff --git a/lib/librte_ether/Makefile b/lib/librte_ether/Makefile
> index b310f8b..f40b5cc 100644
> --- a/lib/librte_ether/Makefile
> +++ b/lib/librte_ether/Makefile
> @@ -39,6 +39,8 @@ LIB = libethdev.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_ether/rte_ether_version.map
> +
>  SRCS-y += rte_ethdev.c
>  
>  #
> diff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map
> new file mode 100644
> index 0000000..41952ab
> --- /dev/null
> +++ b/lib/librte_ether/rte_ether_version.map
> @@ -0,0 +1,108 @@
> +DPDK_1.8 {
> +	global:
> +	rte_eth_driver_register;
> +	rte_eth_dev_configure;
> +	rte_eth_rx_queue_setup;
> +	rte_eth_tx_queue_setup;
> +	rte_eth_dev_socket_id;
> +	rte_eth_dev_rx_queue_start;
> +	rte_eth_dev_rx_queue_stop;
> +	rte_eth_dev_tx_queue_start;
> +	rte_eth_dev_tx_queue_stop;
> +	rte_eth_dev_start;
> +	rte_eth_dev_stop;
> +	rte_eth_dev_set_link_up;
> +	rte_eth_dev_set_link_down;
> +	rte_eth_dev_close;
> +	rte_eth_promiscuous_enable;
> +	rte_eth_promiscuous_disable;
> +	rte_eth_promiscuous_get;
> +	rte_eth_allmulticast_enable;
> +	rte_eth_allmulticast_disable;
> +	rte_eth_allmulticast_get;
> +	rte_eth_link;
> +	rte_eth_link_get_nowait;
> +	rte_eth_stats;
> +	rte_eth_stats_reset;
> +	rte_eth_dev_set_tx_queue_stats_mapping;
> +	rte_eth_dev_set_rx_queue_stats_mapping;
> +	rte_eth_macaddr_get;
> +	rte_eth_dev_info_get;
> +	rte_eth_dev_get_mtu;
> +	rte_eth_dev_set_mtu;
> +	rte_eth_dev_vlan_filter;
> +	rte_eth_dev_set_vlan_strip_on_queue;
> +	rte_eth_dev_set_vlan_ether_type;
> +	rte_eth_dev_set_vlan_offload;
> +	rte_eth_dev_get_vlan_offload;
> +	rte_eth_dev_set_vlan_pvid;
> +	rte_eth_rx_burst;
> +	rte_eth_rx_queue_count;
> +	rte_eth_rx_descriptor_done;
> +	rte_eth_tx_burst;
> +	rte_eth_dev_fdir_add_signature_filter;
> +	rte_eth_dev_fdir_update_signature_filter;
> +	rte_eth_dev_fdir_remove_signature_filter;
> +	rte_eth_dev_fdir_get_infos;
> +	rte_eth_dev_fdir_add_perfect_filter;
> +	rte_eth_dev_fdir_update_perfect_filter;
> +	rte_eth_dev_fdir_remove_perfect_filter;
> +	rte_eth_dev_fdir_set_masks;
> +	rte_eth_dev_callback_register;
> +	rte_eth_dev_callback_unregister;
> +	rte_eth_dev_callback_process;
> +	rte_eth_led_on;
> +	rte_eth_led_off;
> +	rte_eth_dev_flow_ctrl_get;
> +	rte_eth_dev_flow_ctrl_set;
> +	rte_eth_dev_priority_flow_ctrl_set;
> +	rte_eth_dev_mac_addr_add;
> +	rte_eth_dev_mac_addr_remove;
> +	rte_eth_dev_rss_reta_update;
> +	rte_eth_dev_rss_reta_query;
> +	rte_eth_dev_uc_hash_table_set;
> +	rte_eth_dev_uc_all_hash_table_set;
> +	rte_eth_dev_set_vf_rxmode;
> +	rte_eth_dev_set_vf_tx;
> +	rte_eth_dev_set_vf_rx;
> +	rte_eth_dev_set_vf_vlan_filter;
> +	rte_eth_mirror_rule_set;
> +	rte_eth_mirror_rule_reset;
> +	rte_eth_set_queue_rate_limit;
> +	rte_eth_set_vf_rate_limit;
> +	rte_eth_dev_bypass_init;
> +	rte_eth_dev_bypass_state_show;
> +	rte_eth_dev_bypass_state_set;
> +	rte_eth_dev_bypass_event_show;
> +	rte_eth_dev_bypass_event_store;
> +	rte_eth_dev_wd_timeout_store;
> +	rte_eth_dev_bypass_ver_show;
> +	rte_eth_dev_bypass_wd_timeout_show;
> +	rte_eth_dev_bypass_wd_reset;
> +	rte_eth_dev_rss_hash_update;
> +	rte_eth_dev_rss_hash_conf_get;
> +	rte_eth_dev_add_syn_filter;
> +	rte_eth_dev_remove_syn_filter;
> +	rte_eth_dev_get_syn_filter;
> +	rte_eth_dev_add_ethertype_filter;
> +	rte_eth_dev_remove_ethertype_filter;
> +	rte_eth_dev_get_ethertype_filter;
> +	rte_eth_dev_add_2tuple_filter;
> +	rte_eth_dev_remove_2tuple_filter;
> +	rte_eth_dev_get_2tuple_filter;
> +	rte_eth_dev_add_5tuple_filter;
> +	rte_eth_dev_remove_5tuple_filter;
> +	rte_eth_dev_get_5tuple_filter;
> +	rte_eth_dev_add_flex_filter;
> +	rte_eth_dev_remove_flex_filter;
> +	rte_eth_dev_get_flex_filter;
> +	rte_eth_dev_count;
> +	rte_eth_link_get;
> +	rte_eth_devices;
> +	rte_eth_stats_get;
> +	rte_eth_dev_allocate;
> +	_rte_eth_dev_callback_process;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_hash/Makefile b/lib/librte_hash/Makefile
> index 95e4c09..a449ec2 100644
> --- a/lib/librte_hash/Makefile
> +++ b/lib/librte_hash/Makefile
> @@ -37,6 +37,8 @@ LIB = librte_hash.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_hash/rte_hash_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_HASH) := rte_hash.c
>  SRCS-$(CONFIG_RTE_LIBRTE_HASH) += rte_fbk_hash.c
> diff --git a/lib/librte_hash/rte_hash_version.map b/lib/librte_hash/rte_hash_version.map
> new file mode 100644
> index 0000000..2a34313
> --- /dev/null
> +++ b/lib/librte_hash/rte_hash_version.map
> @@ -0,0 +1,18 @@
> +DPDK_1.8 {
> +	global:
> +	rte_fbk_hash_find_existing;
> +	rte_fbk_hash_create;
> +	rte_fbk_hash_free;
> +	rte_hash_create;
> +	rte_hash_find_existing;
> +	rte_hash_free;
> +	rte_hash_add_key;
> +	rte_hash_add_key_with_hash;
> +	rte_hash_del_key;
> +	rte_hash_del_key_with_hash;
> +	rte_hash_lookup;
> +	rte_hash_lookup_with_hash;
> +	rte_hash_lookup_bulk;
> +
> +	local: *;
> +};
> diff --git a/lib/librte_ip_frag/Makefile b/lib/librte_ip_frag/Makefile
> index 2265c93..ede5a89 100644
> --- a/lib/librte_ip_frag/Makefile
> +++ b/lib/librte_ip_frag/Makefile
> @@ -37,6 +37,8 @@ LIB = librte_ip_frag.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_ip_frag/rte_ipfrag_version.map
> +
>  #source files
>  SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_fragmentation.c
>  SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_reassembly.c
> diff --git a/lib/librte_ip_frag/rte_ipfrag_version.map b/lib/librte_ip_frag/rte_ipfrag_version.map
> new file mode 100644
> index 0000000..afe1a0b
> --- /dev/null
> +++ b/lib/librte_ip_frag/rte_ipfrag_version.map
> @@ -0,0 +1,14 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_ip_frag_table_create;
> +	rte_ipv6_fragment_packet;
> +	rte_ipv6_frag_reassemble_packet;
> +	rte_ipv4_fragment_packet;
> +	rte_ipv4_frag_reassemble_packet;
> +	rte_ip_frag_free_death_row;
> +	rte_ip_frag_table_statistics_dump;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_ivshmem/Makefile b/lib/librte_ivshmem/Makefile
> index 536814c..be6f21a 100644
> --- a/lib/librte_ivshmem/Makefile
> +++ b/lib/librte_ivshmem/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_ivshmem.a
>  
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>  
> +EXPORT_MAPS := $(RTE_SDK)/lib/librte_ivshmem/rte_ivshmem_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_IVSHMEM) := rte_ivshmem.c
>  
> diff --git a/lib/librte_ivshmem/rte_ivshmem_version.map b/lib/librte_ivshmem/rte_ivshmem_version.map
> new file mode 100644
> index 0000000..a204339
> --- /dev/null
> +++ b/lib/librte_ivshmem/rte_ivshmem_version.map
> @@ -0,0 +1,13 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_ivshmem_metadata_create;
> +	rte_ivshmem_metadata_add_memzone;
> +	rte_ivshmem_metadata_add_ring;
> +	rte_ivshmem_metadata_add_mempool;
> +	rte_ivshmem_metadata_cmdline_generate;
> +	rte_ivshmem_metadata_dump;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_kni/Makefile b/lib/librte_kni/Makefile
> index 5267304..c119fc1 100644
> --- a/lib/librte_kni/Makefile
> +++ b/lib/librte_kni/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_kni.a
>  
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_kni/rte_kni_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_KNI) := rte_kni.c
>  
> diff --git a/lib/librte_kni/rte_kni_version.map b/lib/librte_kni/rte_kni_version.map
> new file mode 100644
> index 0000000..58fbc1f
> --- /dev/null
> +++ b/lib/librte_kni/rte_kni_version.map
> @@ -0,0 +1,19 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_kni_alloc;
> +	rte_kni_create;
> +	rte_kni_release;
> +	rte_kni_handle_request;
> +	rte_kni_rx_burst;
> +	rte_kni_tx_burst;
> +	rte_kni_get_port_id;
> +	rte_kni_get;
> +	rte_kni_info_get;
> +	rte_kni_register_handlers;
> +	rte_kni_unregister_handlers;
> +	rte_kni_close;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_kvargs/Makefile b/lib/librte_kvargs/Makefile
> index b09359a..83a42b1 100644
> --- a/lib/librte_kvargs/Makefile
> +++ b/lib/librte_kvargs/Makefile
> @@ -38,6 +38,8 @@ LIB = librte_kvargs.a
>  
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_kvargs/rte_kvargs_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_KVARGS) := rte_kvargs.c
>  
> diff --git a/lib/librte_kvargs/rte_kvargs_version.map b/lib/librte_kvargs/rte_kvargs_version.map
> new file mode 100644
> index 0000000..7873c8c
> --- /dev/null
> +++ b/lib/librte_kvargs/rte_kvargs_version.map
> @@ -0,0 +1,10 @@
> +DPDK_1.8 {
> +
> +	global:
> +	rte_kvargs_parse;
> +	rte_kvargs_free;
> +	rte_kvargs_process;
> +	rte_kvargs_count;
> +
> +	local: *;
> +};
> diff --git a/lib/librte_lpm/Makefile b/lib/librte_lpm/Makefile
> index fa94163..05de8d9 100644
> --- a/lib/librte_lpm/Makefile
> +++ b/lib/librte_lpm/Makefile
> @@ -37,6 +37,8 @@ LIB = librte_lpm.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_lpm/rte_lpm_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_LPM) := rte_lpm.c rte_lpm6.c
>  
> diff --git a/lib/librte_lpm/rte_lpm_version.map b/lib/librte_lpm/rte_lpm_version.map
> new file mode 100644
> index 0000000..8ae9318
> --- /dev/null
> +++ b/lib/librte_lpm/rte_lpm_version.map
> @@ -0,0 +1,24 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_lpm_create;
> +	rte_lpm_find_existing;
> +	rte_lpm_free;
> +	rte_lpm_add;
> +	rte_lpm_is_rule_present;
> +	rte_lpm_delete;
> +	rte_lpm_delete_all;
> +	rte_lpm6_create;
> +	rte_lpm6_find_existing;
> +	rte_lpm6_free;
> +	rte_lpm6_add;
> +	rte_lpm6_is_rule_present;
> +	rte_lpm6_delete;
> +	rte_lpm6_delete_bulk_func;
> +	rte_lpm6_delete_all;
> +	rte_lpm6_lookup;
> +	rte_lpm6_lookup_bulk_func;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_malloc/Makefile b/lib/librte_malloc/Makefile
> index ba87e34..1a5c288 100644
> --- a/lib/librte_malloc/Makefile
> +++ b/lib/librte_malloc/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_malloc.a
>  
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_malloc/rte_malloc_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_MALLOC) := rte_malloc.c malloc_elem.c malloc_heap.c
>  
> diff --git a/lib/librte_malloc/rte_malloc_version.map b/lib/librte_malloc/rte_malloc_version.map
> new file mode 100644
> index 0000000..77db879
> --- /dev/null
> +++ b/lib/librte_malloc/rte_malloc_version.map
> @@ -0,0 +1,19 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_malloc;
> +	rte_zmalloc;
> +	rte_calloc;
> +	rte_realloc;
> +	rte_malloc_socket;
> +	rte_zmalloc_socket;
> +	rte_calloc_socket;
> +	rte_free;
> +	rte_malloc_validate;
> +	rte_malloc_get_socket_stats;
> +	rte_malloc_dump_stats;
> +	rte_malloc_set_limit;
> +	rte_malloc_virt2phy;
> +
> +	local: *;
> +};
> diff --git a/lib/librte_mbuf/Makefile b/lib/librte_mbuf/Makefile
> index 9b45ba4..5cd4941 100644
> --- a/lib/librte_mbuf/Makefile
> +++ b/lib/librte_mbuf/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_mbuf.a
>  
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_mbuf/rte_mbuf_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_MBUF) := rte_mbuf.c
>  
> diff --git a/lib/librte_mbuf/rte_mbuf_version.map b/lib/librte_mbuf/rte_mbuf_version.map
> new file mode 100644
> index 0000000..55e352b
> --- /dev/null
> +++ b/lib/librte_mbuf/rte_mbuf_version.map
> @@ -0,0 +1,12 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_mbuf_sanity_check;
> +	rte_ctrlmbuf_init;
> +	rte_pktmbuf_init;
> +	rte_pktmbuf_pool_init;
> +	rte_pktmbuf_dump;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_mempool/Makefile b/lib/librte_mempool/Makefile
> index 9939e10..07b5b4e 100644
> --- a/lib/librte_mempool/Makefile
> +++ b/lib/librte_mempool/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_mempool.a
>  
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_mempool/rte_mempool_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) +=  rte_mempool.c
>  ifeq ($(CONFIG_RTE_LIBRTE_XEN_DOM0),y)
> diff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map
> new file mode 100644
> index 0000000..7a19982
> --- /dev/null
> +++ b/lib/librte_mempool/rte_mempool_version.map
> @@ -0,0 +1,18 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_mempool_create;
> +	rte_mempool_xmem_create;
> +	rte_dom0_mempool_create;
> +	rte_mempool_dump;
> +	rte_mempool_audit;
> +	rte_mempool_list_dump;
> +	rte_mempool_lookup;
> +	rte_mempool_calc_obj_size;
> +	rte_mempool_xmem_size;
> +	rte_mempool_xmem_usage;
> +	rte_mempool_walk;
> +	rte_mempool_count;
> +
> +	local: *;
> +};
> diff --git a/lib/librte_meter/Makefile b/lib/librte_meter/Makefile
> index b25c0cc..0778690 100644
> --- a/lib/librte_meter/Makefile
> +++ b/lib/librte_meter/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_meter.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_meter/rte_meter_version.map
> +
>  #
>  # all source are stored in SRCS-y
>  #
> diff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map
> new file mode 100644
> index 0000000..51a73b1
> --- /dev/null
> +++ b/lib/librte_meter/rte_meter_version.map
> @@ -0,0 +1,13 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_meter_srtcm_config;
> +	rte_meter_trtcm_config;
> +	rte_meter_srtcm_color_blind_check;
> +	rte_meter_srtcm_color_aware_check;
> +	rte_meter_trtcm_color_blind_check;
> +	rte_meter_trtcm_color_aware_check;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_pipeline/Makefile b/lib/librte_pipeline/Makefile
> index cf8fde8..5465d00 100644
> --- a/lib/librte_pipeline/Makefile
> +++ b/lib/librte_pipeline/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pipeline.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pipeline/rte_pipeline_version.map
> +
>  #
>  # all source are stored in SRCS-y
>  #
> diff --git a/lib/librte_pipeline/rte_pipeline_version.map b/lib/librte_pipeline/rte_pipeline_version.map
> new file mode 100644
> index 0000000..f868b96
> --- /dev/null
> +++ b/lib/librte_pipeline/rte_pipeline_version.map
> @@ -0,0 +1,23 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_pipeline_create;
> +	rte_pipeline_free;
> +	rte_pipeline_check;
> +	rte_pipeline_run;
> +	rte_pipeline_flush;
> +	rte_pipeline_table_create;
> +	rte_pipeline_table_default_entry_add;
> +	rte_pipeline_table_default_entry_delete;
> +	rte_pipeline_table_entry_add;
> +	rte_pipeline_table_entry_delete;
> +	rte_pipeline_port_in_create;
> +	rte_pipeline_port_in_connect_to_table;
> +	rte_pipeline_port_in_enable;
> +	rte_pipeline_port_in_disable;
> +	rte_pipeline_port_out_create;
> +	rte_pipeline_port_out_packet_insert;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_pmd_bond/Makefile b/lib/librte_pmd_bond/Makefile
> index 953d75e..5b14ce2 100644
> --- a/lib/librte_pmd_bond/Makefile
> +++ b/lib/librte_pmd_bond/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pmd_bond.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_bond/rte_eth_bond_version.map
> +
>  #
>  # all source are stored in SRCS-y
>  #
> diff --git a/lib/librte_pmd_bond/rte_eth_bond_version.map b/lib/librte_pmd_bond/rte_eth_bond_version.map
> new file mode 100644
> index 0000000..17f0a1f
> --- /dev/null
> +++ b/lib/librte_pmd_bond/rte_eth_bond_version.map
> @@ -0,0 +1,20 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_eth_bond_create;
> +	rte_eth_bond_slave_add;
> +	rte_eth_bond_slave_remove;
> +	rte_eth_bond_mode_set;
> +	rte_eth_bond_mode_get;
> +	rte_eth_bond_primary_set;
> +	rte_eth_bond_primary_get;
> +	rte_eth_bond_slaves_get;
> +	rte_eth_bond_active_slaves_get;
> +	rte_eth_bond_mac_address_set;
> +	rte_eth_bond_mac_address_reset;
> +	rte_eth_bond_xmit_policy_set;
> +	rte_eth_bond_xmit_policy_get;
> +
> +
> +	local: *;
> +};
> diff --git a/lib/librte_pmd_e1000/Makefile b/lib/librte_pmd_e1000/Makefile
> index 14bc4a2..e225bfe 100644
> --- a/lib/librte_pmd_e1000/Makefile
> +++ b/lib/librte_pmd_e1000/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pmd_e1000.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_e1000/rte_pmd_e1000_version.map
> +
>  ifeq ($(CC), icc)
>  #
>  # CFLAGS for icc
> diff --git a/lib/librte_pmd_e1000/rte_pmd_e1000_version.map b/lib/librte_pmd_e1000/rte_pmd_e1000_version.map
> new file mode 100644
> index 0000000..cbc401f
> --- /dev/null
> +++ b/lib/librte_pmd_e1000/rte_pmd_e1000_version.map
> @@ -0,0 +1,5 @@
> +DPDK_1.8 {
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_pmd_i40e/Makefile b/lib/librte_pmd_i40e/Makefile
> index 4b31675..cfbe816 100644
> --- a/lib/librte_pmd_i40e/Makefile
> +++ b/lib/librte_pmd_i40e/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pmd_i40e.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_i40e/rte_pmd_i40e_version.map
> +
>  #
>  # Add extra flags for base driver files (also known as shared code)
>  # to disable warnings
> diff --git a/lib/librte_pmd_i40e/rte_pmd_i40e_version.map b/lib/librte_pmd_i40e/rte_pmd_i40e_version.map
> new file mode 100644
> index 0000000..cbc401f
> --- /dev/null
> +++ b/lib/librte_pmd_i40e/rte_pmd_i40e_version.map
> @@ -0,0 +1,5 @@
> +DPDK_1.8 {
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_pmd_ixgbe/Makefile b/lib/librte_pmd_ixgbe/Makefile
> index 00ccedb..1dd14a6 100644
> --- a/lib/librte_pmd_ixgbe/Makefile
> +++ b/lib/librte_pmd_ixgbe/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pmd_ixgbe.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
> +
>  ifeq ($(CC), icc)
>  #
>  # CFLAGS for icc
> diff --git a/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map b/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
> new file mode 100644
> index 0000000..cbc401f
> --- /dev/null
> +++ b/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map
> @@ -0,0 +1,5 @@
> +DPDK_1.8 {
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_pmd_pcap/Makefile b/lib/librte_pmd_pcap/Makefile
> index c5c214d..fff5572 100644
> --- a/lib/librte_pmd_pcap/Makefile
> +++ b/lib/librte_pmd_pcap/Makefile
> @@ -40,6 +40,8 @@ LIB = librte_pmd_pcap.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_pcap/rte_pmd_pcap_version.map
> +
>  #
>  # all source are stored in SRCS-y
>  #
> diff --git a/lib/librte_pmd_pcap/rte_pmd_pcap_version.map b/lib/librte_pmd_pcap/rte_pmd_pcap_version.map
> new file mode 100644
> index 0000000..cbc401f
> --- /dev/null
> +++ b/lib/librte_pmd_pcap/rte_pmd_pcap_version.map
> @@ -0,0 +1,5 @@
> +DPDK_1.8 {
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_pmd_ring/Makefile b/lib/librte_pmd_ring/Makefile
> index b57e421..25ad27f 100644
> --- a/lib/librte_pmd_ring/Makefile
> +++ b/lib/librte_pmd_ring/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pmd_ring.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_ring/rte_eth_ring_version.map
> +
>  #
>  # all source are stored in SRCS-y
>  #
> diff --git a/lib/librte_pmd_ring/rte_eth_ring.c b/lib/librte_pmd_ring/rte_eth_ring.c
> index 4f1b6ed..df7b583 100644
> --- a/lib/librte_pmd_ring/rte_eth_ring.c
> +++ b/lib/librte_pmd_ring/rte_eth_ring.c
> @@ -473,7 +473,7 @@ out:
>  	return ret;
>  }
>  
> -int
> +static int
>  rte_pmd_ring_devinit(const char *name, const char *params)
>  {
>  	struct rte_kvargs *kvlist;
> diff --git a/lib/librte_pmd_ring/rte_eth_ring.h b/lib/librte_pmd_ring/rte_eth_ring.h
> index e6ae19e..d36489a 100644
> --- a/lib/librte_pmd_ring/rte_eth_ring.h
> +++ b/lib/librte_pmd_ring/rte_eth_ring.h
> @@ -50,12 +50,6 @@ int rte_eth_from_rings(const char *name,
>  int rte_eth_ring_pair_create(const char *name, const unsigned numa_node);
>  int rte_eth_ring_pair_attach(const char *name, const unsigned numa_node);
>  
> -/**
> - * For use by test apps only. Called as part of EAL init to set up any dummy NICs
> - * configured on command line.
> - */
> -int rte_pmd_ring_devinit(const char *name, const char *params);
> -
>  #ifdef __cplusplus
>  }
>  #endif
> diff --git a/lib/librte_pmd_ring/rte_eth_ring_version.map b/lib/librte_pmd_ring/rte_eth_ring_version.map
> new file mode 100644
> index 0000000..5edaa3d
> --- /dev/null
> +++ b/lib/librte_pmd_ring/rte_eth_ring_version.map
> @@ -0,0 +1,10 @@
> +DPDK_1.8 {
> +
> +	global:
> +
> +	rte_eth_from_rings;
> +	rte_eth_ring_pair_create;
> +	rte_eth_ring_pair_attach;
> +
> +	local: *;
> +};
> diff --git a/lib/librte_pmd_virtio/Makefile b/lib/librte_pmd_virtio/Makefile
> index 456095b..bf51bd9 100644
> --- a/lib/librte_pmd_virtio/Makefile
> +++ b/lib/librte_pmd_virtio/Makefile
> @@ -39,6 +39,7 @@ LIB = librte_pmd_virtio_uio.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_virtio/rte_pmd_virtio_version.map
>  
>  #
>  # all source are stored in SRCS-y
> diff --git a/lib/librte_pmd_virtio/rte_pmd_virtio_version.map b/lib/librte_pmd_virtio/rte_pmd_virtio_version.map
> new file mode 100644
> index 0000000..cbc401f
> --- /dev/null
> +++ b/lib/librte_pmd_virtio/rte_pmd_virtio_version.map
> @@ -0,0 +1,5 @@
> +DPDK_1.8 {
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_pmd_vmxnet3/Makefile b/lib/librte_pmd_vmxnet3/Makefile
> index 6872c74..e5a1c6b 100644
> --- a/lib/librte_pmd_vmxnet3/Makefile
> +++ b/lib/librte_pmd_vmxnet3/Makefile
> @@ -66,6 +66,8 @@ endif
>  
>  VPATH += $(RTE_SDK)/lib/librte_pmd_vmxnet3/vmxnet3
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
> +
>  #
>  # all source are stored in SRCS-y
>  #
> diff --git a/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map b/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
> new file mode 100644
> index 0000000..cbc401f
> --- /dev/null
> +++ b/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map
> @@ -0,0 +1,5 @@
> +DPDK_1.8 {
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_pmd_xenvirt/Makefile b/lib/librte_pmd_xenvirt/Makefile
> index 01bfcaa..0a08b1b 100644
> --- a/lib/librte_pmd_xenvirt/Makefile
> +++ b/lib/librte_pmd_xenvirt/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_pmd_xenvirt.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
> +
>  #
>  # all source are stored in SRCS-y
>  #
> diff --git a/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map b/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
> new file mode 100644
> index 0000000..66199b1
> --- /dev/null
> +++ b/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map
> @@ -0,0 +1,8 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_mempool_gntalloc_create;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_port/Makefile b/lib/librte_port/Makefile
> index 28793a5..e812bda 100644
> --- a/lib/librte_port/Makefile
> +++ b/lib/librte_port/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_port.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_port/rte_port_version.map
> +
>  #
>  # all source are stored in SRCS-y
>  #
> diff --git a/lib/librte_port/rte_port_version.map b/lib/librte_port/rte_port_version.map
> new file mode 100644
> index 0000000..57ccaa3
> --- /dev/null
> +++ b/lib/librte_port/rte_port_version.map
> @@ -0,0 +1,18 @@
> +DPDK_1.8 {
> +	global:
> +	rte_port_ring_reader_ops;
> +	rte_port_ring_writer_ops;
> +	rte_port_ethdev_reader_ops;
> +	rte_port_ethdev_writer_ops;
> +	rte_port_ring_reader_ipv4_frag_ops;
> +	rte_port_ring_writer_ipv4_ras_ops;
> +	rte_port_ring_reader_ops;
> +	rte_port_ring_writer_ops;
> +	rte_port_sched_reader_ops;
> +	rte_port_sched_writer_ops;
> +	rte_port_source_ops;
> +	rte_port_sink_ops;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_power/Makefile b/lib/librte_power/Makefile
> index 6185812..26ee542 100644
> --- a/lib/librte_power/Makefile
> +++ b/lib/librte_power/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_power.a
>  
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_power/rte_power_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_POWER) := rte_power.c
>  
> diff --git a/lib/librte_power/rte_power_version.map b/lib/librte_power/rte_power_version.map
> new file mode 100644
> index 0000000..3b2375a
> --- /dev/null
> +++ b/lib/librte_power/rte_power_version.map
> @@ -0,0 +1,14 @@
> +DPDK_1.8 {
> +	global:
> +	rte_power_init;
> +	rte_power_exit;
> +	rte_power_freqs;
> +	rte_power_get_freq;
> +	rte_power_set_freq;
> +	rte_power_freq_up;
> +	rte_power_freq_down;
> +	rte_power_freq_max;
> +	rte_power_freq_min;
> +
> +	local: *;
> +};
> diff --git a/lib/librte_ring/Makefile b/lib/librte_ring/Makefile
> index 2380a43..0adaa00 100644
> --- a/lib/librte_ring/Makefile
> +++ b/lib/librte_ring/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_ring.a
>  
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_ring/rte_ring_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_RING) := rte_ring.c
>  
> diff --git a/lib/librte_ring/rte_ring_version.map b/lib/librte_ring/rte_ring_version.map
> new file mode 100644
> index 0000000..6c28af9
> --- /dev/null
> +++ b/lib/librte_ring/rte_ring_version.map
> @@ -0,0 +1,12 @@
> +DPDK_1.8 {
> +	global:
> +	rte_ring_get_memsize;
> +	rte_ring_init;
> +	rte_ring_create;
> +	rte_ring_set_water_mark;
> +	rte_ring_dump;
> +	rte_ring_list_dump;
> +	rte_ring_lookup;
> +
> +	local: *;
> +};
> diff --git a/lib/librte_sched/Makefile b/lib/librte_sched/Makefile
> index 1a25b21..205fb7a 100644
> --- a/lib/librte_sched/Makefile
> +++ b/lib/librte_sched/Makefile
> @@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)
>  
>  CFLAGS_rte_red.o := -D_GNU_SOURCE
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_sched/rte_sched_version.map
> +
>  #
>  # all source are stored in SRCS-y
>  #
> diff --git a/lib/librte_sched/rte_sched_version.map b/lib/librte_sched/rte_sched_version.map
> new file mode 100644
> index 0000000..b5877ce
> --- /dev/null
> +++ b/lib/librte_sched/rte_sched_version.map
> @@ -0,0 +1,22 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_approx;
> +	rte_red_rt_data_init;
> +	rte_red_config_init;
> +	rte_sched_port_config;
> +	rte_sched_port_free;
> +	rte_sched_subport_config;
> +	rte_sched_pipe_config;
> +	rte_sched_port_get_memory_footprint;
> +	rte_sched_subport_read_stats;
> +	rte_sched_queue_read_stats;
> +	rte_sched_port_enqueue;
> +	rte_sched_port_dequeue;
> +	rte_red_log2_1_minus_Wq;
> +	rte_red_pow2_frac_inv;
> +	rte_red_rand_val;
> +	rte_red_rand_seed;
> +
> +	local: *;
> +};
> diff --git a/lib/librte_table/Makefile b/lib/librte_table/Makefile
> index dd684cc..5b54acc 100644
> --- a/lib/librte_table/Makefile
> +++ b/lib/librte_table/Makefile
> @@ -39,6 +39,8 @@ LIB = librte_table.a
>  CFLAGS += -O3
>  CFLAGS += $(WERROR_FLAGS)
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_table/rte_table_version.map
> +
>  #
>  # all source are stored in SRCS-y
>  #
> diff --git a/lib/librte_table/rte_table_version.map b/lib/librte_table/rte_table_version.map
> new file mode 100644
> index 0000000..86f16b8
> --- /dev/null
> +++ b/lib/librte_table/rte_table_version.map
> @@ -0,0 +1,22 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_table_stub_ops;
> +	rte_table_lpm_ops;
> +	rte_table_array_ops;
> +	rte_table_hash_key8_lru_ops;
> +	rte_table_hash_key8_lru_dosig_ops;
> +	rte_table_hash_key8_ext_ops;
> +	rte_table_hash_key8_ext_dosig_ops;
> +	rte_table_lpm_ipv6_ops;
> +	rte_table_hash_key16_lru_ops;
> +	rte_table_hash_key32_lru_ops;
> +	rte_table_hash_key16_ext_ops;
> +	rte_table_hash_key32_ext_ops;
> +	rte_table_acl_ops;
> +	rte_table_hash_lru_ops;
> +	rte_table_hash_ext_ops;
> +
> +	local: *;
> +};
> +
> diff --git a/lib/librte_timer/Makefile b/lib/librte_timer/Makefile
> index 07eb0c6..f703e5f 100644
> --- a/lib/librte_timer/Makefile
> +++ b/lib/librte_timer/Makefile
> @@ -36,6 +36,8 @@ LIB = librte_timer.a
>  
>  CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3
>  
> +EXPORT_MAP := $(RTE_SDK)/lib/librte_timer/rte_timer_version.map
> +
>  # all source are stored in SRCS-y
>  SRCS-$(CONFIG_RTE_LIBRTE_TIMER) := rte_timer.c
>  
> diff --git a/lib/librte_timer/rte_timer_version.map b/lib/librte_timer/rte_timer_version.map
> new file mode 100644
> index 0000000..00b6b52
> --- /dev/null
> +++ b/lib/librte_timer/rte_timer_version.map
> @@ -0,0 +1,16 @@
> +DPDK_1.8 {
> +	global:
> +
> +	rte_timer_subsystem_init;
> +	rte_timer_init;
> +	rte_timer_reset;
> +	rte_timer_reset_sync;
> +	rte_timer_stop;
> +	rte_timer_stop_sync;
> +	rte_timer_pending;
> +	rte_timer_manage;
> +	rte_timer_dump_stats;
> +
> +	local: *;
> +};
> +
> -- 
> 1.9.3
> 

May need to update some of the version maps with new functions in head.

Acked-by: Sergio Gonzalez Monroy <sergio.gonzalez.monroy at intel.com>


More information about the dev mailing list