build_map_changes()
{
- local fname=$1
- local mapdb=$2
+ local fname="$1"
+ local mapdb="$2"
cat "$fname" | awk '
# Initialize our variables
# 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}
+ /[-+] a\/.*\.[^map]/ {in_map=0}
- # Triggering this rule, which starts a line with a + and ends it
+ # 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.
# Triggering this rule sets in_sec to 1, which actives the
# symbol rule below
- /+.*{/ {gsub("+","");
+ /^.*{/ {
+ gsub("+", "");
if (in_map == 1) {
- sec=$1; in_sec=1;
+ sec=$(NF-1); in_sec=1;
}
}
check_for_rule_violations()
{
- local mapdb=$1
+ local mapdb="$1"
local mname
local symname
local secname
while read mname symname secname ar
do
- if [ "$ar" == "add" ]
+ if [ "$ar" = "add" ]
then
- if [ "$secname" == "unknown" ]
+ if [ "$secname" = "unknown" ]
then
# Just inform the user of this occurrence, but
# don't flag it as an error
if [ $? -ne 0 ]
then
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
fi
trap clean_and_exit_on_sig EXIT
-mapfile=`mktemp mapdb.XXXXXX`
+mapfile=`mktemp -t dpdk.mapdb.XXXXXX`
patch=$1
exit_code=1
build_map_changes "$patch" "$mapfile"
check_for_rule_violations "$mapfile"
exit_code=$?
-
rm -f "$mapfile"
exit $exit_code