compat: provide experimental alias for matured ABI
authorFerruh Yigit <ferruh.yigit@intel.com>
Fri, 15 May 2020 15:01:53 +0000 (16:01 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 18 May 2020 17:46:25 +0000 (19:46 +0200)
commit05a38d7c759ef2e8b76f23377e4baf9e95060b15
tree7d031b9fc919269e010ab6770ca6ccc97b63f2b7
parent45a4103e680d6b9bfb2b4ee4f4ef528d8de51ec0
compat: provide experimental alias for matured ABI

On v20.02 some APIs matured and symbols moved from EXPERIMENTAL to
DPDK_20.0.1 block.

This had the affect of breaking the applications that were using these
APIs on v19.11. Although there is no modification of the APIs and the
action is positive and matures the APIs, the affect can be negative to
applications.

When a maintainer is promoting an API to become part of the next major
ABI version by removing the experimental tag. The maintainer may
choose to offer an alias to the experimental tag, to prevent these
breakages in future.

The following changes are made to enabling aliasing:

Updated to the ABI policy and ABI versioning documents.

Created VERSION_SYMBOL_EXPERIMENTAL helper macro.

Updated the 'check-symbols.sh' tool, 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)

Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
buildtools/check-symbols.sh
doc/guides/contributing/abi_policy.rst
doc/guides/contributing/abi_versioning.rst
lib/librte_eal/include/rte_function_versioning.h