On 5/14/2020 9:44 AM, Ray Kinsella wrote: > > > On 13/05/2020 19:05, Ferruh Yigit 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. >> >> Updated the 'check-experimental-syms.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>
<...> >> @@ -46,6 +46,9 @@ >> */ >> #define VERSION_SYMBOL(b, e, n) __asm__(".symver " RTE_STR(b) RTE_STR(e) ", >> " RTE_STR(b) "@DPDK_" RTE_STR(n)) > > Please add > > /* > * 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. > */ done