aboutsummaryrefslogtreecommitdiffstats
path: root/devtools/check-symbol-change.sh
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/check-symbol-change.sh')
-rwxr-xr-xdevtools/check-symbol-change.sh44
1 files changed, 32 insertions, 12 deletions
diff --git a/devtools/check-symbol-change.sh b/devtools/check-symbol-change.sh
index 8f986a5d..f6f79a88 100755
--- a/devtools/check-symbol-change.sh
+++ b/devtools/check-symbol-change.sh
@@ -97,7 +97,7 @@ check_for_rule_violations()
then
# Just inform the user of this occurrence, but
# don't flag it as an error
- echo -n "INFO: symbol $syname is added but "
+ echo -n "INFO: symbol $symname is added but "
echo -n "patch has insuficient context "
echo -n "to determine the section name "
echo -n "please ensure the version is "
@@ -105,26 +105,46 @@ 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 [ -z "$oldsecname" ]
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 ]
+ if [ "$secname" = 'EXPERIMENTAL' ]
then
+ echo -n "INFO: symbol $symname has "
+ echo -n "been added to the "
+ echo -n "EXPERIMENTAL section of the "
+ echo "version map"
+ continue
+ else
echo -n "ERROR: symbol $symname "
- echo -n "is added in a section "
- echo -n "other than the EXPERIMENTAL "
+ 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
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