[dpdk-dev] [PATCH v3 6/7] build: standardize component names and defines
Bruce Richardson
bruce.richardson at intel.com
Thu Oct 15 17:34:20 CEST 2020
On Thu, Oct 15, 2020 at 04:32:35PM +0100, Luca Boccassi wrote:
> On Thu, 2020-10-15 at 15:03 +0100, Bruce Richardson wrote:
> > On Thu, Oct 15, 2020 at 02:05:37PM +0100, Luca Boccassi wrote:
> > > On Thu, 2020-10-15 at 12:18 +0100, Bruce Richardson wrote:
> > > > On Thu, Oct 15, 2020 at 11:30:29AM +0100, Luca Boccassi wrote:
> > > > > On Wed, 2020-10-14 at 15:13 +0100, Bruce Richardson wrote:
> > > > > > As discussed on the dpdk-dev mailing list[1], we can make some easy
> > > > > > improvements in standardizing the naming of the various components in DPDK,
> > > > > > and their associated feature-enabled macros.
> > > > > >
> > > > > > Following this patch, each library will have the name in format,
> > > > > > 'librte_<name>.so', and the macro indicating that library is enabled in the
> > > > > > build will have the form 'RTE_LIB_<NAME>'.
> > > > > >
> > > > > > Similarly, for libraries, the equivalent name formats and macros are:
> > > > > > 'librte_<class>_<name>.so' and 'RTE_<CLASS>_<NAME>', where class is the
> > > > > > device type taken from the relevant driver subdirectory name, i.e. 'net',
> > > > > > 'crypto' etc.
> > > > > >
> > > > > > To avoid too many changes at once for end applications, the old macro names
> > > > > > will still be provided in the build in this release, but will be removed
> > > > > > subsequently.
> > > > > >
> > > > > > Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> > > > > >
> > > > > > [1] http://inbox.dpdk.org/dev/ef7c1a87-79ab-e405-4202-39b7ad6b0c71@solarflare.com/t/#u
> > > > > > ---
> > > > > > app/test-bbdev/meson.build | 4 ++--
> > > > > > app/test-crypto-perf/meson.build | 2 +-
> > > > > > app/test-pmd/meson.build | 12 ++++++------
> > > > > > app/test/meson.build | 8 ++++----
> > > > > > doc/guides/rel_notes/deprecation.rst | 8 ++++++++
> > > > > > drivers/baseband/meson.build | 1 -
> > > > > > drivers/bus/meson.build | 1 -
> > > > > > drivers/common/meson.build | 1 -
> > > > > > drivers/common/mlx5/meson.build | 1 -
> > > > > > drivers/common/qat/meson.build | 1 -
> > > > > > drivers/compress/meson.build | 1 -
> > > > > > drivers/compress/octeontx/meson.build | 2 +-
> > > > > > drivers/crypto/meson.build | 1 -
> > > > > > drivers/crypto/null/meson.build | 2 +-
> > > > > > drivers/crypto/octeontx/meson.build | 2 +-
> > > > > > drivers/crypto/octeontx2/meson.build | 2 +-
> > > > > > drivers/crypto/scheduler/meson.build | 2 +-
> > > > > > drivers/crypto/virtio/meson.build | 2 +-
> > > > > > drivers/event/dpaa/meson.build | 2 +-
> > > > > > drivers/event/dpaa2/meson.build | 2 +-
> > > > > > drivers/event/meson.build | 1 -
> > > > > > drivers/event/octeontx/meson.build | 2 +-
> > > > > > drivers/event/octeontx2/meson.build | 2 +-
> > > > > > drivers/mempool/meson.build | 1 -
> > > > > > drivers/meson.build | 9 ++++-----
> > > > > > drivers/net/meson.build | 1 -
> > > > > > drivers/net/mlx4/meson.build | 2 +-
> > > > > > drivers/raw/ifpga/meson.build | 2 +-
> > > > > > drivers/raw/meson.build | 1 -
> > > > > > drivers/regex/meson.build | 1 -
> > > > > > drivers/vdpa/meson.build | 1 -
> > > > > > examples/bond/meson.build | 2 +-
> > > > > > examples/ethtool/meson.build | 2 +-
> > > > > > examples/ioat/meson.build | 2 +-
> > > > > > examples/l2fwd-crypto/meson.build | 2 +-
> > > > > > examples/ntb/meson.build | 2 +-
> > > > > > examples/vm_power_manager/meson.build | 6 +++---
> > > > > > lib/librte_ethdev/meson.build | 1 -
> > > > > > lib/librte_graph/meson.build | 2 --
> > > > > > lib/meson.build | 3 ++-
> > > > > > 40 files changed, 47 insertions(+), 55 deletions(-)
> > > > >
> > > > > Does this change the share object file names too, or only the macros?
> > > > >
> > > >
> > > > It does indeed change the object name files, which is a little bit
> > > > concerning. However, the consensus based on the RFC seemed to be that the
> > > > benefit is likely worth the change. If we want, we can look to use symlinks
> > > > to the old names on install, but I think that just delays the pain since I
> > > > would expect few to actually change their build to the new names until the
> > > > old ones and the symlinks completely go away.
> > > >
> > > > /Bruce
> > >
> > > It is a backward incompatible change, so we need to provide symlinks,
> > > right? On upgrade, programs linked to librte_old.so will fail to start.
> > > Or was this targeted at 20.11 thus piggy-backing on the ABI change
> > > which forces a re-link?
> > >
> > More of the latter, and the fact that changing the build system involved a
> > few library renames anyway for those using make. Since the ABI is changing
> > this release, and all the libs have a new major version number there is no
> > requirement for libs linked against an older version to work, and since
> > pkg-config should now be used for linking the actual names should not be
> > a concern.
> >
> > That's the thinking anyway. :-)
> >
> > /Bruce
>
> Ok that makes sense, I wasn't sure if this series was targeted for
> 20.11 or for later. In that case,
>
> Acked-by: Luca Boccassi <bluca at debian.org>
>
Yes, if it doesn't make 20.11 we'll have to re-evaluate and be stricter
with the compatibility constraints. It might not be worth doing post-20.11.
More information about the dev
mailing list