buildtools: prevent experimental symbol match on substring
authorNeil Horman <nhorman@tuxdriver.com>
Wed, 10 Oct 2018 14:29:28 +0000 (10:29 -0400)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 11 Oct 2018 11:57:29 +0000 (13:57 +0200)
The experimental symbol check script matched on the regexes
"\.text.*$SYM" and "\.text\.experimental.*$SYM" which allows for
substring matches.
If a symbol is leading substring of another one (e.g. symbol foo
is a substring of symbol foobar), it would match on symbols
when it shouldn't.

It is fixed by matching additionally on the end of line
so that symbols are an exact match.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
buildtools/check-experimental-syms.sh

index 5bc8cda..d091510 100755 (executable)
@@ -16,9 +16,9 @@ for i in `awk 'BEGIN {found=0}
                /.*;/ {if (found == 1) print $1}' $MAPFILE`
 do
        SYM=`echo $i | sed -e"s/;//"`
-       objdump -t $OBJFILE | grep -q "\.text.*$SYM"
+       objdump -t $OBJFILE | grep -q "\.text.*$SYM$"
        IN_TEXT=$?
-       objdump -t $OBJFILE | grep -q "\.text\.experimental.*$SYM"
+       objdump -t $OBJFILE | grep -q "\.text\.experimental.*$SYM$"
        IN_EXP=$?
        if [ $IN_TEXT -eq 0 -a $IN_EXP -ne 0 ]
        then