DPDK patches and discussions
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@tuxdriver.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH v3 2/4] Provide initial versioning for all DPDK libraries
Date: Wed, 14 Jan 2015 11:24:38 -0500
Message-ID: <20150114162438.GA24512@localhost.localdomain> (raw)
In-Reply-To: <1996722.WEmzGEN7VB@xps13>

On Wed, Jan 14, 2015 at 04:29:29PM +0100, Thomas Monjalon wrote:
> 2014-12-23 10:51, Neil Horman:
> > 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
> 
> [...]
> 
> >  lib/librte_acl/Makefile                            |   2 +
> >  lib/librte_acl/rte_acl_version.map                 |  21 ++++
> >  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      |  90 ++++++++++++++++
> >  lib/librte_eal/linuxapp/eal/Makefile               |   2 +
> >  lib/librte_eal/linuxapp/eal/rte_eal_version.map    |  90 ++++++++++++++++
> >  lib/librte_ether/Makefile                          |   2 +
> >  lib/librte_ether/rte_ether_version.map             | 113 +++++++++++++++++++++
> >  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                 |  20 ++++
> >  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               |  14 +++
> >  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_af_packet/Makefile                  |   2 +
> >  .../rte_pmd_af_packet_version.map                  |   7 ++
> >  lib/librte_pmd_bond/Makefile                       |   2 +
> >  lib/librte_pmd_bond/rte_eth_bond_version.map       |  21 ++++
> >  lib/librte_pmd_e1000/Makefile                      |   2 +
> >  lib/librte_pmd_e1000/rte_pmd_e1000_version.map     |   5 +
> >  lib/librte_pmd_enic/Makefile                       |   2 +
> >  lib/librte_pmd_enic/rte_pmd_enic_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             |  18 ++++
> >  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 +++
> >  lib/librte_vhost/Makefile                          |   2 +
> >  lib/librte_vhost/rte_vhost_version.map             |  14 +++
> 
> Honestly, this patch is difficult to review.
> How have you populated .map files? Did you use some script?
> 
I did it the same way I did it the first time I posted this patch way back for
1.8.  I used the libraries' exported header files as a starting point, and
stripped them so that only the function symbols remained (as those are the only
symbols that can be versioned).  I tagged those with a version number, and the
appropriate version script boilerplate syntax.

Not sure what I can do to make review simpler.  But if you have a suggestion,
I'm happy to listen.

> [...]
> 
> > --- a/mk/rte.lib.mk
> > +++ b/mk/rte.lib.mk
> > -CPU_LDFLAGS += --version-script=$(EXPORT_MAP)
> > +CPU_LDFLAGS += --version-script=$(SRCDIR)/$(EXPORT_MAP)
> 
> I guess this change should go in patch 1 which introduced this option.
> 
I can, though its not really necessecary, since I didn't list any EXPORT_MAP
variables in patch 1.

Regards
Neil


> -- 
> Thomas
> 

  reply	other threads:[~2015-01-14 16:25 UTC|newest]

