On Thu, May 14, 2020 at 1:52 PM Ferruh Yigit <ferruh.yi...@intel.com> wrote: > > 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.
This helper (+ script update) must come with the process update: the macro is referenced in its v5 revision. > > Updated the 'check-experimental-syms.sh' buildtool, which was Nit: the script name changed. > diff --git a/lib/librte_eal/include/rte_function_versioning.h > b/lib/librte_eal/include/rte_function_versioning.h > index b9f862d295..534a8bff95 100644 > --- a/lib/librte_eal/include/rte_function_versioning.h > +++ b/lib/librte_eal/include/rte_function_versioning.h > @@ -46,6 +46,15 @@ > */ > #define VERSION_SYMBOL(b, e, n) __asm__(".symver " RTE_STR(b) RTE_STR(e) ", > " RTE_STR(b) "@DPDK_" RTE_STR(n)) > > + No need for this newline. > +/* > + * VERSION_SYMBOL_EXPERIMENTAL > + * Creates a symbol version table entry binding the symbol <b>@EXPERIMENTAL > to the internal > + * function name <b><e>. The macro is used when a symbol matures to become > part of the stable ABI, > + * to provide an alias to experimental for some time. > + */ > +#define VERSION_SYMBOL_EXPERIMENTAL(b, e) __asm__(".symver " RTE_STR(b) > RTE_STR(e) ", " RTE_STR(b) "@EXPERIMENTAL") > + > /* > * BIND_DEFAULT_SYMBOL > * Creates a symbol version entry instructing the linker to bind references > to -- David Marchand