Commit df2205de authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Greg Kroah-Hartman
Browse files

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: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/c69c01c12b1b30466177dcb17e45f833fb47713d.1632994565.git.mchehab+huawei@kernel.org


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 4dcce5b0
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -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;