Show a patch.

GET /api/patches/383/
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 383,
    "url": "http://patches.dpdk.org/api/patches/383/",
    "web_url": "http://patches.dpdk.org/patch/383/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk"
    },
    "msgid": "<1410809031-19114-3-git-send-email-nhorman@tuxdriver.com>",
    "date": "2014-09-15T19:23:49",
    "name": "[dpdk-dev,2/4] Provide initial versioning for all DPDK libraries",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "89c3f345eb0f3cae0de62ac2f92d1caa5431e194",
    "submitter": {
        "id": 32,
        "url": "http://patches.dpdk.org/api/people/32/",
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/patch/383/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/383/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/383/checks/",
    "tags": {},
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "References": "<1410809031-19114-1-git-send-email-nhorman@tuxdriver.com>",
        "X-Mailman-Version": "2.1.15",
        "Date": "Mon, 15 Sep 2014 15:23:49 -0400",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "X-BeenThere": "dev@dpdk.org",
        "Message-Id": "<1410809031-19114-3-git-send-email-nhorman@tuxdriver.com>",
        "X-Original-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id 4A681B39C;\n\tMon, 15 Sep 2014 21:18:59 +0200 (CEST)",
            "from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58])\n\tby dpdk.org (Postfix) with ESMTP id 9347AB39C\n\tfor <dev@dpdk.org>; Mon, 15 Sep 2014 21:18:56 +0200 (CEST)",
            "from hmsreliant.think-freely.org\n\t([2001:470:8:a08:7aac:c0ff:fec2:933b] helo=localhost)\n\tby smtp.tuxdriver.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.63)\n\t(envelope-from <nhorman@tuxdriver.com>)\n\tid 1XTbso-0000o9-9q; Mon, 15 Sep 2014 15:24:26 -0400"
        ],
        "X-Mailer": "git-send-email 1.9.3",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>",
        "Subject": "[dpdk-dev] [PATCH 2/4] Provide initial versioning for all DPDK\n\tlibraries",
        "Precedence": "list",
        "From": "Neil Horman <nhorman@tuxdriver.com>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "Errors-To": "dev-bounces@dpdk.org",
        "X-Spam-Score": "-2.9 (--)",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "X-Spam-Status": "No",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "Delivered-To": "patchwork@dpdk.org",
        "In-Reply-To": "<1410809031-19114-1-git-send-email-nhorman@tuxdriver.com>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "To": "dev@dpdk.org"
    },
    "content": "Add linker version script files to each DPDK library to put a stake in the\nground from which we can start cleaning up API's\n\nSigned-off-by: Neil Horman <nhorman@tuxdriver.com>\nCC: Thomas Monjalon <thomas.monjalon@6wind.com>\nCC: \"Richardson, Bruce\" <bruce.richardson@intel.com>\n---\n lib/librte_acl/Makefile                            |   2 +\n lib/librte_acl/rte_acl_version.map                 |  19 ++++\n lib/librte_cfgfile/Makefile                        |   2 +\n lib/librte_cfgfile/rte_cfgfile_version.map         |  14 +++\n lib/librte_cmdline/Makefile                        |   2 +\n lib/librte_cmdline/rte_cmdline_version.map         |  69 +++++++++++++\n lib/librte_distributor/Makefile                    |   2 +\n lib/librte_distributor/rte_distributor_version.map |  16 +++\n lib/librte_eal/bsdapp/eal/Makefile                 |   2 +\n lib/librte_eal/bsdapp/eal/rte_eal_version.map      |  89 +++++++++++++++++\n lib/librte_eal/linuxapp/eal/Makefile               |   2 +\n lib/librte_eal/linuxapp/eal/rte_eal_version.map    |  89 +++++++++++++++++\n lib/librte_ether/Makefile                          |   2 +\n lib/librte_ether/rte_ether_version.map             | 108 +++++++++++++++++++++\n lib/librte_hash/Makefile                           |   2 +\n lib/librte_hash/rte_hash_version.map               |  18 ++++\n lib/librte_ip_frag/Makefile                        |   2 +\n lib/librte_ip_frag/rte_ipfrag_version.map          |  14 +++\n lib/librte_ivshmem/Makefile                        |   2 +\n lib/librte_ivshmem/rte_ivshmem_version.map         |  13 +++\n lib/librte_kni/Makefile                            |   2 +\n lib/librte_kni/rte_kni_version.map                 |  19 ++++\n lib/librte_kvargs/Makefile                         |   2 +\n lib/librte_kvargs/rte_kvargs_version.map           |  10 ++\n lib/librte_lpm/Makefile                            |   2 +\n lib/librte_lpm/rte_lpm_version.map                 |  24 +++++\n lib/librte_malloc/Makefile                         |   2 +\n lib/librte_malloc/rte_malloc_version.map           |  19 ++++\n lib/librte_mbuf/Makefile                           |   2 +\n lib/librte_mbuf/rte_mbuf_version.map               |  12 +++\n lib/librte_mempool/Makefile                        |   2 +\n lib/librte_mempool/rte_mempool_version.map         |  18 ++++\n lib/librte_meter/Makefile                          |   2 +\n lib/librte_meter/rte_meter_version.map             |  13 +++\n lib/librte_pipeline/Makefile                       |   2 +\n lib/librte_pipeline/rte_pipeline_version.map       |  23 +++++\n lib/librte_pmd_bond/Makefile                       |   2 +\n lib/librte_pmd_bond/rte_eth_bond_version.map       |  20 ++++\n lib/librte_pmd_e1000/Makefile                      |   2 +\n lib/librte_pmd_e1000/rte_pmd_e1000_version.map     |   5 +\n lib/librte_pmd_i40e/Makefile                       |   2 +\n lib/librte_pmd_i40e/rte_pmd_i40e_version.map       |   5 +\n lib/librte_pmd_ixgbe/Makefile                      |   2 +\n lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map     |   5 +\n lib/librte_pmd_pcap/Makefile                       |   2 +\n lib/librte_pmd_pcap/rte_pmd_pcap_version.map       |   5 +\n lib/librte_pmd_ring/Makefile                       |   2 +\n lib/librte_pmd_ring/rte_eth_ring.c                 |   2 +-\n lib/librte_pmd_ring/rte_eth_ring.h                 |   6 --\n lib/librte_pmd_ring/rte_eth_ring_version.map       |  10 ++\n lib/librte_pmd_virtio/Makefile                     |   1 +\n lib/librte_pmd_virtio/rte_pmd_virtio_version.map   |   5 +\n lib/librte_pmd_vmxnet3/Makefile                    |   2 +\n lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map |   5 +\n lib/librte_pmd_xenvirt/Makefile                    |   2 +\n lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map |   8 ++\n lib/librte_port/Makefile                           |   2 +\n lib/librte_port/rte_port_version.map               |  18 ++++\n lib/librte_power/Makefile                          |   2 +\n lib/librte_power/rte_power_version.map             |  14 +++\n lib/librte_ring/Makefile                           |   2 +\n lib/librte_ring/rte_ring_version.map               |  12 +++\n lib/librte_sched/Makefile                          |   2 +\n lib/librte_sched/rte_sched_version.map             |  22 +++++\n lib/librte_table/Makefile                          |   2 +\n lib/librte_table/rte_table_version.map             |  22 +++++\n lib/librte_timer/Makefile                          |   2 +\n lib/librte_timer/rte_timer_version.map             |  16 +++\n 68 files changed, 825 insertions(+), 7 deletions(-)\n create mode 100644 lib/librte_acl/rte_acl_version.map\n create mode 100644 lib/librte_cfgfile/rte_cfgfile_version.map\n create mode 100644 lib/librte_cmdline/rte_cmdline_version.map\n create mode 100644 lib/librte_distributor/rte_distributor_version.map\n create mode 100644 lib/librte_eal/bsdapp/eal/rte_eal_version.map\n create mode 100644 lib/librte_eal/linuxapp/eal/rte_eal_version.map\n create mode 100644 lib/librte_ether/rte_ether_version.map\n create mode 100644 lib/librte_hash/rte_hash_version.map\n create mode 100644 lib/librte_ip_frag/rte_ipfrag_version.map\n create mode 100644 lib/librte_ivshmem/rte_ivshmem_version.map\n create mode 100644 lib/librte_kni/rte_kni_version.map\n create mode 100644 lib/librte_kvargs/rte_kvargs_version.map\n create mode 100644 lib/librte_lpm/rte_lpm_version.map\n create mode 100644 lib/librte_malloc/rte_malloc_version.map\n create mode 100644 lib/librte_mbuf/rte_mbuf_version.map\n create mode 100644 lib/librte_mempool/rte_mempool_version.map\n create mode 100644 lib/librte_meter/rte_meter_version.map\n create mode 100644 lib/librte_pipeline/rte_pipeline_version.map\n create mode 100644 lib/librte_pmd_bond/rte_eth_bond_version.map\n create mode 100644 lib/librte_pmd_e1000/rte_pmd_e1000_version.map\n create mode 100644 lib/librte_pmd_i40e/rte_pmd_i40e_version.map\n create mode 100644 lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map\n create mode 100644 lib/librte_pmd_pcap/rte_pmd_pcap_version.map\n create mode 100644 lib/librte_pmd_ring/rte_eth_ring_version.map\n create mode 100644 lib/librte_pmd_virtio/rte_pmd_virtio_version.map\n create mode 100644 lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map\n create mode 100644 lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map\n create mode 100644 lib/librte_port/rte_port_version.map\n create mode 100644 lib/librte_power/rte_power_version.map\n create mode 100644 lib/librte_ring/rte_ring_version.map\n create mode 100644 lib/librte_sched/rte_sched_version.map\n create mode 100644 lib/librte_table/rte_table_version.map\n create mode 100644 lib/librte_timer/rte_timer_version.map",
    "diff": "diff --git a/lib/librte_acl/Makefile b/lib/librte_acl/Makefile\nindex 65e566d..1f96645 100644\n--- a/lib/librte_acl/Makefile\n+++ b/lib/librte_acl/Makefile\n@@ -37,6 +37,8 @@ LIB = librte_acl.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_acl/rte_acl_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_ACL) += tb_mem.c\n \ndiff --git a/lib/librte_acl/rte_acl_version.map b/lib/librte_acl/rte_acl_version.map\nnew file mode 100644\nindex 0000000..4480690\n--- /dev/null\n+++ b/lib/librte_acl/rte_acl_version.map\n@@ -0,0 +1,19 @@\n+DPDK_1.8 {\n+\tglobal:\n+\trte_acl_create;\n+\trte_acl_find_existing;\n+\trte_acl_free;\n+\trte_acl_add_rules;\n+\trte_acl_reset_rules;\n+\trte_acl_build;\n+\trte_acl_reset;\n+\trte_acl_classify;\n+\trte_acl_dump;\n+\trte_acl_list_dump;\n+\trte_acl_ipv4vlan_add_rules;\n+\trte_acl_ipv4vlan_build;\n+\trte_acl_classify_scalar;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_cfgfile/Makefile b/lib/librte_cfgfile/Makefile\nindex 55e8701..e655098 100644\n--- a/lib/librte_cfgfile/Makefile\n+++ b/lib/librte_cfgfile/Makefile\n@@ -39,6 +39,8 @@ LIB = librte_cfgfile.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_cfgfile/rte_cfgfile_version.map\n+\n #\n # all source are stored in SRCS-y\n #\ndiff --git a/lib/librte_cfgfile/rte_cfgfile_version.map b/lib/librte_cfgfile/rte_cfgfile_version.map\nnew file mode 100644\nindex 0000000..10ecea6\n--- /dev/null\n+++ b/lib/librte_cfgfile/rte_cfgfile_version.map\n@@ -0,0 +1,14 @@\n+DPDK_1.8 {\n+\tglobal:\n+\trte_cfgfile_load;\n+\trte_cfgfile_num_sections;\n+\trte_cfgfile_sections;\n+\trte_cfgfile_has_section;\n+\trte_cfgfile_section_num_entries;\n+\trte_cfgfile_section_entries;\n+\trte_cfgfile_get_entry;\n+\trte_cfgfile_has_entry;\n+\trte_cfgfile_close;\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_cmdline/Makefile b/lib/librte_cmdline/Makefile\nindex 7eae449..1a47173 100644\n--- a/lib/librte_cmdline/Makefile\n+++ b/lib/librte_cmdline/Makefile\n@@ -36,6 +36,8 @@ LIB = librte_cmdline.a\n \n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_cmdline/rte_cmdline_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) := cmdline.c\n SRCS-$(CONFIG_RTE_LIBRTE_CMDLINE) += cmdline_cirbuf.c\ndiff --git a/lib/librte_cmdline/rte_cmdline_version.map b/lib/librte_cmdline/rte_cmdline_version.map\nnew file mode 100644\nindex 0000000..7616eff\n--- /dev/null\n+++ b/lib/librte_cmdline/rte_cmdline_version.map\n@@ -0,0 +1,69 @@\n+DPDK_1.8 {\n+\tglobal:\n+\tcmdline_new;\n+\tcmdline_set_prompt;\n+\tcmdline_free;\n+\tcmdline_printf;\n+\tcmdline_in;\n+\tcmdline_write_char;\n+\tcmdline_interact;\n+\tcmdline_quit;\n+\tcmdline_parse;\n+\tcmdline_complete;\n+\tcmdline_isendoftoken;\n+\tcmdline_parse_num;\n+\tcmdline_get_help_num;\n+\tcmdline_parse_ipaddr;\n+\tcmdline_get_help_ipaddr;\n+\tcmdline_parse_etheraddr;\n+\tcmdline_get_help_etheraddr;\n+\tcmdline_parse_string;\n+\tcmdline_complete_get_nb_string;\n+\tcmdline_complete_get_elt_string;\n+\tcmdline_get_help_string;\n+\tcmdline_parse_portlist;\n+\tcmdline_get_help_portlist;\n+\tcmdline_token_string_ops;\n+\tcmdline_token_num_ops;\n+\tcmdline_token_string_ops;\n+\tcmdline_token_ipaddr_ops;\n+\tcmdline_token_etheraddr_ops;\n+\tvt100_init;\n+\tvt100_parser;\n+\tcmdline_file_new;\n+\tcmdline_stdin_new;\n+\tcmdline_stdin_exit;\n+\tcirbuf_init;\n+\tcirbuf_add_head_safe;\n+\tcirbuf_add_head;\n+\tcirbuf_add_tail_safe;\n+\tcirbuf_add_tail;\n+\tcirbuf_del_head_safe;\n+\tcirbuf_del_head;\n+\tcirbuf_del_tail_safe;\n+\tcirbuf_del_tail;\n+\tcirbuf_get_head;\n+\tcirbuf_get_tail;\n+\tcirbuf_add_buf_head;\n+\tcirbuf_add_buf_tail;\n+\tcirbuf_del_buf_head;\n+\tcirbuf_del_buf_tail;\n+\tcirbuf_get_buf_head;\n+\tcirbuf_get_buf_tail;\n+\tcirbuf_align_left;\n+\tcirbuf_align_right;\n+\trdline_init;\n+\trdline_newline;\n+\trdline_stop;\n+\trdline_quit;\n+\trdline_restart;\n+\trdline_redisplay;\n+\trdline_reset;\n+\trdline_char_in;\n+\trdline_get_buffer;\n+\trdline_add_history;\n+\trdline_clear_history;\n+\trdline_get_history_item;\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_distributor/Makefile b/lib/librte_distributor/Makefile\nindex 36699f8..97d8bbb 100644\n--- a/lib/librte_distributor/Makefile\n+++ b/lib/librte_distributor/Makefile\n@@ -37,6 +37,8 @@ LIB = librte_distributor.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_distributor/rte_distributor_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) := rte_distributor.c\n \ndiff --git a/lib/librte_distributor/rte_distributor_version.map b/lib/librte_distributor/rte_distributor_version.map\nnew file mode 100644\nindex 0000000..b81ddc8\n--- /dev/null\n+++ b/lib/librte_distributor/rte_distributor_version.map\n@@ -0,0 +1,16 @@\n+DPDK_1.8 {\n+\n+\tglobal:\n+\trte_distributor_create;\n+\trte_distributor_process;\n+\trte_distributor_returned_pkts;\n+\trte_distributor_flush;\n+\trte_distributor_clear_returns;\n+\trte_distributor_get_pkt;\n+\trte_distributor_return_pkt;\n+\trte_distributor_request_pkt;\n+\trte_distributor_poll_pkt;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_eal/bsdapp/eal/Makefile b/lib/librte_eal/bsdapp/eal/Makefile\nindex 8f44273..2caaf00 100644\n--- a/lib/librte_eal/bsdapp/eal/Makefile\n+++ b/lib/librte_eal/bsdapp/eal/Makefile\n@@ -45,6 +45,8 @@ CFLAGS += -I$(RTE_SDK)/lib/librte_pmd_ring\n CFLAGS += -I$(RTE_SDK)/lib/librte_pmd_pcap\n CFLAGS += $(WERROR_FLAGS) -O3\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_eal/bsdapp/eal/rte_eal_version.map\n+\n # specific to linuxapp exec-env\n SRCS-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP) := eal.c\n SRCS-$(CONFIG_RTE_LIBRTE_EAL_BSDAPP) += eal_memory.c\ndiff --git a/lib/librte_eal/bsdapp/eal/rte_eal_version.map b/lib/librte_eal/bsdapp/eal/rte_eal_version.map\nnew file mode 100644\nindex 0000000..71788e1\n--- /dev/null\n+++ b/lib/librte_eal/bsdapp/eal/rte_eal_version.map\n@@ -0,0 +1,89 @@\n+DPDK_1.8 {\n+\tglobal:\n+\trte_eal_alarm_set;\n+\trte_eal_alarm_cancel;\n+\trte_exit;\n+\trte_cpu_get_flag_enabled;\n+\trte_cpu_check_supported;\n+\trte_get_tsc_hz;\n+\trte_get_hpet_cycles;\n+\trte_get_hpet_hz;\n+\trte_eal_hpet_init;\n+\trte_delay_us;\n+\trte_dump_stack;\n+\trte_dump_registers;\n+\t__rte_panic;\n+\trte_eal_devargs_add;\n+\trte_eal_devargs_type_count;\n+\trte_eal_devargs_dump;\n+\trte_eal_driver_register;\n+\trte_eal_driver_unregister;\n+\trte_eal_dev_init;\n+\trte_eal_init;\n+\trte_set_application_usage_hook;\n+\trte_eal_has_hugepages;\n+\trte_strerror;\n+\trte_hexdump;\n+\trte_memdump;\n+\trte_intr_callback_register;\n+\trte_intr_callback_unregister;\n+\trte_intr_enable;\n+\trte_intr_disable;\n+\trte_eal_remote_launch;\n+\trte_eal_mp_remote_launch;\n+\trte_eal_get_lcore_state;\n+\trte_eal_wait_lcore;\n+\trte_eal_mp_wait_lcore;\n+\trte_openlog_stream;\n+\trte_set_log_level;\n+\trte_set_log_type;\n+\trte_log_cur_msg_loglevel;\n+\trte_log_cur_msg_logtype;\n+\trte_log_set_history;\n+\trte_log_dump_history;\n+\trte_log_add_in_history;\n+\trte_log;\n+\trte_vlog;\n+\trte_mem_lock_page;\n+\trte_mem_virt2phy;\n+\trte_eal_get_physmem_layout;\n+\trte_dump_physmem_layout;\n+\trte_eal_get_physmem_size;\n+\trte_memory_get_nchannel;\n+\trte_memory_get_nrank;\n+\trte_mem_phy2mch;\n+\trte_xen_dom0_memory_init;\n+\trte_xen_dom0_memory_attach;\n+\trte_memzone_reserve;\n+\trte_memzone_reserve_aligned;\n+\trte_memzone_reserve_bounded;\n+\trte_memzone_lookup;\n+\trte_memzone_dump;\n+\trte_memzone_walk;\n+\trte_eal_pci_probe;\n+\trte_eal_pci_dump;\n+\trte_eal_pci_register;\n+\trte_eal_pci_unregister;\n+\trte_snprintf;\n+\trte_strsplit;\n+\trte_eal_tailq_reserve;\n+\trte_eal_tailq_reserve_by_idx;\n+\trte_dump_tailq;\n+\trte_eal_tailq_lookup;\n+\trte_eal_tailq_lookup_by_idx;\n+\tlcore_config;\n+\tper_lcore__lcore_id;\n+\teal_timer_source;\n+\trte_cycles_vmware_tsc_map;\n+\trte_eal_get_configuration;\n+\trte_logs;\n+\trte_eal_lcore_role;\n+\ttest_mp_secondary;\n+\trte_eal_process_type;\n+\tper_lcore__rte_errno;\n+\tpci_device_list;\n+\tdevargs_list;\n+\teal_parse_sysfs_value;\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_eal/linuxapp/eal/Makefile b/lib/librte_eal/linuxapp/eal/Makefile\nindex 756d6b0..254d59c 100644\n--- a/lib/librte_eal/linuxapp/eal/Makefile\n+++ b/lib/librte_eal/linuxapp/eal/Makefile\n@@ -33,6 +33,8 @@ include $(RTE_SDK)/mk/rte.vars.mk\n \n LIB = librte_eal.a\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_eal/linuxapp/eal/rte_eal_version.map\n+\n VPATH += $(RTE_SDK)/lib/librte_eal/common\n \n CFLAGS += -I$(SRCDIR)/include\ndiff --git a/lib/librte_eal/linuxapp/eal/rte_eal_version.map b/lib/librte_eal/linuxapp/eal/rte_eal_version.map\nnew file mode 100644\nindex 0000000..71788e1\n--- /dev/null\n+++ b/lib/librte_eal/linuxapp/eal/rte_eal_version.map\n@@ -0,0 +1,89 @@\n+DPDK_1.8 {\n+\tglobal:\n+\trte_eal_alarm_set;\n+\trte_eal_alarm_cancel;\n+\trte_exit;\n+\trte_cpu_get_flag_enabled;\n+\trte_cpu_check_supported;\n+\trte_get_tsc_hz;\n+\trte_get_hpet_cycles;\n+\trte_get_hpet_hz;\n+\trte_eal_hpet_init;\n+\trte_delay_us;\n+\trte_dump_stack;\n+\trte_dump_registers;\n+\t__rte_panic;\n+\trte_eal_devargs_add;\n+\trte_eal_devargs_type_count;\n+\trte_eal_devargs_dump;\n+\trte_eal_driver_register;\n+\trte_eal_driver_unregister;\n+\trte_eal_dev_init;\n+\trte_eal_init;\n+\trte_set_application_usage_hook;\n+\trte_eal_has_hugepages;\n+\trte_strerror;\n+\trte_hexdump;\n+\trte_memdump;\n+\trte_intr_callback_register;\n+\trte_intr_callback_unregister;\n+\trte_intr_enable;\n+\trte_intr_disable;\n+\trte_eal_remote_launch;\n+\trte_eal_mp_remote_launch;\n+\trte_eal_get_lcore_state;\n+\trte_eal_wait_lcore;\n+\trte_eal_mp_wait_lcore;\n+\trte_openlog_stream;\n+\trte_set_log_level;\n+\trte_set_log_type;\n+\trte_log_cur_msg_loglevel;\n+\trte_log_cur_msg_logtype;\n+\trte_log_set_history;\n+\trte_log_dump_history;\n+\trte_log_add_in_history;\n+\trte_log;\n+\trte_vlog;\n+\trte_mem_lock_page;\n+\trte_mem_virt2phy;\n+\trte_eal_get_physmem_layout;\n+\trte_dump_physmem_layout;\n+\trte_eal_get_physmem_size;\n+\trte_memory_get_nchannel;\n+\trte_memory_get_nrank;\n+\trte_mem_phy2mch;\n+\trte_xen_dom0_memory_init;\n+\trte_xen_dom0_memory_attach;\n+\trte_memzone_reserve;\n+\trte_memzone_reserve_aligned;\n+\trte_memzone_reserve_bounded;\n+\trte_memzone_lookup;\n+\trte_memzone_dump;\n+\trte_memzone_walk;\n+\trte_eal_pci_probe;\n+\trte_eal_pci_dump;\n+\trte_eal_pci_register;\n+\trte_eal_pci_unregister;\n+\trte_snprintf;\n+\trte_strsplit;\n+\trte_eal_tailq_reserve;\n+\trte_eal_tailq_reserve_by_idx;\n+\trte_dump_tailq;\n+\trte_eal_tailq_lookup;\n+\trte_eal_tailq_lookup_by_idx;\n+\tlcore_config;\n+\tper_lcore__lcore_id;\n+\teal_timer_source;\n+\trte_cycles_vmware_tsc_map;\n+\trte_eal_get_configuration;\n+\trte_logs;\n+\trte_eal_lcore_role;\n+\ttest_mp_secondary;\n+\trte_eal_process_type;\n+\tper_lcore__rte_errno;\n+\tpci_device_list;\n+\tdevargs_list;\n+\teal_parse_sysfs_value;\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_ether/Makefile b/lib/librte_ether/Makefile\nindex b310f8b..f40b5cc 100644\n--- a/lib/librte_ether/Makefile\n+++ b/lib/librte_ether/Makefile\n@@ -39,6 +39,8 @@ LIB = libethdev.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_ether/rte_ether_version.map\n+\n SRCS-y += rte_ethdev.c\n \n #\ndiff --git a/lib/librte_ether/rte_ether_version.map b/lib/librte_ether/rte_ether_version.map\nnew file mode 100644\nindex 0000000..41952ab\n--- /dev/null\n+++ b/lib/librte_ether/rte_ether_version.map\n@@ -0,0 +1,108 @@\n+DPDK_1.8 {\n+\tglobal:\n+\trte_eth_driver_register;\n+\trte_eth_dev_configure;\n+\trte_eth_rx_queue_setup;\n+\trte_eth_tx_queue_setup;\n+\trte_eth_dev_socket_id;\n+\trte_eth_dev_rx_queue_start;\n+\trte_eth_dev_rx_queue_stop;\n+\trte_eth_dev_tx_queue_start;\n+\trte_eth_dev_tx_queue_stop;\n+\trte_eth_dev_start;\n+\trte_eth_dev_stop;\n+\trte_eth_dev_set_link_up;\n+\trte_eth_dev_set_link_down;\n+\trte_eth_dev_close;\n+\trte_eth_promiscuous_enable;\n+\trte_eth_promiscuous_disable;\n+\trte_eth_promiscuous_get;\n+\trte_eth_allmulticast_enable;\n+\trte_eth_allmulticast_disable;\n+\trte_eth_allmulticast_get;\n+\trte_eth_link;\n+\trte_eth_link_get_nowait;\n+\trte_eth_stats;\n+\trte_eth_stats_reset;\n+\trte_eth_dev_set_tx_queue_stats_mapping;\n+\trte_eth_dev_set_rx_queue_stats_mapping;\n+\trte_eth_macaddr_get;\n+\trte_eth_dev_info_get;\n+\trte_eth_dev_get_mtu;\n+\trte_eth_dev_set_mtu;\n+\trte_eth_dev_vlan_filter;\n+\trte_eth_dev_set_vlan_strip_on_queue;\n+\trte_eth_dev_set_vlan_ether_type;\n+\trte_eth_dev_set_vlan_offload;\n+\trte_eth_dev_get_vlan_offload;\n+\trte_eth_dev_set_vlan_pvid;\n+\trte_eth_rx_burst;\n+\trte_eth_rx_queue_count;\n+\trte_eth_rx_descriptor_done;\n+\trte_eth_tx_burst;\n+\trte_eth_dev_fdir_add_signature_filter;\n+\trte_eth_dev_fdir_update_signature_filter;\n+\trte_eth_dev_fdir_remove_signature_filter;\n+\trte_eth_dev_fdir_get_infos;\n+\trte_eth_dev_fdir_add_perfect_filter;\n+\trte_eth_dev_fdir_update_perfect_filter;\n+\trte_eth_dev_fdir_remove_perfect_filter;\n+\trte_eth_dev_fdir_set_masks;\n+\trte_eth_dev_callback_register;\n+\trte_eth_dev_callback_unregister;\n+\trte_eth_dev_callback_process;\n+\trte_eth_led_on;\n+\trte_eth_led_off;\n+\trte_eth_dev_flow_ctrl_get;\n+\trte_eth_dev_flow_ctrl_set;\n+\trte_eth_dev_priority_flow_ctrl_set;\n+\trte_eth_dev_mac_addr_add;\n+\trte_eth_dev_mac_addr_remove;\n+\trte_eth_dev_rss_reta_update;\n+\trte_eth_dev_rss_reta_query;\n+\trte_eth_dev_uc_hash_table_set;\n+\trte_eth_dev_uc_all_hash_table_set;\n+\trte_eth_dev_set_vf_rxmode;\n+\trte_eth_dev_set_vf_tx;\n+\trte_eth_dev_set_vf_rx;\n+\trte_eth_dev_set_vf_vlan_filter;\n+\trte_eth_mirror_rule_set;\n+\trte_eth_mirror_rule_reset;\n+\trte_eth_set_queue_rate_limit;\n+\trte_eth_set_vf_rate_limit;\n+\trte_eth_dev_bypass_init;\n+\trte_eth_dev_bypass_state_show;\n+\trte_eth_dev_bypass_state_set;\n+\trte_eth_dev_bypass_event_show;\n+\trte_eth_dev_bypass_event_store;\n+\trte_eth_dev_wd_timeout_store;\n+\trte_eth_dev_bypass_ver_show;\n+\trte_eth_dev_bypass_wd_timeout_show;\n+\trte_eth_dev_bypass_wd_reset;\n+\trte_eth_dev_rss_hash_update;\n+\trte_eth_dev_rss_hash_conf_get;\n+\trte_eth_dev_add_syn_filter;\n+\trte_eth_dev_remove_syn_filter;\n+\trte_eth_dev_get_syn_filter;\n+\trte_eth_dev_add_ethertype_filter;\n+\trte_eth_dev_remove_ethertype_filter;\n+\trte_eth_dev_get_ethertype_filter;\n+\trte_eth_dev_add_2tuple_filter;\n+\trte_eth_dev_remove_2tuple_filter;\n+\trte_eth_dev_get_2tuple_filter;\n+\trte_eth_dev_add_5tuple_filter;\n+\trte_eth_dev_remove_5tuple_filter;\n+\trte_eth_dev_get_5tuple_filter;\n+\trte_eth_dev_add_flex_filter;\n+\trte_eth_dev_remove_flex_filter;\n+\trte_eth_dev_get_flex_filter;\n+\trte_eth_dev_count;\n+\trte_eth_link_get;\n+\trte_eth_devices;\n+\trte_eth_stats_get;\n+\trte_eth_dev_allocate;\n+\t_rte_eth_dev_callback_process;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_hash/Makefile b/lib/librte_hash/Makefile\nindex 95e4c09..a449ec2 100644\n--- a/lib/librte_hash/Makefile\n+++ b/lib/librte_hash/Makefile\n@@ -37,6 +37,8 @@ LIB = librte_hash.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_hash/rte_hash_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_HASH) := rte_hash.c\n SRCS-$(CONFIG_RTE_LIBRTE_HASH) += rte_fbk_hash.c\ndiff --git a/lib/librte_hash/rte_hash_version.map b/lib/librte_hash/rte_hash_version.map\nnew file mode 100644\nindex 0000000..2a34313\n--- /dev/null\n+++ b/lib/librte_hash/rte_hash_version.map\n@@ -0,0 +1,18 @@\n+DPDK_1.8 {\n+\tglobal:\n+\trte_fbk_hash_find_existing;\n+\trte_fbk_hash_create;\n+\trte_fbk_hash_free;\n+\trte_hash_create;\n+\trte_hash_find_existing;\n+\trte_hash_free;\n+\trte_hash_add_key;\n+\trte_hash_add_key_with_hash;\n+\trte_hash_del_key;\n+\trte_hash_del_key_with_hash;\n+\trte_hash_lookup;\n+\trte_hash_lookup_with_hash;\n+\trte_hash_lookup_bulk;\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_ip_frag/Makefile b/lib/librte_ip_frag/Makefile\nindex 2265c93..ede5a89 100644\n--- a/lib/librte_ip_frag/Makefile\n+++ b/lib/librte_ip_frag/Makefile\n@@ -37,6 +37,8 @@ LIB = librte_ip_frag.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_ip_frag/rte_ipfrag_version.map\n+\n #source files\n SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_fragmentation.c\n SRCS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += rte_ipv4_reassembly.c\ndiff --git a/lib/librte_ip_frag/rte_ipfrag_version.map b/lib/librte_ip_frag/rte_ipfrag_version.map\nnew file mode 100644\nindex 0000000..afe1a0b\n--- /dev/null\n+++ b/lib/librte_ip_frag/rte_ipfrag_version.map\n@@ -0,0 +1,14 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_ip_frag_table_create;\n+\trte_ipv6_fragment_packet;\n+\trte_ipv6_frag_reassemble_packet;\n+\trte_ipv4_fragment_packet;\n+\trte_ipv4_frag_reassemble_packet;\n+\trte_ip_frag_free_death_row;\n+\trte_ip_frag_table_statistics_dump;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_ivshmem/Makefile b/lib/librte_ivshmem/Makefile\nindex 536814c..be6f21a 100644\n--- a/lib/librte_ivshmem/Makefile\n+++ b/lib/librte_ivshmem/Makefile\n@@ -36,6 +36,8 @@ LIB = librte_ivshmem.a\n \n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3\n \n+EXPORT_MAPS := $(RTE_SDK)/lib/librte_ivshmem/rte_ivshmem_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_IVSHMEM) := rte_ivshmem.c\n \ndiff --git a/lib/librte_ivshmem/rte_ivshmem_version.map b/lib/librte_ivshmem/rte_ivshmem_version.map\nnew file mode 100644\nindex 0000000..a204339\n--- /dev/null\n+++ b/lib/librte_ivshmem/rte_ivshmem_version.map\n@@ -0,0 +1,13 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_ivshmem_metadata_create;\n+\trte_ivshmem_metadata_add_memzone;\n+\trte_ivshmem_metadata_add_ring;\n+\trte_ivshmem_metadata_add_mempool;\n+\trte_ivshmem_metadata_cmdline_generate;\n+\trte_ivshmem_metadata_dump;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_kni/Makefile b/lib/librte_kni/Makefile\nindex 5267304..c119fc1 100644\n--- a/lib/librte_kni/Makefile\n+++ b/lib/librte_kni/Makefile\n@@ -36,6 +36,8 @@ LIB = librte_kni.a\n \n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_kni/rte_kni_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_KNI) := rte_kni.c\n \ndiff --git a/lib/librte_kni/rte_kni_version.map b/lib/librte_kni/rte_kni_version.map\nnew file mode 100644\nindex 0000000..58fbc1f\n--- /dev/null\n+++ b/lib/librte_kni/rte_kni_version.map\n@@ -0,0 +1,19 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_kni_alloc;\n+\trte_kni_create;\n+\trte_kni_release;\n+\trte_kni_handle_request;\n+\trte_kni_rx_burst;\n+\trte_kni_tx_burst;\n+\trte_kni_get_port_id;\n+\trte_kni_get;\n+\trte_kni_info_get;\n+\trte_kni_register_handlers;\n+\trte_kni_unregister_handlers;\n+\trte_kni_close;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_kvargs/Makefile b/lib/librte_kvargs/Makefile\nindex b09359a..83a42b1 100644\n--- a/lib/librte_kvargs/Makefile\n+++ b/lib/librte_kvargs/Makefile\n@@ -38,6 +38,8 @@ LIB = librte_kvargs.a\n \n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_kvargs/rte_kvargs_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_KVARGS) := rte_kvargs.c\n \ndiff --git a/lib/librte_kvargs/rte_kvargs_version.map b/lib/librte_kvargs/rte_kvargs_version.map\nnew file mode 100644\nindex 0000000..7873c8c\n--- /dev/null\n+++ b/lib/librte_kvargs/rte_kvargs_version.map\n@@ -0,0 +1,10 @@\n+DPDK_1.8 {\n+\n+\tglobal:\n+\trte_kvargs_parse;\n+\trte_kvargs_free;\n+\trte_kvargs_process;\n+\trte_kvargs_count;\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_lpm/Makefile b/lib/librte_lpm/Makefile\nindex fa94163..05de8d9 100644\n--- a/lib/librte_lpm/Makefile\n+++ b/lib/librte_lpm/Makefile\n@@ -37,6 +37,8 @@ LIB = librte_lpm.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_lpm/rte_lpm_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_LPM) := rte_lpm.c rte_lpm6.c\n \ndiff --git a/lib/librte_lpm/rte_lpm_version.map b/lib/librte_lpm/rte_lpm_version.map\nnew file mode 100644\nindex 0000000..8ae9318\n--- /dev/null\n+++ b/lib/librte_lpm/rte_lpm_version.map\n@@ -0,0 +1,24 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_lpm_create;\n+\trte_lpm_find_existing;\n+\trte_lpm_free;\n+\trte_lpm_add;\n+\trte_lpm_is_rule_present;\n+\trte_lpm_delete;\n+\trte_lpm_delete_all;\n+\trte_lpm6_create;\n+\trte_lpm6_find_existing;\n+\trte_lpm6_free;\n+\trte_lpm6_add;\n+\trte_lpm6_is_rule_present;\n+\trte_lpm6_delete;\n+\trte_lpm6_delete_bulk_func;\n+\trte_lpm6_delete_all;\n+\trte_lpm6_lookup;\n+\trte_lpm6_lookup_bulk_func;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_malloc/Makefile b/lib/librte_malloc/Makefile\nindex ba87e34..1a5c288 100644\n--- a/lib/librte_malloc/Makefile\n+++ b/lib/librte_malloc/Makefile\n@@ -36,6 +36,8 @@ LIB = librte_malloc.a\n \n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_malloc/rte_malloc_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_MALLOC) := rte_malloc.c malloc_elem.c malloc_heap.c\n \ndiff --git a/lib/librte_malloc/rte_malloc_version.map b/lib/librte_malloc/rte_malloc_version.map\nnew file mode 100644\nindex 0000000..77db879\n--- /dev/null\n+++ b/lib/librte_malloc/rte_malloc_version.map\n@@ -0,0 +1,19 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_malloc;\n+\trte_zmalloc;\n+\trte_calloc;\n+\trte_realloc;\n+\trte_malloc_socket;\n+\trte_zmalloc_socket;\n+\trte_calloc_socket;\n+\trte_free;\n+\trte_malloc_validate;\n+\trte_malloc_get_socket_stats;\n+\trte_malloc_dump_stats;\n+\trte_malloc_set_limit;\n+\trte_malloc_virt2phy;\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_mbuf/Makefile b/lib/librte_mbuf/Makefile\nindex 9b45ba4..5cd4941 100644\n--- a/lib/librte_mbuf/Makefile\n+++ b/lib/librte_mbuf/Makefile\n@@ -36,6 +36,8 @@ LIB = librte_mbuf.a\n \n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_mbuf/rte_mbuf_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_MBUF) := rte_mbuf.c\n \ndiff --git a/lib/librte_mbuf/rte_mbuf_version.map b/lib/librte_mbuf/rte_mbuf_version.map\nnew file mode 100644\nindex 0000000..55e352b\n--- /dev/null\n+++ b/lib/librte_mbuf/rte_mbuf_version.map\n@@ -0,0 +1,12 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_mbuf_sanity_check;\n+\trte_ctrlmbuf_init;\n+\trte_pktmbuf_init;\n+\trte_pktmbuf_pool_init;\n+\trte_pktmbuf_dump;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_mempool/Makefile b/lib/librte_mempool/Makefile\nindex 9939e10..07b5b4e 100644\n--- a/lib/librte_mempool/Makefile\n+++ b/lib/librte_mempool/Makefile\n@@ -36,6 +36,8 @@ LIB = librte_mempool.a\n \n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_mempool/rte_mempool_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_MEMPOOL) +=  rte_mempool.c\n ifeq ($(CONFIG_RTE_LIBRTE_XEN_DOM0),y)\ndiff --git a/lib/librte_mempool/rte_mempool_version.map b/lib/librte_mempool/rte_mempool_version.map\nnew file mode 100644\nindex 0000000..7a19982\n--- /dev/null\n+++ b/lib/librte_mempool/rte_mempool_version.map\n@@ -0,0 +1,18 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_mempool_create;\n+\trte_mempool_xmem_create;\n+\trte_dom0_mempool_create;\n+\trte_mempool_dump;\n+\trte_mempool_audit;\n+\trte_mempool_list_dump;\n+\trte_mempool_lookup;\n+\trte_mempool_calc_obj_size;\n+\trte_mempool_xmem_size;\n+\trte_mempool_xmem_usage;\n+\trte_mempool_walk;\n+\trte_mempool_count;\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_meter/Makefile b/lib/librte_meter/Makefile\nindex b25c0cc..0778690 100644\n--- a/lib/librte_meter/Makefile\n+++ b/lib/librte_meter/Makefile\n@@ -39,6 +39,8 @@ LIB = librte_meter.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_meter/rte_meter_version.map\n+\n #\n # all source are stored in SRCS-y\n #\ndiff --git a/lib/librte_meter/rte_meter_version.map b/lib/librte_meter/rte_meter_version.map\nnew file mode 100644\nindex 0000000..51a73b1\n--- /dev/null\n+++ b/lib/librte_meter/rte_meter_version.map\n@@ -0,0 +1,13 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_meter_srtcm_config;\n+\trte_meter_trtcm_config;\n+\trte_meter_srtcm_color_blind_check;\n+\trte_meter_srtcm_color_aware_check;\n+\trte_meter_trtcm_color_blind_check;\n+\trte_meter_trtcm_color_aware_check;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_pipeline/Makefile b/lib/librte_pipeline/Makefile\nindex cf8fde8..5465d00 100644\n--- a/lib/librte_pipeline/Makefile\n+++ b/lib/librte_pipeline/Makefile\n@@ -39,6 +39,8 @@ LIB = librte_pipeline.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_pipeline/rte_pipeline_version.map\n+\n #\n # all source are stored in SRCS-y\n #\ndiff --git a/lib/librte_pipeline/rte_pipeline_version.map b/lib/librte_pipeline/rte_pipeline_version.map\nnew file mode 100644\nindex 0000000..f868b96\n--- /dev/null\n+++ b/lib/librte_pipeline/rte_pipeline_version.map\n@@ -0,0 +1,23 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_pipeline_create;\n+\trte_pipeline_free;\n+\trte_pipeline_check;\n+\trte_pipeline_run;\n+\trte_pipeline_flush;\n+\trte_pipeline_table_create;\n+\trte_pipeline_table_default_entry_add;\n+\trte_pipeline_table_default_entry_delete;\n+\trte_pipeline_table_entry_add;\n+\trte_pipeline_table_entry_delete;\n+\trte_pipeline_port_in_create;\n+\trte_pipeline_port_in_connect_to_table;\n+\trte_pipeline_port_in_enable;\n+\trte_pipeline_port_in_disable;\n+\trte_pipeline_port_out_create;\n+\trte_pipeline_port_out_packet_insert;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_pmd_bond/Makefile b/lib/librte_pmd_bond/Makefile\nindex 953d75e..5b14ce2 100644\n--- a/lib/librte_pmd_bond/Makefile\n+++ b/lib/librte_pmd_bond/Makefile\n@@ -39,6 +39,8 @@ LIB = librte_pmd_bond.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_bond/rte_eth_bond_version.map\n+\n #\n # all source are stored in SRCS-y\n #\ndiff --git a/lib/librte_pmd_bond/rte_eth_bond_version.map b/lib/librte_pmd_bond/rte_eth_bond_version.map\nnew file mode 100644\nindex 0000000..17f0a1f\n--- /dev/null\n+++ b/lib/librte_pmd_bond/rte_eth_bond_version.map\n@@ -0,0 +1,20 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_eth_bond_create;\n+\trte_eth_bond_slave_add;\n+\trte_eth_bond_slave_remove;\n+\trte_eth_bond_mode_set;\n+\trte_eth_bond_mode_get;\n+\trte_eth_bond_primary_set;\n+\trte_eth_bond_primary_get;\n+\trte_eth_bond_slaves_get;\n+\trte_eth_bond_active_slaves_get;\n+\trte_eth_bond_mac_address_set;\n+\trte_eth_bond_mac_address_reset;\n+\trte_eth_bond_xmit_policy_set;\n+\trte_eth_bond_xmit_policy_get;\n+\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_pmd_e1000/Makefile b/lib/librte_pmd_e1000/Makefile\nindex 14bc4a2..e225bfe 100644\n--- a/lib/librte_pmd_e1000/Makefile\n+++ b/lib/librte_pmd_e1000/Makefile\n@@ -39,6 +39,8 @@ LIB = librte_pmd_e1000.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_e1000/rte_pmd_e1000_version.map\n+\n ifeq ($(CC), icc)\n #\n # CFLAGS for icc\ndiff --git a/lib/librte_pmd_e1000/rte_pmd_e1000_version.map b/lib/librte_pmd_e1000/rte_pmd_e1000_version.map\nnew file mode 100644\nindex 0000000..cbc401f\n--- /dev/null\n+++ b/lib/librte_pmd_e1000/rte_pmd_e1000_version.map\n@@ -0,0 +1,5 @@\n+DPDK_1.8 {\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_pmd_i40e/Makefile b/lib/librte_pmd_i40e/Makefile\nindex 4b31675..cfbe816 100644\n--- a/lib/librte_pmd_i40e/Makefile\n+++ b/lib/librte_pmd_i40e/Makefile\n@@ -39,6 +39,8 @@ LIB = librte_pmd_i40e.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_i40e/rte_pmd_i40e_version.map\n+\n #\n # Add extra flags for base driver files (also known as shared code)\n # to disable warnings\ndiff --git a/lib/librte_pmd_i40e/rte_pmd_i40e_version.map b/lib/librte_pmd_i40e/rte_pmd_i40e_version.map\nnew file mode 100644\nindex 0000000..cbc401f\n--- /dev/null\n+++ b/lib/librte_pmd_i40e/rte_pmd_i40e_version.map\n@@ -0,0 +1,5 @@\n+DPDK_1.8 {\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_pmd_ixgbe/Makefile b/lib/librte_pmd_ixgbe/Makefile\nindex 00ccedb..1dd14a6 100644\n--- a/lib/librte_pmd_ixgbe/Makefile\n+++ b/lib/librte_pmd_ixgbe/Makefile\n@@ -39,6 +39,8 @@ LIB = librte_pmd_ixgbe.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map\n+\n ifeq ($(CC), icc)\n #\n # CFLAGS for icc\ndiff --git a/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map b/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map\nnew file mode 100644\nindex 0000000..cbc401f\n--- /dev/null\n+++ b/lib/librte_pmd_ixgbe/rte_pmd_ixgbe_version.map\n@@ -0,0 +1,5 @@\n+DPDK_1.8 {\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_pmd_pcap/Makefile b/lib/librte_pmd_pcap/Makefile\nindex c5c214d..fff5572 100644\n--- a/lib/librte_pmd_pcap/Makefile\n+++ b/lib/librte_pmd_pcap/Makefile\n@@ -40,6 +40,8 @@ LIB = librte_pmd_pcap.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_pcap/rte_pmd_pcap_version.map\n+\n #\n # all source are stored in SRCS-y\n #\ndiff --git a/lib/librte_pmd_pcap/rte_pmd_pcap_version.map b/lib/librte_pmd_pcap/rte_pmd_pcap_version.map\nnew file mode 100644\nindex 0000000..cbc401f\n--- /dev/null\n+++ b/lib/librte_pmd_pcap/rte_pmd_pcap_version.map\n@@ -0,0 +1,5 @@\n+DPDK_1.8 {\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_pmd_ring/Makefile b/lib/librte_pmd_ring/Makefile\nindex b57e421..25ad27f 100644\n--- a/lib/librte_pmd_ring/Makefile\n+++ b/lib/librte_pmd_ring/Makefile\n@@ -39,6 +39,8 @@ LIB = librte_pmd_ring.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_ring/rte_eth_ring_version.map\n+\n #\n # all source are stored in SRCS-y\n #\ndiff --git a/lib/librte_pmd_ring/rte_eth_ring.c b/lib/librte_pmd_ring/rte_eth_ring.c\nindex 4f1b6ed..df7b583 100644\n--- a/lib/librte_pmd_ring/rte_eth_ring.c\n+++ b/lib/librte_pmd_ring/rte_eth_ring.c\n@@ -473,7 +473,7 @@ out:\n \treturn ret;\n }\n \n-int\n+static int\n rte_pmd_ring_devinit(const char *name, const char *params)\n {\n \tstruct rte_kvargs *kvlist;\ndiff --git a/lib/librte_pmd_ring/rte_eth_ring.h b/lib/librte_pmd_ring/rte_eth_ring.h\nindex e6ae19e..d36489a 100644\n--- a/lib/librte_pmd_ring/rte_eth_ring.h\n+++ b/lib/librte_pmd_ring/rte_eth_ring.h\n@@ -50,12 +50,6 @@ int rte_eth_from_rings(const char *name,\n int rte_eth_ring_pair_create(const char *name, const unsigned numa_node);\n int rte_eth_ring_pair_attach(const char *name, const unsigned numa_node);\n \n-/**\n- * For use by test apps only. Called as part of EAL init to set up any dummy NICs\n- * configured on command line.\n- */\n-int rte_pmd_ring_devinit(const char *name, const char *params);\n-\n #ifdef __cplusplus\n }\n #endif\ndiff --git a/lib/librte_pmd_ring/rte_eth_ring_version.map b/lib/librte_pmd_ring/rte_eth_ring_version.map\nnew file mode 100644\nindex 0000000..5edaa3d\n--- /dev/null\n+++ b/lib/librte_pmd_ring/rte_eth_ring_version.map\n@@ -0,0 +1,10 @@\n+DPDK_1.8 {\n+\n+\tglobal:\n+\n+\trte_eth_from_rings;\n+\trte_eth_ring_pair_create;\n+\trte_eth_ring_pair_attach;\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_pmd_virtio/Makefile b/lib/librte_pmd_virtio/Makefile\nindex 456095b..bf51bd9 100644\n--- a/lib/librte_pmd_virtio/Makefile\n+++ b/lib/librte_pmd_virtio/Makefile\n@@ -39,6 +39,7 @@ LIB = librte_pmd_virtio_uio.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_virtio/rte_pmd_virtio_version.map\n \n #\n # all source are stored in SRCS-y\ndiff --git a/lib/librte_pmd_virtio/rte_pmd_virtio_version.map b/lib/librte_pmd_virtio/rte_pmd_virtio_version.map\nnew file mode 100644\nindex 0000000..cbc401f\n--- /dev/null\n+++ b/lib/librte_pmd_virtio/rte_pmd_virtio_version.map\n@@ -0,0 +1,5 @@\n+DPDK_1.8 {\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_pmd_vmxnet3/Makefile b/lib/librte_pmd_vmxnet3/Makefile\nindex 6872c74..e5a1c6b 100644\n--- a/lib/librte_pmd_vmxnet3/Makefile\n+++ b/lib/librte_pmd_vmxnet3/Makefile\n@@ -66,6 +66,8 @@ endif\n \n VPATH += $(RTE_SDK)/lib/librte_pmd_vmxnet3/vmxnet3\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map\n+\n #\n # all source are stored in SRCS-y\n #\ndiff --git a/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map b/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map\nnew file mode 100644\nindex 0000000..cbc401f\n--- /dev/null\n+++ b/lib/librte_pmd_vmxnet3/rte_pmd_vmxnet3_version.map\n@@ -0,0 +1,5 @@\n+DPDK_1.8 {\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_pmd_xenvirt/Makefile b/lib/librte_pmd_xenvirt/Makefile\nindex 01bfcaa..0a08b1b 100644\n--- a/lib/librte_pmd_xenvirt/Makefile\n+++ b/lib/librte_pmd_xenvirt/Makefile\n@@ -39,6 +39,8 @@ LIB = librte_pmd_xenvirt.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map\n+\n #\n # all source are stored in SRCS-y\n #\ndiff --git a/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map b/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map\nnew file mode 100644\nindex 0000000..66199b1\n--- /dev/null\n+++ b/lib/librte_pmd_xenvirt/rte_eth_xenvirt_version.map\n@@ -0,0 +1,8 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_mempool_gntalloc_create;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_port/Makefile b/lib/librte_port/Makefile\nindex 28793a5..e812bda 100644\n--- a/lib/librte_port/Makefile\n+++ b/lib/librte_port/Makefile\n@@ -39,6 +39,8 @@ LIB = librte_port.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_port/rte_port_version.map\n+\n #\n # all source are stored in SRCS-y\n #\ndiff --git a/lib/librte_port/rte_port_version.map b/lib/librte_port/rte_port_version.map\nnew file mode 100644\nindex 0000000..57ccaa3\n--- /dev/null\n+++ b/lib/librte_port/rte_port_version.map\n@@ -0,0 +1,18 @@\n+DPDK_1.8 {\n+\tglobal:\n+\trte_port_ring_reader_ops;\n+\trte_port_ring_writer_ops;\n+\trte_port_ethdev_reader_ops;\n+\trte_port_ethdev_writer_ops;\n+\trte_port_ring_reader_ipv4_frag_ops;\n+\trte_port_ring_writer_ipv4_ras_ops;\n+\trte_port_ring_reader_ops;\n+\trte_port_ring_writer_ops;\n+\trte_port_sched_reader_ops;\n+\trte_port_sched_writer_ops;\n+\trte_port_source_ops;\n+\trte_port_sink_ops;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_power/Makefile b/lib/librte_power/Makefile\nindex 6185812..26ee542 100644\n--- a/lib/librte_power/Makefile\n+++ b/lib/librte_power/Makefile\n@@ -36,6 +36,8 @@ LIB = librte_power.a\n \n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3 -fno-strict-aliasing\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_power/rte_power_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_POWER) := rte_power.c\n \ndiff --git a/lib/librte_power/rte_power_version.map b/lib/librte_power/rte_power_version.map\nnew file mode 100644\nindex 0000000..3b2375a\n--- /dev/null\n+++ b/lib/librte_power/rte_power_version.map\n@@ -0,0 +1,14 @@\n+DPDK_1.8 {\n+\tglobal:\n+\trte_power_init;\n+\trte_power_exit;\n+\trte_power_freqs;\n+\trte_power_get_freq;\n+\trte_power_set_freq;\n+\trte_power_freq_up;\n+\trte_power_freq_down;\n+\trte_power_freq_max;\n+\trte_power_freq_min;\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_ring/Makefile b/lib/librte_ring/Makefile\nindex 2380a43..0adaa00 100644\n--- a/lib/librte_ring/Makefile\n+++ b/lib/librte_ring/Makefile\n@@ -36,6 +36,8 @@ LIB = librte_ring.a\n \n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_ring/rte_ring_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_RING) := rte_ring.c\n \ndiff --git a/lib/librte_ring/rte_ring_version.map b/lib/librte_ring/rte_ring_version.map\nnew file mode 100644\nindex 0000000..6c28af9\n--- /dev/null\n+++ b/lib/librte_ring/rte_ring_version.map\n@@ -0,0 +1,12 @@\n+DPDK_1.8 {\n+\tglobal:\n+\trte_ring_get_memsize;\n+\trte_ring_init;\n+\trte_ring_create;\n+\trte_ring_set_water_mark;\n+\trte_ring_dump;\n+\trte_ring_list_dump;\n+\trte_ring_lookup;\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_sched/Makefile b/lib/librte_sched/Makefile\nindex 1a25b21..205fb7a 100644\n--- a/lib/librte_sched/Makefile\n+++ b/lib/librte_sched/Makefile\n@@ -41,6 +41,8 @@ CFLAGS += $(WERROR_FLAGS)\n \n CFLAGS_rte_red.o := -D_GNU_SOURCE\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_sched/rte_sched_version.map\n+\n #\n # all source are stored in SRCS-y\n #\ndiff --git a/lib/librte_sched/rte_sched_version.map b/lib/librte_sched/rte_sched_version.map\nnew file mode 100644\nindex 0000000..b5877ce\n--- /dev/null\n+++ b/lib/librte_sched/rte_sched_version.map\n@@ -0,0 +1,22 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_approx;\n+\trte_red_rt_data_init;\n+\trte_red_config_init;\n+\trte_sched_port_config;\n+\trte_sched_port_free;\n+\trte_sched_subport_config;\n+\trte_sched_pipe_config;\n+\trte_sched_port_get_memory_footprint;\n+\trte_sched_subport_read_stats;\n+\trte_sched_queue_read_stats;\n+\trte_sched_port_enqueue;\n+\trte_sched_port_dequeue;\n+\trte_red_log2_1_minus_Wq;\n+\trte_red_pow2_frac_inv;\n+\trte_red_rand_val;\n+\trte_red_rand_seed;\n+\n+\tlocal: *;\n+};\ndiff --git a/lib/librte_table/Makefile b/lib/librte_table/Makefile\nindex dd684cc..5b54acc 100644\n--- a/lib/librte_table/Makefile\n+++ b/lib/librte_table/Makefile\n@@ -39,6 +39,8 @@ LIB = librte_table.a\n CFLAGS += -O3\n CFLAGS += $(WERROR_FLAGS)\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_table/rte_table_version.map\n+\n #\n # all source are stored in SRCS-y\n #\ndiff --git a/lib/librte_table/rte_table_version.map b/lib/librte_table/rte_table_version.map\nnew file mode 100644\nindex 0000000..86f16b8\n--- /dev/null\n+++ b/lib/librte_table/rte_table_version.map\n@@ -0,0 +1,22 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_table_stub_ops;\n+\trte_table_lpm_ops;\n+\trte_table_array_ops;\n+\trte_table_hash_key8_lru_ops;\n+\trte_table_hash_key8_lru_dosig_ops;\n+\trte_table_hash_key8_ext_ops;\n+\trte_table_hash_key8_ext_dosig_ops;\n+\trte_table_lpm_ipv6_ops;\n+\trte_table_hash_key16_lru_ops;\n+\trte_table_hash_key32_lru_ops;\n+\trte_table_hash_key16_ext_ops;\n+\trte_table_hash_key32_ext_ops;\n+\trte_table_acl_ops;\n+\trte_table_hash_lru_ops;\n+\trte_table_hash_ext_ops;\n+\n+\tlocal: *;\n+};\n+\ndiff --git a/lib/librte_timer/Makefile b/lib/librte_timer/Makefile\nindex 07eb0c6..f703e5f 100644\n--- a/lib/librte_timer/Makefile\n+++ b/lib/librte_timer/Makefile\n@@ -36,6 +36,8 @@ LIB = librte_timer.a\n \n CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR) -O3\n \n+EXPORT_MAP := $(RTE_SDK)/lib/librte_timer/rte_timer_version.map\n+\n # all source are stored in SRCS-y\n SRCS-$(CONFIG_RTE_LIBRTE_TIMER) := rte_timer.c\n \ndiff --git a/lib/librte_timer/rte_timer_version.map b/lib/librte_timer/rte_timer_version.map\nnew file mode 100644\nindex 0000000..00b6b52\n--- /dev/null\n+++ b/lib/librte_timer/rte_timer_version.map\n@@ -0,0 +1,16 @@\n+DPDK_1.8 {\n+\tglobal:\n+\n+\trte_timer_subsystem_init;\n+\trte_timer_init;\n+\trte_timer_reset;\n+\trte_timer_reset_sync;\n+\trte_timer_stop;\n+\trte_timer_stop_sync;\n+\trte_timer_pending;\n+\trte_timer_manage;\n+\trte_timer_dump_stats;\n+\n+\tlocal: *;\n+};\n+\n",
    "prefixes": [
        "dpdk-dev",
        "2/4"
    ]
}