Skip to content

Commit

Permalink
devtools: accept experimental symbol promotion
Browse files Browse the repository at this point in the history
[ upstream commit 3630757 ]

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: 4bec481 ("devtools: add checks for ABI symbol addition")

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
  • Loading branch information
david-marchand authored and kevintraynor committed May 14, 2019
1 parent 003a29f commit 81673cb
Showing 1 changed file with 27 additions and 16 deletions.
43 changes: 27 additions & 16 deletions devtools/check-symbol-change.sh
Original file line number Diff line number Diff line change
Expand Up @@ -105,26 +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 a section "
echo -n "other than 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
Expand Down

0 comments on commit 81673cb

Please sign in to comment.