diff --git a/scripts/kconfig.pl b/scripts/kconfig.pl index 6a6bbd27472..392f1d58414 100755 --- a/scripts/kconfig.pl +++ b/scripts/kconfig.pl @@ -102,8 +102,15 @@ sub config_sub($$) { my $cfg1 = shift; my $cfg2 = shift; my %config = %{$cfg1}; - - foreach my $config (keys %$cfg2) { + my @keys = map { + my $expr = $_; + $expr =~ /[?.*]/ ? + map { + /^$expr$/ ? $_ : () + } keys %config : $expr; + } keys %$cfg2; + + foreach my $config (@keys) { delete $config{$config}; } return \%config;