X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=devtools%2Fcheck-symbol-change.sh;h=28f093a9fc0f5767c2aeb3b1939e9c5fa01fe3cf;hb=d4ef40f3c60e0d8a93a86373f81beaba5731c58b;hp=4b8d9f3c7cb5b78ef19fe28e2028201c6abbfa5c;hpb=0fc7178e73a75fcd84f5806d20e222bc49653b33;p=dpdk.git diff --git a/devtools/check-symbol-change.sh b/devtools/check-symbol-change.sh index 4b8d9f3c7c..28f093a9fc 100755 --- a/devtools/check-symbol-change.sh +++ b/devtools/check-symbol-change.sh @@ -31,6 +31,7 @@ build_map_changes() # Triggering this rule sets in_sec to 1, which actives the # symbol rule below /^.*{/ { + gsub("+", ""); if (in_map == 1) { sec=$(NF-1); in_sec=1; } @@ -96,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 " @@ -104,27 +105,43 @@ 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 + 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 inside a section, nothing to do + if [ "$oldsecname" = "$secname" ] 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 + 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