[2/2] devtools: check Windows export files
Checks
Commit Message
Updating export files (supposed to disappear at some point, but still
there) might be missed when removing symbols in the API / map files.
Add a check for this case.
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
devtools/check-symbol-maps.sh | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
Comments
On Fri, Oct 16, 2020 at 11:39 AM David Marchand
<david.marchand@redhat.com> wrote:
> +validate_windows_exports ()
> +{
> + for map in $(find lib drivers -name '*.map') ; do
> + def=${map/_version.map}_exports.def
> + [ -e $def ] || continue
I should have inverted this logic and look for exports.def files.
I'll respin.
@@ -7,6 +7,8 @@ cd $(dirname $0)/..
# speed up by ignoring Unicode details
export LC_ALL=C
+ret=0
+
find_orphan_symbols ()
{
for map in $(find lib drivers -name '*.map') ; do
@@ -30,5 +32,25 @@ 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
+ ret=1
+fi
+
+validate_windows_exports ()
+{
+ for map in $(find lib drivers -name '*.map') ; do
+ def=${map/_version.map}_exports.def
+ [ -e $def ] || continue
+ for sym in $(grep -v ^EXPORTS $def); do
+ grep -q $sym $map || echo $sym
+ done
+ done
+}
+
+unknown_windows_symbols=$(validate_windows_exports)
+if [ -n "$unknown_windows_symbols" ] ; then
+ echo "Found only in Windows export file:"
+ echo "$unknown_windows_symbols" | sed 's,^,\t,'
+ ret=1
fi
+
+exit $ret