Received: by 2002:a05:6a11:4021:0:0:0:0 with SMTP id ky33csp587704pxb; Sat, 18 Sep 2021 11:21:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxaIPSak1p3ZG+cfsTFvjr2cRuUnfRdu2MQgY3uza7owDap9qZf/hfBb4UPhrl9SvizjAX1 X-Received: by 2002:a92:d2c7:: with SMTP id w7mr12184454ilg.71.1631989290906; Sat, 18 Sep 2021 11:21:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1631989290; cv=none; d=google.com; s=arc-20160816; b=e5b3KU2nDVitI4T9KnR1GiomfrHqiPCMCIzN9nlNaRwHGa/hw4S0qasBcEvQeXUYcc VKH6wsLzy0lOI6HSOyEFvjZClpo/nxQ95naHb2l7Oei4Dow+6KPiLfRmLb/ktJ0edCFS PNIebZIlK+MopbCRZDaT42oC8Tw0oaYmJ1UQ/jvnnI0vJa04Tqxh6tQyj5G6Au3R4L2o Wx4Qzf15YYv+xkWtTX1vX/2y1bBV9b62OSbeDK7aWqh9zVbKZoh4VRMX2vA3OV9y9xJ4 wnPsGe6LsAowibcitanENKCdB5OMHN+uHyd1z3kRkEUpTKvDCmYeNh/1nkuQx4hdbnNH IUWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=rRxsVr2/A7PZuQqn1DMRCdn6tqOYMZGykz/4RyI19Ho=; b=wWSR31LpimGVlkd3wYXuBkM50ps/EVxqdYyh7JgHYvOgBBsFqyPL4MpbpfW61IQ9oT BDI+JS/PoKS1gXPZ8+VQhfcXj5HWSKvr6rrpFtRmndvcONP5i9h541sBNaGNzlenC/9n icw9r6FdPtD4aMZZrDWmf2XOUFY8Ov+8o9C3FX2TybLOoz4SdOvwhRX4uwrf/z+SBsxn lPK6ygLHwABNtwAmvtUDCBjEFAZqarDnmD28Itb8Bk3d/iKXNRgwsBo7bsU/Q0TmUNcH stmw5UISTv4ehwLbVcH0l21ZGveaRVZgEycQ3ZsnSlSgRpdBGU6R0ziSvOK+gx8ad1gm Hkjw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=BsVjxuGo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id n3si9849084ioh.98.2021.09.18.11.21.19; Sat, 18 Sep 2021 11:21:30 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=BsVjxuGo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S244198AbhIRJxu (ORCPT + 99 others); Sat, 18 Sep 2021 05:53:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:54626 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243470AbhIRJxp (ORCPT ); Sat, 18 Sep 2021 05:53:45 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 865A56127A; Sat, 18 Sep 2021 09:52:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1631958742; bh=b4hM6zi20fiL9ExtFZn7NAAY6ZXN4cw11mSm3k3j41Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BsVjxuGoVtW40W5cJrExs4WhR98wP9r3o3Cu8cNGY+8voAOXCBFdO6OpxntDpdXwi fzerR1WQXbXIzqGMy4sI61rhUokInmWqg6Lnol4VCDHqFY1mn08viSymGfdJqWf3N2 LSBjlKoIbrUWTArFpt6FDO8st6uUww0h62H5cidhRPWFr0RqumDn2Sw8s1OmhDzOtA P8Kqvugyx7WpuH+EfGpBU6f6j9WecxdyCj6PVjmJvRrXwvFOQDVQlfzjpybaMQZHxS 94+Rh2+X4XPJneIHg9PO+wGCbuM/SRvwsB1vZJQsZ+YvIAAdt+bHFBaz2IdRU+fgOT g4uJT/TUIVXlw== Received: by mail.kernel.org with local (Exim 4.94.2) (envelope-from ) id 1mRX1A-003b12-MQ; Sat, 18 Sep 2021 11:52:20 +0200 From: Mauro Carvalho Chehab To: Linux Doc Mailing List , Greg Kroah-Hartman Cc: Mauro Carvalho Chehab , "Jonathan Corbet" , linux-kernel@vger.kernel.org Subject: [PATCH v3 4/7] scripts: get_abi.pl: add an option to filter undefined results Date: Sat, 18 Sep 2021 11:52:14 +0200 Message-Id: <7b56c10195bb5e5dfd8b5838a3db8d361231d884.1631957565.git.mchehab+huawei@kernel.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: Mauro Carvalho Chehab Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The output of this script can be too big. Add an option to filter out results, in order to help finding issues at the ABI files. Signed-off-by: Mauro Carvalho Chehab --- scripts/get_abi.pl | 37 +++++++++++++++++++++++++++++++------ 1 file changed, 31 insertions(+), 6 deletions(-) diff --git a/scripts/get_abi.pl b/scripts/get_abi.pl index b0ca4f4e56f2..f5f2f664e336 100755 --- a/scripts/get_abi.pl +++ b/scripts/get_abi.pl @@ -18,6 +18,7 @@ my $enable_lineno = 0; my $show_warnings = 1; my $prefix="Documentation/ABI"; my $sysfs_prefix="/sys"; +my $search_string; # # If true, assumes that the description is formatted with ReST @@ -31,6 +32,7 @@ GetOptions( "dir=s" => \$prefix, 'help|?' => \$help, "show-hints" => \$hint, + "search-string=s" => \$search_string, man => \$man ) or pod2usage(2); @@ -568,16 +570,13 @@ sub parse_existing_sysfs { sub check_undefined_symbols { foreach my $file (sort @files) { - # sysfs-module is special, as its definitions are inside - # a text. For now, just ignore them. - next if ($file =~ m#^/sys/module/#); - # Ignore cgroup and firmware next if ($file =~ m#^/sys/(fs/cgroup|firmware)/#); my $defined = 0; my $exact = 0; my $whats = ""; + my $found_string; my $leave = $file; $leave =~ s,.*/,,; @@ -585,6 +584,12 @@ sub check_undefined_symbols { my $path = $file; $path =~ s,(.*/).*,$1,; + if ($search_string) { + next if (!($file =~ m#$search_string#)); + $found_string = 1; + } + + print "--> $file\n" if ($found_string && $hint); if (defined($leaf{$leave})) { my $what = $leaf{$leave}; $whats .= " $what" if (!($whats =~ m/$what/)); @@ -610,6 +615,7 @@ sub check_undefined_symbols { if (substr($file, 0, $len) eq $new) { my $newf = $a . substr($file, $len); + print " $newf\n" if ($found_string && $hint); foreach my $w (split / /, $what) { if ($newf =~ m#^$w$#) { $exact = 1; @@ -632,10 +638,10 @@ sub check_undefined_symbols { next if ($file =~ m#/parameters/#); if ($hint && $defined) { - print "$leave at $path might be one of:$whats\n"; + print "$leave at $path might be one of:$whats\n" if (!$search_string || $found_string); next; } - print "$file not found.\n"; + print "$file not found.\n" if (!$search_string || $found_string); } } @@ -701,16 +707,29 @@ sub undefined_symbols { $what =~ s/\\([\[\]\(\)\|])/$1/g; $what =~ s/(\d+)\\(-\d+)/$1$2/g; + $what =~ s/\xff/\\d+/g; + + + # Special case: IIO ABI which a parenthesis. + $what =~ s/sqrt(.*)/sqrt\(.*\)/; + $leave =~ s/[\(\)]//g; + my $added = 0; foreach my $l (split /\|/, $leave) { if (defined($leaf{$l})) { next if ($leaf{$l} =~ m/$what/); $leaf{$l} .= " " . $what; + $added = 1; } else { $leaf{$l} = $what; + $added = 1; } } + if ($search_string && $added) { + print "What: $what\n" if ($what =~ m#$search_string#); + } + } } check_undefined_symbols; @@ -764,6 +783,7 @@ abi_book.pl - parse the Linux ABI files and produce a ReST book. B [--debug] [--enable-lineno] [--man] [--help] [--(no-)rst-source] [--dir=] [--show-hints] + [--search-string ] [] Where can be: @@ -811,6 +831,11 @@ times, to increase verbosity. Show hints about possible definitions for the missing ABI symbols. Used only when B. +=item B<--search-string> [regex string] + +Show only occurences that match a search string. +Used only when B. + =item B<--help> Prints a brief help message and exits. -- 2.31.1