X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=devtools%2Fcheck-symbol-change.sh;h=8992214ac8cfe1d92e7e1e11cd762d0b4cef5d06;hb=68629be3a622ee53cd5b40c8447ae9b083ff3f6c;hp=c5434f3bb09bcab992675b8446b8bb28b7988958;hpb=af14b150df78ec46de919ae4a30efbefbcd44c95;p=dpdk.git diff --git a/devtools/check-symbol-change.sh b/devtools/check-symbol-change.sh index c5434f3bb0..8992214ac8 100755 --- a/devtools/check-symbol-change.sh +++ b/devtools/check-symbol-change.sh @@ -17,17 +17,15 @@ build_map_changes() # map files are altered, and all section/symbol names # appearing between a triggering of this rule and the # next trigger of this rule are associated with this file - /[-+] a\/.*\.map/ {map=$2; in_map=1} + /[-+] [ab]\/.*\.map/ {map=$2; in_map=1; next} - # Same pattern as above, only it matches on anything that - # does not end in 'map', indicating we have left the map chunk. - # When we hit this, turn off the in_map variable, which - # supresses the subordonate rules below - /[-+] a\/.*\.[^map]/ {in_map=0} + # The previous rule catches all .map files, anything else + # indicates we left the map chunk. + /[-+] [ab]\// {in_map=0} # Triggering this rule, which starts a line and ends it # with a { identifies a versioned section. The section name is - # the rest of the line with the + and { symbols remvoed. + # the rest of the line with the + and { symbols removed. # Triggering this rule sets in_sec to 1, which actives the # symbol rule below /^.*{/ { @@ -37,7 +35,7 @@ build_map_changes() } } - # This rule idenfies the end of a section, and disables the + # This rule identifies the end of a section, and disables the # symbol rule /.*}/ {in_sec=0} @@ -79,6 +77,10 @@ build_map_changes() } +is_stable_section() { + [ "$1" != 'EXPERIMENTAL' ] && [ "$1" != 'INTERNAL' ] +} + check_for_rule_violations() { local mapdb="$1" @@ -98,7 +100,7 @@ check_for_rule_violations() # Just inform the user of this occurrence, but # don't flag it as an error echo -n "INFO: symbol $symname is added but " - echo -n "patch has insuficient context " + echo -n "patch has insufficient context " echo -n "to determine the section name " echo -n "please ensure the version is " echo "EXPERIMENTAL" @@ -108,15 +110,14 @@ check_for_rule_violations() oldsecname=$(sed -n \ "s#$mname $symname \(.*\) del#\1#p" "$mapdb") - # A symbol can not enter a non experimental - # section directly + # A symbol can not enter a stable section directly if [ -z "$oldsecname" ] then - if [ "$secname" = 'EXPERIMENTAL' ] + if ! is_stable_section $secname then echo -n "INFO: symbol $symname has " echo -n "been added to the " - echo -n "EXPERIMENTAL section of the " + echo -n "$secname section of the " echo "version map" continue else @@ -137,9 +138,9 @@ check_for_rule_violations() fi # This symbol is moving between two sections (the - # original section is not experimental). + # original section is a stable section). # This can be legit, just warn. - if [ "$oldsecname" != 'EXPERIMENTAL' ] + if is_stable_section $oldsecname then echo -n "INFO: symbol $symname is being " echo -n "moved from $oldsecname to $secname. " @@ -150,9 +151,9 @@ check_for_rule_violations() else if ! grep -q "$mname $symname .* add" "$mapdb" && \ - [ "$secname" != "EXPERIMENTAL" ] + is_stable_section $secname then - # Just inform users that non-experimenal + # Just inform users that stable # symbols need to go through a deprecation # process echo -n "INFO: symbol $symname is being "