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

Luca Boccassi bluca at debian.org
Thu Oct 17 16:09:00 CEST 2019


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.

-- 
Kind regards,
Luca Boccassi


More information about the dev mailing list