From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pmatilai@redhat.com>
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28])
 by dpdk.org (Postfix) with ESMTP id BD878C3DE
 for <dev@dpdk.org>; Wed, 17 Jun 2015 09:29:16 +0200 (CEST)
Received: from int-mx10.intmail.prod.int.phx2.redhat.com
 (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23])
 by mx1.redhat.com (Postfix) with ESMTPS id 6FE282CD839;
 Wed, 17 Jun 2015 07:29:05 +0000 (UTC)
Received: from localhost.localdomain (vpn1-5-32.ams2.redhat.com [10.36.5.32])
 by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with
 ESMTP id t5H7T3n1024624; Wed, 17 Jun 2015 03:29:04 -0400
Message-ID: <558121BF.4010706@redhat.com>
Date: Wed, 17 Jun 2015 10:29:03 +0300
From: Panu Matilainen <pmatilai@redhat.com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64;
 rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: Stephen Hemminger <stephen@networkplumber.org>,
 Thomas Monjalon <thomas.monjalon@6wind.com>
References: <1434387073-16951-1-git-send-email-stephen@networkplumber.org>
 <20150616135216.GA9780@bricha3-MOBL3> <20150616160512.03873f22@urahara>
 <2d83a4d8845f4daa90f0ccafbed918e3@BRMWP-EXMB11.corp.brocade.com>
 <20150616173903.0d7c767c@urahara>
In-Reply-To: <20150616173903.0d7c767c@urahara>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23
Cc: "dev@dpdk.org" <dev@dpdk.org>, Stephen Hemminger <shemming@Brocade.com>
Subject: Re: [dpdk-dev] [PATCH 1/3] pmd_ring: remove deprecated functions
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: patches and discussions about DPDK <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Jun 2015 07:29:18 -0000

On 06/17/2015 03:39 AM, Stephen Hemminger wrote:
> On Tue, 16 Jun 2015 23:37:32 +0000
> Thomas Monjalon <thomas.monjalon@6wind.com> wrote:
>
>> 2015-06-16 16:05, Stephen Hemminger:
>>> On Tue, 16 Jun 2015 14:52:16 +0100
>>> Bruce Richardson <bruce.richardson@intel.com> wrote:
>>>
>>>> On Mon, Jun 15, 2015 at 09:51:11AM -0700, Stephen Hemminger wrote:
>>>>> From: Stephen Hemminger <shemming@brocade.com>
>>>>>
>>>>> These were deprecated in 2.0 so remove them from 2.1
>>>>>
>>>>> Signed-off-by: Stephen Hemminger <stephen@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 -