On 06/17/2015 03:39 AM, Stephen Hemminger wrote: > On Tue, 16 Jun 2015 23:37:32 +0000 > Thomas Monjalon <thomas.monjalon at 6wind.com> wrote: > >> 2015-06-16 16:05, Stephen Hemminger: >>> On Tue, 16 Jun 2015 14:52:16 +0100 >>> Bruce Richardson <bruce.richardson at intel.com> wrote: >>> >>>> On Mon, Jun 15, 2015 at 09:51:11AM -0700, Stephen Hemminger wrote: >>>>> From: Stephen Hemminger <shemming at brocade.com> >>>>> >>>>> These were deprecated in 2.0 so remove them from 2.1 >>>>> >>>>> Signed-off-by: Stephen Hemminger <stephen at networkplumber.org> >>>>> --- >>>>> drivers/net/ring/rte_eth_ring.c | 55 >>>>> ------------------------------- >>>>> drivers/net/ring/rte_eth_ring_version.map | 4 +-- >>>>> 2 files changed, 1 insertion(+), 58 deletions(-) >>>>> >>>> [..snip..] >>>>> diff --git a/drivers/net/ring/rte_eth_ring_version.map >>>>> b/drivers/net/ring/rte_eth_ring_version.map >>>>> index 8ad107d..5ee55d9 100644 >>>>> --- a/drivers/net/ring/rte_eth_ring_version.map >>>>> +++ b/drivers/net/ring/rte_eth_ring_version.map >>>>> @@ -1,9 +1,7 @@ >>>>> -DPDK_2.0 { >>>>> +DPDK_2.1 { >>>>> global: >>>>> >>>>> rte_eth_from_rings; >>>>> - rte_eth_ring_pair_attach; >>>>> - rte_eth_ring_pair_create; >>>>> >>>>> local: *; >>>>> }; >>>> >>>> [ABI newbie question] Is this how deprecating a fn is done? We no longer >>>> have any DPDK_2.0 >>>> version listings in the .map file? >>> >>> Notice the version # changed as well, so linker will generate a new version. >>> The function was marked deprecated in last version. >> >> What happens if you load the 2.1 lib with an app built for 2.0? >> Shouldn't we keep the DPDK_2.0 block? > > What happens is that build process makes a new version of DPDK package > with a new version number. This version can co-exist on same system with > old library (depends on library packaging). > Old library will have old functions, and old application will > use old library. New applications will be have new so version and get the > new library. > > > http://unix.stackexchange.com/questions/475/how-do-so-shared-object-numbers-work > > If we didn't do this, nothing could ever really be removed!
Yes, soname bump is required when symbols are removed. However that doesn't change the version the remaining symbols were introduced, eg rte_eth_from_rings() in this case, so AIUI you should leave the DPDK_2.0 {} block version alone. If new symbols get added in 2.1 then a new DPDK_2.1 block needs to be added for those. - Panu -