summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorThomas Monjalon <thomas.monjalon@6wind.com>2015-07-02 23:03:40 +0200
committerThomas Monjalon <thomas.monjalon@6wind.com>2015-07-09 00:56:40 +0200
commit506f51cc0da7e057ac31e15048ba3b8015112226 (patch)
tree1857c8cccddab956d3018c1c61dcff8d1ae3f511 /scripts
parente7c6d6fc2233782322ac6d0156f1b3dde3a19d6f (diff)
downloaddpdk-506f51cc0da7e057ac31e15048ba3b8015112226.zip
dpdk-506f51cc0da7e057ac31e15048ba3b8015112226.tar.gz
dpdk-506f51cc0da7e057ac31e15048ba3b8015112226.tar.xz
mk: enable next abi preview
When a change makes really hard to keep ABI compatibility, instead of waiting next release to break the ABI, it is smoother to introduce the new code as a preview and disable it when packaging. The flag RTE_NEXT_ABI must be used to "ifdef" the new code. When the release is out, a dynamically linked application can use the new shared libraries with the old ABI while developpers can prepare their application for the next ABI by reading the deprecation notice and easily testing the new code. When starting the next release cycle, the "ifdefs" will be removed and the ABI break will be marked by incrementing LIBABIVER. The map files will also be updated. The default value is enabled to be developer compliant. The packagers must disable it as done in pkg/dpdk.spec. When enabled, all shared library numbers are incremented by appending a minor .1 to the old ABI number. In the next release, only impacted libraries will have a major +1 increment. The impacted libraries must provide an alternative map file to use with this option. The ABI policy is updated. Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com> Acked-by: Neil Horman <nhorman@tuxdriver.com>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/validate-abi.sh2
1 files changed, 2 insertions, 0 deletions
diff --git a/scripts/validate-abi.sh b/scripts/validate-abi.sh
index 1747b8b..4476433 100755
--- a/scripts/validate-abi.sh
+++ b/scripts/validate-abi.sh
@@ -157,6 +157,7 @@ git checkout $TAG1
# Make sure we configure SHARED libraries
# Also turn off IGB and KNI as those require kernel headers to build
sed -i -e"$ a\CONFIG_RTE_BUILD_SHARED_LIB=y" config/defconfig_$TARGET
+sed -i -e"$ a\CONFIG_RTE_NEXT_ABI=n" config/defconfig_$TARGET
sed -i -e"$ a\CONFIG_RTE_EAL_IGB_UIO=n" config/defconfig_$TARGET
sed -i -e"$ a\CONFIG_RTE_LIBRTE_KNI=n" config/defconfig_$TARGET
@@ -198,6 +199,7 @@ git checkout $TAG2
# Make sure we configure SHARED libraries
# Also turn off IGB and KNI as those require kernel headers to build
sed -i -e"$ a\CONFIG_RTE_BUILD_SHARED_LIB=y" config/defconfig_$TARGET
+sed -i -e"$ a\CONFIG_RTE_NEXT_ABI=n" config/defconfig_$TARGET
sed -i -e"$ a\CONFIG_RTE_EAL_IGB_UIO=n" config/defconfig_$TARGET
sed -i -e"$ a\CONFIG_RTE_LIBRTE_KNI=n" config/defconfig_$TARGET