From: Steven Rostedt <rostedt@goodmis.org>
To: linux-kernel@vger.kernel.org
Cc: Ingo Molnar <mingo@elte.hu>,
Andrew Morton <akpm@linux-foundation.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
Li Hong <lihong.hi@gmail.com>
Subject: [PATCH 6/8] [PATCH 6/8] tracing: Add regex for weak functions in recordmcount.pl
Date: Thu, 29 Oct 2009 18:33:00 -0400 [thread overview]
Message-ID: <20091029223320.437410937@goodmis.org> (raw)
In-Reply-To: 20091029223254.504427063@goodmis.org
[-- Attachment #1: 0006-tracing-Add-regex-for-weak-functions-in-recordmcount.patch --]
[-- Type: text/plain, Size: 2688 bytes --]
From: Li Hong <lihong.hi@gmail.com>
Add a variable to contain the regex needed to find weak functions
in the 'nm' output. This will allow other archs to easily override it.
Also rename the regex variable $nm_regex to $local_regex to be more
descriptive.
Signed-off-by: Li Hong <lihong.hi@gmail.com>
LKML-Reference: <20091028050619.GF30758@uhli>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
scripts/recordmcount.pl | 16 +++++++++-------
1 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
index 02c8055..7265a7d 100755
--- a/scripts/recordmcount.pl
+++ b/scripts/recordmcount.pl
@@ -92,7 +92,7 @@
#
# Here are the steps we take:
#
-# 1) Record all the local symbols by using 'nm'
+# 1) Record all the local and weak symbols by using 'nm'
# 2) Use objdump to find all the call site offsets and sections for
# mcount.
# 3) Compile the list into its own object.
@@ -152,7 +152,8 @@ my %weak; # List of weak functions
my %convert; # List of local functions used that needs conversion
my $type;
-my $nm_regex; # Find the local functions (return function)
+my $local_regex; # Match a local function (return function)
+my $weak_regex; # Match a weak function (return function)
my $section_regex; # Find the start of a section
my $function_regex; # Find the name of a function
# (return offset and func name)
@@ -197,7 +198,8 @@ if ($arch eq "x86") {
# We base the defaults off of i386, the other archs may
# feel free to change them in the below if statements.
#
-$nm_regex = "^[0-9a-fA-F]+\\s+t\\s+(\\S+)";
+$local_regex = "^[0-9a-fA-F]+\\s+t\\s+(\\S+)";
+$weak_regex = "^[0-9a-fA-F]+\\s+([wW])\\s+(\\S+)";
$section_regex = "Disassembly of section\\s+(\\S+):";
$function_regex = "^([0-9a-fA-F]+)\\s+<(.*?)>:";
$mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\smcount\$";
@@ -246,7 +248,7 @@ if ($arch eq "x86_64") {
$cc .= " -m32";
} elsif ($arch eq "powerpc") {
- $nm_regex = "^[0-9a-fA-F]+\\s+t\\s+(\\.?\\S+)";
+ $local_regex = "^[0-9a-fA-F]+\\s+t\\s+(\\.?\\S+)";
$function_regex = "^([0-9a-fA-F]+)\\s+<(\\.?.*?)>:";
$mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\s\\.?_mcount\$";
@@ -322,13 +324,13 @@ check_objcopy();
#
# Step 1: find all the local (static functions) and weak symbols.
-# 't' is local, 'w/W' is weak (we never use a weak function)
+# 't' is local, 'w/W' is weak
#
open (IN, "$nm $inputfile|") || die "error running $nm";
while (<IN>) {
- if (/$nm_regex/) {
+ if (/$local_regex/) {
$locals{$1} = 1;
- } elsif (/^[0-9a-fA-F]+\s+([wW])\s+(\S+)/) {
+ } elsif (/$weak_regex/) {
$weak{$2} = $1;
}
}
--
1.6.3.3
next prev parent reply other threads:[~2009-10-29 22:33 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-10-29 22:32 [PATCH 0/8] tracing: fixes and cleanups for recordmcount.pl Steven Rostedt
2009-10-29 22:32 ` [PATCH 1/8] [PATCH 1/8] tracing: Amend documentation in recordmcount.pl to reflect implementation Steven Rostedt
2009-10-29 22:32 ` [PATCH 2/8] [PATCH 2/8] tracing: Correct the check for number of arguments in recordmcount.pl Steven Rostedt
2009-10-29 22:32 ` [PATCH 3/8] [PATCH 3/8] tracing: Check absolute path of input file " Steven Rostedt
2009-10-29 22:32 ` [PATCH 4/8] [PATCH 4/8] tracing: Fix objcopy revision check " Steven Rostedt
2009-10-29 22:32 ` [PATCH 5/8] [PATCH 5/8] tracing: Move mcount section search to front of loop " Steven Rostedt
2009-10-29 22:33 ` Steven Rostedt [this message]
2009-10-29 22:33 ` [PATCH 7/8] [PATCH 7/8] tracing: Move conditional into update_funcs() " Steven Rostedt
2009-10-29 22:33 ` [PATCH 8/8] [PATCH 8/8] tracing: Exit with error if a weak function is used " Steven Rostedt
2009-10-30 7:45 ` [PATCH 0/8] tracing: fixes and cleanups for recordmcount.pl Ingo Molnar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20091029223320.437410937@goodmis.org \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=fweisbec@gmail.com \
--cc=lihong.hi@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox