All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 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.