On Thu, Oct 17, 2019 at 03:09:00PM +0100, 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.ba...@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.ba...@intel.com
> > > >
> > > Signed-off-by: Pawel Modrak <
> > > pawelx.mod...@intel.com
> > > >
> > > Signed-off-by: Anatoly Burakov <
> > > anatoly.bura...@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@.@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.
>
Thanks for confirming, Luca.