From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.tuxdriver.com (charlotte.tuxdriver.com [70.61.120.58]) by dpdk.org (Postfix) with ESMTP id AA08C58F7 for ; Wed, 14 Jan 2015 17:25:07 +0100 (CET) Received: from nat-pool-rdu-t.redhat.com ([66.187.233.202] helo=localhost) by smtp.tuxdriver.com with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.63) (envelope-from ) id 1YBQkN-0000Eo-VC; Wed, 14 Jan 2015 11:25:01 -0500 Date: Wed, 14 Jan 2015 11:24:38 -0500 From: Neil Horman To: Thomas Monjalon Message-ID: <20150114162438.GA24512@localhost.localdomain> References: <1419109299-9603-1-git-send-email-nhorman@tuxdriver.com> <1419349913-21674-1-git-send-email-nhorman@tuxdriver.com> <1419349913-21674-2-git-send-email-nhorman@tuxdriver.com> <1996722.WEmzGEN7VB@xps13> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1996722.WEmzGEN7VB@xps13> User-Agent: Mutt/1.5.23 (2014-03-12) X-Spam-Score: -2.9 (--) X-Spam-Status: No Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH v3 2/4] Provide initial versioning for all DPDK libraries X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jan 2015 16:25:08 -0000 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 >