aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>2021-09-29 16:53:44 +0200
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>2021-09-30 10:40:26 +0200
commitc69c01c12b1b30466177dcb17e45f833fb47713d (patch)
treea8d29bff35e0cc59ca45e9c3577346f16c6c36dc
parenta3ba919e9a9208a5f012a13c9674c362a9d73169 (diff)
downloaddevel-c69c01c12b1b30466177dcb17e45f833fb47713d.tar.gz
scripts: get_abi.pl: better generate regex from what fields
Using repeating sequencies of .* seem to slow down the processing speed on some cases. Also, currently, a "." character is not properly handled as such. Change the way regexes are created, in order to produce better search expressions. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
-rwxr-xr-xscripts/get_abi.pl13
1 files changed, 11 insertions, 2 deletions
diff --git a/scripts/get_abi.pl b/scripts/get_abi.pl
index 2f3674bb3c9ed..6212f58b69c61 100755
--- a/scripts/get_abi.pl
+++ b/scripts/get_abi.pl
@@ -842,8 +842,8 @@ sub undefined_symbols {
# Convert what into regular expressions
- $what =~ s,/\.\.\./,/*/,g;
- $what =~ s,\*,.*,g;
+ # Escape dot characters
+ $what =~ s/\./\xf6/g;
# Temporarily change [0-9]+ type of patterns
$what =~ s/\[0\-9\]\+/\xff/g;
@@ -859,6 +859,8 @@ sub undefined_symbols {
$what =~ s/[\{\<\[]([\w_]+)(?:[,|]+([\w_]+)){1,}[\}\>\]]/($1|$2)/g;
# Handle wildcards
+ $what =~ s,\*,.*,g;
+ $what =~ s,/\xf6..,/.*,g;
$what =~ s/\<[^\>]+\>/.*/g;
$what =~ s/\{[^\}]+\}/.*/g;
$what =~ s/\[[^\]]+\]/.*/g;
@@ -891,6 +893,13 @@ sub undefined_symbols {
# Special case: IIO ABI which a parenthesis.
$what =~ s/sqrt(.*)/sqrt\(.*\)/;
+ # Simplify regexes with multiple .*
+ $what =~ s#(?:\.\*){2,}##g;
+# $what =~ s#\.\*/\.\*#.*#g;
+
+ # Recover dot characters
+ $what =~ s/\xf6/\./g;
+
my $leave = get_leave($what);
my $added = 0;