Thread overview: 99+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-20 21:01 [dpdk-dev] Add DSO symbol versioning to supportbackwards compatibility Neil Horman
2014-12-20 21:01 ` [dpdk-dev] [PATCH 1/4] compat: Add infrastructure to support symbol versioning Neil Horman
2014-12-22 14:01   ` Gonzalez Monroy, Sergio
2014-12-22 16:22     ` Neil Horman
2014-12-22 16:34     ` Neil Horman
2014-12-22 17:09       ` Gonzalez Monroy, Sergio
2014-12-22 19:00         ` Neil Horman
2014-12-22 20:04           ` Neil Horman
2014-12-20 21:01 ` [dpdk-dev] [PATCH 2/4] Provide initial versioning for all DPDK libraries Neil Horman
2014-12-20 21:01 ` [dpdk-dev] [PATCH 3/4] Add library version extenstion Neil Horman
2014-12-20 21:01 ` [dpdk-dev] [PATCH 4/4] docs: Add ABI documentation Neil Horman
2014-12-22 20:24 ` [dpdk-dev] [PATCH v2 1/4] compat: Add infrastructure to support symbol versioning Neil Horman
2014-12-22 20:24   ` [dpdk-dev] [PATCH v2 2/4] Provide initial versioning for all DPDK libraries Neil Horman
2014-12-22 20:24   ` [dpdk-dev] [PATCH v2 3/4] Add library version extenstion Neil Horman
2014-12-23 13:05     ` Gonzalez Monroy, Sergio
2014-12-23 15:50       ` Neil Horman
2014-12-22 20:24   ` [dpdk-dev] [PATCH v2 4/4] docs: Add ABI documentation Neil Horman
2014-12-23  9:48     ` Iremonger, Bernard
2014-12-23 13:01       ` Neil Horman
2014-12-23 13:27   ` [dpdk-dev] [PATCH v2 1/4] compat: Add infrastructure to support symbol versioning Gonzalez Monroy, Sergio
2014-12-23 15:50     ` Neil Horman
2014-12-23 15:51 ` [dpdk-dev] [PATCH v3 " Neil Horman
2014-12-23 15:51   ` [dpdk-dev] [PATCH v3 2/4] Provide initial versioning for all DPDK libraries Neil Horman
2014-12-29 16:21     ` Sergio Gonzalez Monroy
2015-01-14 15:29     ` Thomas Monjalon
2015-01-14 16:24       ` Neil Horman [this message]
2014-12-23 15:51   ` [dpdk-dev] [PATCH v3 3/4] Add library version extenstion Neil Horman
2014-12-23 16:44     ` Gonzalez Monroy, Sergio
2014-12-23 17:08       ` Neil Horman
2014-12-29 16:23     ` Sergio Gonzalez Monroy
2015-01-14 15:48     ` Thomas Monjalon
2014-12-23 15:51   ` [dpdk-dev] [PATCH v3 4/4] docs: Add ABI documentation Neil Horman
2014-12-29 16:24     ` Sergio Gonzalez Monroy
2015-01-14 15:59     ` Thomas Monjalon
2015-01-14 20:07       ` Neil Horman
2015-01-16 13:34         ` Thomas Monjalon
2014-12-29 16:20   ` [dpdk-dev] [PATCH v3 1/4] compat: Add infrastructure to support symbol versioning Sergio Gonzalez Monroy
2015-01-14 15:25   ` Thomas Monjalon
2015-01-14 20:29     ` Neil Horman
2015-01-09 12:35 ` [dpdk-dev] Add DSO symbol versioning to supportbackwards compatibility Neil Horman
2015-01-15 19:35 ` [dpdk-dev] [PATCH v4 1/4] compat: Add infrastructure to support symbol versioning Neil Horman
2015-01-15 19:35   ` [dpdk-dev] [PATCH v4 2/4] Provide initial versioning for all DPDK libraries Neil Horman
2015-01-15 19:35   ` [dpdk-dev] [PATCH v4 3/4] Add library version extenstion Neil Horman
2015-01-15 19:35   ` [dpdk-dev] [PATCH v4 4/4] docs: Add ABI documentation Neil Horman
2015-01-30 17:13   ` [dpdk-dev] [PATCH v4 1/4] compat: Add infrastructure to support symbol versioning Gray, Mark D
2015-01-16 15:33 ` [dpdk-dev] [PATCH v5 " Neil Horman
2015-01-16 15:33   ` [dpdk-dev] [PATCH v5 2/4] Provide initial versioning for all DPDK libraries Neil Horman
2015-01-16 15:33   ` [dpdk-dev] [PATCH v5 3/4] Add library version extenstion Neil Horman
2015-01-16 15:33   ` [dpdk-dev] [PATCH v5 4/4] docs: Add ABI documentation Neil Horman
2015-01-20  7:14     ` Thomas Monjalon
2015-01-20 10:47       ` Bruce Richardson
2015-01-20 13:37       ` Iremonger, Bernard
2015-01-20 13:46         ` Thomas Monjalon
2015-01-20 14:24         ` Neil Horman
2015-01-20 14:29           ` Butler, Siobhan A
2015-01-20 14:41             ` Neil Horman
2015-01-20 14:50               ` Butler, Siobhan A
2015-01-20 15:30                 ` Neil Horman
2015-01-20 14:32           ` O'driscoll, Tim
2015-01-20 14:00     ` Thomas Monjalon
2015-01-20 14:37       ` Neil Horman
2015-01-20 15:06         ` Thomas Monjalon
2015-01-20 15:35           ` Neil Horman
2015-01-20 21:17 ` [dpdk-dev] [PATCH v6 1/4] compat: Add infrastructure to support symbol versioning Neil Horman
2015-01-20 21:17   ` [dpdk-dev] [PATCH v6 2/4] Provide initial versioning for all DPDK libraries Neil Horman
2015-01-20 21:17   ` [dpdk-dev] [PATCH v6 3/4] Add library version extenstion Neil Horman
2015-01-20 21:17   ` [dpdk-dev] [PATCH v6 4/4] docs: Add ABI documentation Neil Horman
2015-01-21 10:13     ` Iremonger, Bernard
2015-01-21 10:25     ` Thomas Monjalon
2015-01-21 14:59       ` Neil Horman
2015-01-21 16:05         ` Thomas Monjalon
2015-01-21 19:43           ` Neil Horman
2015-01-21 22:24             ` Thomas Monjalon
2015-01-22 19:21               ` Neil Horman
2015-01-21 20:57 ` [dpdk-dev] [PATCH v7 01/26] version: 2.0.0-rc0 Neil Horman
2015-01-21 20:57   ` [dpdk-dev] [PATCH v7 02/26] mk: fix link to static combined library Neil Horman
2015-01-21 20:57   ` [dpdk-dev] [PATCH v7 03/26] eal: fix check for power of 2 in 0 case Neil Horman
2015-01-21 20:57   ` [dpdk-dev] [PATCH v7 04/26] ethdev: fix missing parenthesis in mac check Neil Horman
2015-01-21 20:57   ` [dpdk-dev] [PATCH v7 05/26] mem: search only dpdk hugetlbfs maps Neil Horman
2015-01-21 20:57   ` [dpdk-dev] [PATCH v7 06/26] log: remove unnecessary stubs Neil Horman
2015-01-21 20:57   ` [dpdk-dev] [PATCH v7 07/26] vfio: avoid enabling while the module is not loaded Neil Horman
2015-01-21 20:57   ` [dpdk-dev] [PATCH v7 08/26] bond: fix vlan flag interpretation Neil Horman
2015-01-21 20:57   ` [dpdk-dev] [PATCH v7 09/26] app/testpmd: remove duplicated function for list parsing Neil Horman
2015-01-21 20:57   ` [dpdk-dev] [PATCH v7 10/26] nic_uio: fix thread structure compatibility for future FreeBSD Neil Horman
2015-01-21 20:58   ` [dpdk-dev] [PATCH v7 01/26] version: 2.0.0-rc0 Neil Horman
2015-01-21 20:59 ` [dpdk-dev] [PATCH v7 1/4] compat: Add infrastructure to support symbol versioning Neil Horman
2015-01-21 20:59   ` [dpdk-dev] [PATCH v7 2/4] Provide initial versioning for all DPDK libraries Neil Horman
2015-01-21 20:59   ` [dpdk-dev] [PATCH v7 3/4] Add library version extenstion Neil Horman
2015-01-21 20:59   ` [dpdk-dev] [PATCH v7 4/4] docs: Add ABI documentation Neil Horman
2015-01-22 10:56     ` Iremonger, Bernard
2015-01-22 15:37       ` Neil Horman
2015-01-22 15:49 ` [dpdk-dev] [PATCH v8 1/4] compat: Add infrastructure to support symbol versioning Neil Horman
2015-01-22 15:49   ` [dpdk-dev] [PATCH v8 2/4] Provide initial versioning for all DPDK libraries Neil Horman
2015-01-22 15:49   ` [dpdk-dev] [PATCH v8 3/4] Add library version extenstion Neil Horman
2015-01-22 15:49   ` [dpdk-dev] [PATCH v8 4/4] docs: Add ABI documentation Neil Horman
2015-01-22 16:46     ` Butler, Siobhan A
     [not found] ` <1422898822-16422-1-git-send-email-nhorman@tuxdriver.com>
     [not found]   ` <1422898822-16422-4-git-send-email-nhorman@tuxdriver.com>
2015-02-03 15:24     ` [dpdk-dev] [PATCH v9 " Thomas Monjalon
2015-02-03 16:01 ` [dpdk-dev] Add DSO symbol versioning to supportbackwards compatibility Thomas Monjalon
2015-02-03 20:20   ` Neil Horman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150114162438.GA24512@localhost.localdomain \
    --to=nhorman@tuxdriver.com \
    --cc=dev@dpdk.org \
    --cc=thomas.monjalon@6wind.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git