a4bcd61de8
This tools reads the given version map for a directory, and checks to ensure that, for each symbol listed in the export list, the corresponding definition is tagged as __rte_experimental, erroring out if its not. In this way, we can ensure that the EXPERIMENTAL api is kept in sync with the tags Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
33 lines
623 B
Bash
Executable File
33 lines
623 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
|
|
echo "$SYM is not flagged as experimental"
|
|
echo "but is listed in version map"
|
|
echo "Please add __rte_experimental to the definition of $SYM"
|
|
exit 1
|
|
fi
|
|
done
|
|
exit 0
|
|
|