summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Marchand <david.marchand@redhat.com>2019-04-05 10:17:47 +0200
committerThomas Monjalon <thomas@monjalon.net>2019-04-16 00:12:22 +0200
commit3630757803ab2f914ab36bb0285b662b3cff50db (patch)
tree0a3d95b62d0400b92652e6c40d51ca1a292dd658
parent01d184798731e4cd3e2070c035d450bc99764757 (diff)
downloaddpdk-3630757803ab2f914ab36bb0285b662b3cff50db.zip
dpdk-3630757803ab2f914ab36bb0285b662b3cff50db.tar.gz
dpdk-3630757803ab2f914ab36bb0285b662b3cff50db.tar.xz
devtools: accept experimental symbol promotion
Currently, when symbols get promoted from the EXPERIMENTAL section to a stable ABI section, the script complains they should go to the EXPERIMENTAL section. Example: ERROR: symbol rte_devargs_add is added in the DPDK_19.05 section, but is expected to be added in the EXPERIMENTAL section of the version map This is legit. Moving from a stable ABI to another is also allowed, but must have gone through the proper process. Fixes: 4bec48184e33 ("devtools: add checks for ABI symbol addition") Cc: stable@dpdk.org Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Neil Horman <nhorman@tuxdriver.com>
-rwxr-xr-xdevtools/check-symbol-change.sh44
1 files changed, 27 insertions, 17 deletions
diff --git a/devtools/check-symbol-change.sh b/devtools/check-symbol-change.sh
index 020da7e..40eb953 100755
--- a/devtools/check-symbol-change.sh
+++ b/devtools/check-symbol-change.sh
@@ -105,27 +105,37 @@ check_for_rule_violations()
continue
fi
- if [ "$secname" != "EXPERIMENTAL" ]
+ oldsecname=$(sed -n \
+ "s#$mname $symname \(.*\) del#\1#p" "$mapdb")
+
+ # A symbol can not enter a non experimental
+ # section directly
+ if [ $? -ne 0 ] && [ "$secname" != 'EXPERIMENTAL' ]
then
- # Symbols that are getting added in a section
- # other than the experimental section
- # to be moving from an already supported
- # section or its a violation
- grep -q \
- "$mname $symname [^EXPERIMENTAL] del" "$mapdb"
- if [ $? -ne 0 ]
- then
- echo -n "ERROR: symbol $symname "
- echo -n "is added in the $secname "
- echo -n "section, but is expected to "
- echo -n "be added in the EXPERIMENTAL "
- echo "section of the version map"
- ret=1
- fi
+ echo -n "ERROR: symbol $symname "
+ echo -n "is added in the $secname "
+ echo -n "section, but is expected to "
+ echo -n "be added in the EXPERIMENTAL "
+ echo "section of the version map"
+ ret=1
+ continue
+ fi
+
+ # This symbol is moving between two sections (the
+ # original section is not experimental).
+ # This can be legit, just warn.
+ if [ "$oldsecname" != 'EXPERIMENTAL' ]
+ then
+ echo -n "INFO: symbol $symname is being "
+ echo -n "moved from $oldsecname to $secname. "
+ echo -n "Ensure that it has gone through the "
+ echo "deprecation process"
+ continue
fi
else
- if [ "$secname" != "EXPERIMENTAL" ]
+ if ! grep -q "$mname $symname .* add" "$mapdb" && \
+ [ "$secname" != "EXPERIMENTAL" ]
then
# Just inform users that non-experimenal
# symbols need to go through a deprecation