From: Wu Zhangjin <wuzhangjin@gmail.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-mips@linux-mips.org, linux-kernel@vger.kernel.org,
Ralf Baechle <ralf@linux-mips.org>, Ingo Molnar <mingo@elte.hu>,
Andrew Morton <akpm@linux-foundation.org>,
Frederic Weisbecker <fweisbec@gmail.com>,
Thomas Gleixner <tglx@linutronix.de>,
Nicholas Mc Guire <der.herr@hofr.at>
Subject: Re: [PATCH v2 2/6] mips dynamic function tracer support
Date: Sat, 30 May 2009 01:22:03 +0800 [thread overview]
Message-ID: <1243617723.18071.18.camel@falcon> (raw)
In-Reply-To: <alpine.DEB.2.00.0905291122260.31247@gandalf.stny.rr.com>
On Fri, 2009-05-29 at 11:24 -0400, Steven Rostedt wrote:
> On Fri, 29 May 2009, wuzhangjin@gmail.com wrote:
> > diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
> > index 409596e..a5d2ace 100755
> > --- a/scripts/recordmcount.pl
> > +++ b/scripts/recordmcount.pl
> > @@ -213,6 +213,17 @@ if ($arch eq "x86_64") {
> > if ($is_module eq "0") {
> > $cc .= " -mconstant-gp";
> > }
> > +
> > +} elsif ($arch eq "mips") {
> > + $mcount_regex = "^\\s*([0-9a-fA-F]+):.*\\s_mcount\$";
> > + $ld .= " -melf".$bits."btsmip";
> > +
> > + $cc .= " -mno-abicalls -fno-pic ";
> > +
> > + if ($bits == 64) {
> > + $type = ".dword";
> > + }
> > +
> > } else {
> > die "Arch $arch is not supported with CONFIG_FTRACE_MCOUNT_RECORD";
> > }
> > @@ -441,12 +452,12 @@ if ($#converts >= 0) {
> > #
> > # Step 5: set up each local function as a global
> > #
> > - `$objcopy $globallist $inputfile $globalobj`;
> > + `$objcopy $globallist $inputfile $globalobj 2>&1 >/dev/null`;
> >
> > #
> > # Step 6: Link the global version to our list.
> > #
> > - `$ld -r $globalobj $mcount_o -o $globalmix`;
> > + `$ld -r $globalobj $mcount_o -o $globalmix 2>&1 >/dev/null`;
>
> We still need to find out why these are giving errors. I don't like the
> idea of hiding errors that might be useful. The better way is to change
> the code to avoid having any warnings or errors.
>
ooh, there is really a bug in scripts/recordmcount.pl, just fixed it.
warnings like this(only in mips/64bit):
CC fs/proc/devices.o
mipsel-linux-gnu-objcopy: 'fs/proc/.tmp_gl_devices.o': No such file
mipsel-linux-gnu-ld: fs/proc/.tmp_gl_devices.o: No such file: No such
file or directory
rm: cannot remove `fs/proc/.tmp_gl_devices.o': No such file or directory
rm: cannot remove `fs/proc/.tmp_mx_devices.o': No such file or directory
so i checked the source code and let it print something:
#
# Step 5: set up each local function as a global
#
+ print "$objcopy $globallist $inputfile $globalobj\n";
`$objcopy $globallist $inputfile $globalobj`;
something like this is printed:
mipsel-linux-gnu-objcopy --globalize-symbol $L12
arch/mips/kernel/irq_cpu.o arch/mips/kernel/.tmp_gl_irq_cpu.o
mipsel-linux-gnu-objcopy: 'arch/mips/kernel/.tmp_gl_irq_cpu.o': No such
file
mipsel-linux-gnu-ld: arch/mips/kernel/.tmp_gl_irq_cpu.o: No such file:
No such file or directory
rm: cannot remove `arch/mips/kernel/.tmp_gl_irq_cpu.o': No such file or
directory
rm: cannot remove `arch/mips/kernel/.tmp_mx_irq_cpu.o': No such file or
directory
did you see the symbol: $L12, which should be quoted, otherwise, it will
be interpreted as the value of a variable L12(the whole $L12 should be a
string), this $L12 will be an empty string. so, the whole command
becomes:
mipsel-linux-gnu-objcopy --globalize-symbol arch/mips/kernel/irq_cpu.o
arch/mips/kernel/.tmp_gl_irq_cpu.o
the last string .../.tmp_gl_irq_cpu.o becomes the input file, but it's
not there, that is the warning.
fix it like this:
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
index 59ea43a..907110e 100755
--- a/scripts/recordmcount.pl
+++ b/scripts/recordmcount.pl
@@ -451,8 +451,8 @@ if ($#converts >= 0) {
my $locallist = "";
foreach my $con (@converts) {
- $globallist .= " --globalize-symbol $con";
- $locallist .= " --localize-symbol $con";
+ $globallist .= " --globalize-symbol \"$con\"";
+ $locallist .= " --localize-symbol \"$con\"";
}
my $globalobj = $dirname . "/.tmp_gl_" . $filename;
I will add this as the third patch, is it okay?
Best Wishes,
--- Wu Zhangjin
next prev parent reply other threads:[~2009-05-29 17:44 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-29 14:58 [PATCH v2 0/6] mips-specific ftrace support wuzhangjin
2009-05-29 15:02 ` [PATCH v2 1/6] mips static function tracer support wuzhangjin
2009-05-29 15:03 ` [PATCH v2 2/6] mips dynamic " wuzhangjin
2009-05-29 15:24 ` Steven Rostedt
2009-05-29 16:06 ` Wu Zhangjin
2009-05-29 17:22 ` Wu Zhangjin [this message]
2009-05-29 18:36 ` Wu Zhangjin
2009-05-31 6:47 ` Wang Liming
2009-06-02 16:15 ` wu zhangjin
2009-06-03 6:05 ` Wang Liming
2009-06-03 12:47 ` Steven Rostedt
2009-06-04 11:20 ` Wu Zhangjin
2009-05-29 15:04 ` [PATCH v2 3/6] add an endian argument to scripts/recordmcount.pl wuzhangjin
2009-05-29 15:21 ` Steven Rostedt
2009-05-29 15:05 ` [PATCH v2 4/6] mips function graph tracer support wuzhangjin
2009-05-29 15:05 ` [PATCH v2 5/6] mips specific clock function to get precise timestamp wuzhangjin
2009-05-29 15:06 ` [PATCH v2 6/6] mips specific system call tracer wuzhangjin
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=1243617723.18071.18.camel@falcon \
--to=wuzhangjin@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=der.herr@hofr.at \
--cc=fweisbec@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=mingo@elte.hu \
--cc=ralf@linux-mips.org \
--cc=rostedt@goodmis.org \
--cc=tglx@linutronix.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.