14/05/2020 18:11, Ferruh Yigit: > On v20.02 some meter APIs have been matured and symbols moved from > EXPERIMENTAL to DPDK_20.0.1 block. > > This can break the applications that were using these mentioned APIs on > v19.11. Although there is no modification on the APIs and the action is > positive and matures the APIs, the affect can be negative to > applications. > > Since experimental APIs can change or go away without notice as part of > contract, to prevent this negative affect that may occur by maturing > experimental API, a process update already suggested, which enables > aliasing without forcing it: > https://patches.dpdk.org/patch/65863/ > > This patch provides aliasing by duplicating the existing and versioned > symbols as experimental. > > Since symbols moved from DPDK_20.0.1 to DPDK_21 block in the v20.05, the > aliasing done between EXPERIMENTAL and DPDK_21. > > Also following changes done to enabling aliasing: > > Created VERSION_SYMBOL_EXPERIMENTAL helper macro. > > Updated the 'check-symbols.sh' buildtool, which was complaining that the > symbol is in EXPERIMENTAL tag in .map file but it is not in the > .experimental section (__rte_experimental tag is missing). > Updated tool in a way it won't complain if the symbol in the > EXPERIMENTAL tag duplicated in some other block in .map file (versioned) > > Enabled function versioning for meson build for the library. > > Fixes: 30512af820fe ("meter: remove experimental flag from RFC4115 trTCM API") > Cc: sta...@dpdk.org > > Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com> > --- > Cc: Neil Horman <nhor...@tuxdriver.com> > Cc: Thomas Monjalon <tho...@monjalon.net> > Cc: Luca Boccassi <bl...@debian.org> > Cc: David Marchand <david.march...@redhat.com> > Cc: Bruce Richardson <bruce.richard...@intel.com> > Cc: Ian Stokes <ian.sto...@intel.com> > Cc: Eelco Chaudron <echau...@redhat.com> > Cc: Andrzej Ostruszka <a...@semihalf.com> > Cc: Ray Kinsella <m...@ashroe.eu> > > v2: > * Commit log updated > > v3: > * added suggested comment to VERSION_SYMBOL_EXPERIMENTAL macro > > v4: > * update script name in commit log, remove empty line > --- > buildtools/check-symbols.sh | 3 +- > .../include/rte_function_versioning.h | 9 +++ > lib/librte_meter/meson.build | 1 + > lib/librte_meter/rte_meter.c | 59 ++++++++++++++++++- > lib/librte_meter/rte_meter_version.map | 8 +++ > 5 files changed, 76 insertions(+), 4 deletions(-)
This patch is introducing the tooling and use it for the lib meter. It is based on approval of the process documentation. Ray sent a patch for the process documentation which refers to this tooling. As raised by David, there is a circular dependency :) I think it would be clearer to merge tooling and doc together, and have meter changes separate. Would it work for you?