[PATCH v2 0/5] get_abi.pl: Check for missing symbols at the ABI specs

From: Mauro Carvalho Chehab
Date: Tue Sep 14 2021 - 10:46:46 EST


Hi Greg,

That's the second version of the logic added at get_abi.pl meant to
validate ABI definitions.

While it would be doable to validate the ABI by searching __ATTR and
similar macros around the driver, this would probably be very complex
and would take a while to parse.

Instead, let's add a new feature at scripts/get_abi.pl which does
check the real ABI found at the sysfs contents of a running system
with Documentation/ABI.

patch 1 changes get_abi.pl logic to handle multiple What: lines, in
order to make the script more robust;

patch 2 adds the basic logic. It runs really quicky (up to 2
seconds), but it doesn't use sysfs softlinks.

Patch 3 adds support for parsing softlinks. It makes the script a
lot slower, making it take a couple of minutes to process the entire
sysfs files. It could be optimized in the future by using a graph,
but, for now, let's keep it simple.

Patch 4 adds an optional parameter to allow filtering the results
using a regex given by the user. When this parameter is used
(which should be the normal usecase), it will only try to find softlinks
if the sysfs node matches a regex.

Patch 5 improves the report by avoiding it to ignore What: that
ends with a wildcard.

While this series is independent, if you wanna test, I recommend to
apply first this series:

https://lore.kernel.org/lkml/cover.1631629496.git.mchehab+huawei@xxxxxxxxxx/T/#t

As it fix some bad What: descriptions, and some wildcard ambiquities.

-

v2:
- multiple What: for the same description are now properly handled;
- some special cases are now better handled;
- some bugs got fixed.

The full series, with the ABI changes and some ABI improvements can be found
at:
https://git.kernel.org/pub/scm/linux/kernel/git/mchehab/devel.git/commit/?h=get_undefined&id=1838d8fb149170f6c19feda0645d6c3157f46f4f

Mauro Carvalho Chehab (5):
scripts: get_abi.pl: Better handle multiple What parameters
scripts: get_abi.pl: Check for missing symbols at the ABI specs
scripts: get_abi.pl: detect softlinks
scripts: get_abi.pl: add an option to filter undefined results
scripts: get_abi.pl: don't skip what that ends with wildcards

scripts/get_abi.pl | 258 +++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 252 insertions(+), 6 deletions(-)

--
2.31.1