devtools: check orphan symbols in map files
The script check-symbol-maps.sh finds the symbols exported in a map file but not referenced in the codebase. Suggested-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
This commit is contained in:
parent
a55277a788
commit
f8ad40dc99
@ -81,6 +81,7 @@ F: devtools/check-dup-includes.sh
|
||||
F: devtools/check-maintainers.sh
|
||||
F: devtools/check-git-log.sh
|
||||
F: devtools/check-includes.sh
|
||||
F: devtools/check-symbol-maps.sh
|
||||
F: devtools/checkpatches.sh
|
||||
F: devtools/get-maintainer.sh
|
||||
F: devtools/git-log-fixes.sh
|
||||
|
30
devtools/check-symbol-maps.sh
Executable file
30
devtools/check-symbol-maps.sh
Executable file
@ -0,0 +1,30 @@
|
||||
#! /bin/sh -e
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
# Copyright 2018 Mellanox Technologies, Ltd
|
||||
|
||||
cd $(dirname $0)/..
|
||||
|
||||
# speed up by ignoring Unicode details
|
||||
export LC_ALL=C
|
||||
|
||||
find_orphan_symbols ()
|
||||
{
|
||||
for map in $(find lib drivers -name '*.map') ; do
|
||||
for sym in $(sed -rn 's,^([^}]*_.*);,\1,p' $map) ; do
|
||||
if echo $sym | grep -q '^per_lcore_' ; then
|
||||
continue
|
||||
fi
|
||||
if ! grep -q -r --exclude=$(basename $map) \
|
||||
-w $sym $(dirname $map) ; then
|
||||
echo "$map: $sym"
|
||||
fi
|
||||
done
|
||||
done
|
||||
}
|
||||
|
||||
orphan_symbols=$(find_orphan_symbols)
|
||||
if [ -n "$orphan_symbols" ] ; then
|
||||
echo "Found only in symbol map file:"
|
||||
echo "$orphan_symbols" | sed 's,^,\t,'
|
||||
exit 1
|
||||
fi
|
Loading…
Reference in New Issue
Block a user