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 02:36:46 +0800 [thread overview]
Message-ID: <1243622206.18071.28.camel@falcon> (raw)
In-Reply-To: <1243617723.18071.18.camel@falcon>
On Sat, 2009-05-30 at 01:44 +0800, Wu Zhangjin wrote:
> 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?
>
sorry, this fix not work, can not link the kernel:
arch/mips/kernel/built-in.o:(__mcount_loc+0x3a0): undefined reference to
`$L12'
arch/mips/kernel/built-in.o:(__mcount_loc+0x3a8): undefined reference to
`$L12'
I think we should ignore these symbols, should we?
> Best Wishes,
> --- Wu Zhangjin
next prev parent reply other threads:[~2009-05-29 18:37 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
2009-05-29 18:36 ` Wu Zhangjin [this message]
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=1243622206.18071.28.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox