49bcce1383
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>
35 lines
650 B
Bash
Executable File
35 lines
650 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
MAPFILE=$1
|
|
OBJFILE=$2
|
|
|
|
if [ -d $MAPFILE ]
|
|
then
|
|
exit 0
|
|
fi
|
|
|
|
for i in `awk 'BEGIN {found=0}
|
|
/.*EXPERIMENTAL.*/ {found=1}
|
|
/.*}.*;/ {found=0}
|
|
/.*;/ {if (found == 1) print $1}' $MAPFILE`
|
|
do
|
|
SYM=`echo $i | sed -e"s/;//"`
|
|
objdump -t $OBJFILE | grep -q "\.text.*$SYM$"
|
|
IN_TEXT=$?
|
|
objdump -t $OBJFILE | grep -q "\.text\.experimental.*$SYM$"
|
|
IN_EXP=$?
|
|
if [ $IN_TEXT -eq 0 -a $IN_EXP -ne 0 ]
|
|
then
|
|
cat >&2 <<- END_OF_MESSAGE
|
|
$SYM is not flagged as experimental
|
|
but is listed in version map
|
|
Please add __rte_experimental to the definition of $SYM
|
|
END_OF_MESSAGE
|
|
exit 1
|
|
fi
|
|
done
|
|
exit 0
|
|
|