[dpdk-dev] [PATCH v3 1/9] config: change ABI versioning to global

Kevin Traynor ktraynor at redhat.com
Fri Oct 18 12:07:46 CEST 2019


On 17/10/2019 15:09, Luca Boccassi wrote:
> On Thu, 2019-10-17 at 09:44 +0100, Bruce Richardson wrote:
>> On Wed, Oct 16, 2019 at 06:03:36PM +0100, Anatoly Burakov wrote:
>>> From: Marcin Baran <
>>> marcinx.baran at intel.com
>>>>
>>>
>>> As per new ABI policy, all of the libraries are now versioned using
>>> one global ABI version. Changes in this patch implement the
>>> necessary steps to enable that.
>>>
>>> Signed-off-by: Marcin Baran <
>>> marcinx.baran at intel.com
>>>>
>>> Signed-off-by: Pawel Modrak <
>>> pawelx.modrak at intel.com
>>>>
>>> Signed-off-by: Anatoly Burakov <
>>> anatoly.burakov at intel.com
>>>>
>>> ---
>>>
>>> Notes:
>>>     v3:
>>>     - Removed Windows support from Makefile changes
>>>     - Removed unneeded path conversions from meson files
>>>
>>>  buildtools/meson.build |  2 ++
>>>  config/ABI_VERSION     |  1 +
>>>  config/meson.build     |  5 +++--
>>>  drivers/meson.build    | 20 ++++++++++++--------
>>>  lib/meson.build        | 18 +++++++++++-------
>>>  meson_options.txt      |  2 --
>>>  mk/rte.lib.mk          | 13 ++++---------
>>>  7 files changed, 33 insertions(+), 28 deletions(-)
>>>  create mode 100644 config/ABI_VERSION
>>>
>>> diff --git a/buildtools/meson.build b/buildtools/meson.build
>>> index 32c79c1308..78ce69977d 100644
>>> --- a/buildtools/meson.build
>>> +++ b/buildtools/meson.build
>>> @@ -12,3 +12,5 @@ if python3.found()
>>>  else
>>>  	map_to_def_cmd = ['meson', 'runpython', files('map_to_def.py')]
>>>  endif
>>> +
>>> +is_experimental_cmd = [find_program('grep', 'findstr'), '^DPDK_']
>>> diff --git a/config/ABI_VERSION b/config/ABI_VERSION
>>> new file mode 100644
>>> index 0000000000..9a7c1e503f
>>> --- /dev/null
>>> +++ b/config/ABI_VERSION
>>> @@ -0,0 +1 @@
>>> +20.0
>>> diff --git a/config/meson.build b/config/meson.build
>>> index a27f731f85..3cfc02406c 100644
>>> --- a/config/meson.build
>>> +++ b/config/meson.build
>>> @@ -17,7 +17,8 @@ endforeach
>>>  # set the major version, which might be used by drivers and
>>> libraries
>>>  # depending on the configuration options
>>>  pver = meson.project_version().split('.')
>>> -major_version = '@0 at .@1@'.format(pver.get(0), pver.get(1))
>>> +abi_version = run_command(find_program('cat', 'more'),
>>> +	files('ABI_VERSION')).stdout().strip()
>>>  
>>>  # extract all version information into the build configuration
>>>  dpdk_conf.set('RTE_VER_YEAR', pver.get(0).to_int())
>>> @@ -37,7 +38,7 @@ endif
>>>  
>>>  pmd_subdir_opt = get_option('drivers_install_subdir')
>>>  if pmd_subdir_opt.contains('<VERSION>')
>>> -	pmd_subdir_opt =
>>> major_version.join(pmd_subdir_opt.split('<VERSION>'))
>>> +	pmd_subdir_opt =
>>> abi_version.join(pmd_subdir_opt.split('<VERSION>'))
>>>  endif
>>
>> This is an interesting change, and I'm not sure about it. I think for
>> user-visible changes, version should still refer to DPDK version
>> rather
>> than ABI version. Even with a stable ABI, it makes more sense to me
>> to find
>> the drivers in a 19.11 directory than a 20.0 one. Then again, the
>> drivers
>> should be re-usable across the one ABI version, so perhaps this is
>> the best
>> approach.
>>
>> Thoughts from others? Luca or Kevin, any thoughts from a packagers
>> perspective?
>>
>> /Bruce
> 
> Hi,
> 
> We are currently assembing this path using the ABI version in
> Debian/Ubuntu, as we want same-ABI libraries not to be co-installed,
> but instead fo use the exact same name/path. So from our POV this
> change seems right.
> 

Seems ok to me as it's consistent with having the libs from different
releases using one ABI version. Would like to check with Timothy too..

+ Timothy


More information about the dev mailing list