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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
4dcce5b081
commit
df2205de92
@@ -842,8 +842,8 @@ sub undefined_symbols {
|
|||||||
|
|
||||||
# Convert what into regular expressions
|
# Convert what into regular expressions
|
||||||
|
|
||||||
$what =~ s,/\.\.\./,/*/,g;
|
# Escape dot characters
|
||||||
$what =~ s,\*,.*,g;
|
$what =~ s/\./\xf6/g;
|
||||||
|
|
||||||
# Temporarily change [0-9]+ type of patterns
|
# Temporarily change [0-9]+ type of patterns
|
||||||
$what =~ s/\[0\-9\]\+/\xff/g;
|
$what =~ s/\[0\-9\]\+/\xff/g;
|
||||||
@@ -859,6 +859,8 @@ sub undefined_symbols {
|
|||||||
$what =~ s/[\{\<\[]([\w_]+)(?:[,|]+([\w_]+)){1,}[\}\>\]]/($1|$2)/g;
|
$what =~ s/[\{\<\[]([\w_]+)(?:[,|]+([\w_]+)){1,}[\}\>\]]/($1|$2)/g;
|
||||||
|
|
||||||
# Handle wildcards
|
# Handle wildcards
|
||||||
|
$what =~ s,\*,.*,g;
|
||||||
|
$what =~ s,/\xf6..,/.*,g;
|
||||||
$what =~ s/\<[^\>]+\>/.*/g;
|
$what =~ s/\<[^\>]+\>/.*/g;
|
||||||
$what =~ s/\{[^\}]+\}/.*/g;
|
$what =~ s/\{[^\}]+\}/.*/g;
|
||||||
$what =~ s/\[[^\]]+\]/.*/g;
|
$what =~ s/\[[^\]]+\]/.*/g;
|
||||||
@@ -891,6 +893,13 @@ sub undefined_symbols {
|
|||||||
# Special case: IIO ABI which a parenthesis.
|
# Special case: IIO ABI which a parenthesis.
|
||||||
$what =~ s/sqrt(.*)/sqrt\(.*\)/;
|
$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 $leave = get_leave($what);
|
||||||
|
|
||||||
my $added = 0;
|
my $added = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user