diff options
author | Mauro Carvalho Chehab <mchehab+huawei@kernel.org> | 2021-09-30 11:40:00 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-10-05 16:23:38 +0200 |
commit | df2205de92975bdaabb115dfef5c513b26b36263 (patch) | |
tree | 178bdceb5d5810303eaa11484af064eabdc0779e /scripts/get_abi.pl | |
parent | 4dcce5b081555a33e97e06093910e6cfe6cb1023 (diff) | |
download | lwn-df2205de92975bdaabb115dfef5c513b26b36263.tar.gz lwn-df2205de92975bdaabb115dfef5c513b26b36263.zip |
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>
Link: https://lore.kernel.org/r/c69c01c12b1b30466177dcb17e45f833fb47713d.1632994565.git.mchehab+huawei@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'scripts/get_abi.pl')
-rwxr-xr-x | scripts/get_abi.pl | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/scripts/get_abi.pl b/scripts/get_abi.pl index 2f3674bb3c9e..6212f58b69c6 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; |