7b3a6d7e35
The check-experimental-syms.sh script was finding the map-list-symbol.sh script using $RTE_SDK, which is the variable set when using the "make" build system. To make this script more independent, we just use the current path of the script as the location to find its companion script. Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Luca Boccassi <bluca@debian.org>
58 lines
1.1 KiB
Bash
Executable File
58 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
MAPFILE=$1
|
|
OBJFILE=$2
|
|
|
|
LIST_SYMBOL=$(dirname $(readlink -f $0))/map-list-symbol.sh
|
|
|
|
# added check for "make -C test/" usage
|
|
if [ ! -e $MAPFILE ] || [ ! -f $OBJFILE ]
|
|
then
|
|
exit 0
|
|
fi
|
|
|
|
if [ -d $MAPFILE ]
|
|
then
|
|
exit 0
|
|
fi
|
|
|
|
DUMPFILE=$(mktemp -t dpdk.${0##*/}.XXX.objdump)
|
|
trap 'rm -f "$DUMPFILE"' EXIT
|
|
objdump -t $OBJFILE >$DUMPFILE
|
|
|
|
ret=0
|
|
for SYM in `$LIST_SYMBOL -S EXPERIMENTAL $MAPFILE`
|
|
do
|
|
if grep -q "\.text.*$SYM$" $DUMPFILE &&
|
|
! grep -q "\.text\.experimental.*$SYM$" $DUMPFILE
|
|
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
|
|
ret=1
|
|
fi
|
|
done
|
|
|
|
# Filter out symbols suffixed with a . for icc
|
|
for SYM in `awk '{
|
|
if ($2 != "l" && $4 == ".text.experimental" && !($NF ~ /\.$/)) {
|
|
print $NF
|
|
}
|
|
}' $DUMPFILE`
|
|
do
|
|
$LIST_SYMBOL -S EXPERIMENTAL -s $SYM -q $MAPFILE || {
|
|
cat >&2 <<- END_OF_MESSAGE
|
|
$SYM is flagged as experimental
|
|
but is not listed in version map
|
|
Please add $SYM to the version map
|
|
END_OF_MESSAGE
|
|
ret=1
|
|
}
|
|
done
|
|
|
|
exit $ret
|