Commit db24c7dcf42f78629d89b34e5d5a98ed56ea2ff5

Authored by Li Hong
Committed by Steven Rostedt
1 parent 7b7edc2768

tracing: Move mcount section search to front of loop in recordmcount.pl

Move the mcount section check to the beginning of the objdump read loop.
This makes the code easier to follow since the search for the mcount
section is performed first before the mcount callers are processed.

Signed-off-by: Li Hong <lihong.hi@gmail.com>
LKML-Reference: <20091028050523.GE30758@uhli>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>

Showing 1 changed file with 18 additions and 14 deletions Side-by-side Diff

scripts/recordmcount.pl
... ... @@ -391,9 +391,27 @@
391 391  
392 392 my $text;
393 393  
  394 +
  395 +# read headers first
394 396 my $read_headers = 1;
395 397  
396 398 while (<IN>) {
  399 +
  400 + if ($read_headers && /$mcount_section/) {
  401 + #
  402 + # Somehow the make process can execute this script on an
  403 + # object twice. If it does, we would duplicate the mcount
  404 + # section and it will cause the function tracer self test
  405 + # to fail. Check if the mcount section exists, and if it does,
  406 + # warn and exit.
  407 + #
  408 + print STDERR "ERROR: $mcount_section already in $inputfile\n" .
  409 + "\tThis may be an indication that your build is corrupted.\n" .
  410 + "\tDelete $inputfile and try again. If the same object file\n" .
  411 + "\tstill causes an issue, then disable CONFIG_DYNAMIC_FTRACE.\n";
  412 + exit(-1);
  413 + }
  414 +
397 415 # is it a section?
398 416 if (/$section_regex/) {
399 417 $read_headers = 0;
400 418  
... ... @@ -434,21 +452,7 @@
434 452 $offset = hex $1;
435 453 }
436 454 }
437   - } elsif ($read_headers && /$mcount_section/) {
438   - #
439   - # Somehow the make process can execute this script on an
440   - # object twice. If it does, we would duplicate the mcount
441   - # section and it will cause the function tracer self test
442   - # to fail. Check if the mcount section exists, and if it does,
443   - # warn and exit.
444   - #
445   - print STDERR "ERROR: $mcount_section already in $inputfile\n" .
446   - "\tThis may be an indication that your build is corrupted.\n" .
447   - "\tDelete $inputfile and try again. If the same object file\n" .
448   - "\tstill causes an issue, then disable CONFIG_DYNAMIC_FTRACE.\n";
449   - exit(-1);
450 455 }
451   -
452 456 # is this a call site to mcount? If so, record it to print later
453 457 if ($text_found && /$mcount_regex/) {
454 458 $offsets[$#offsets + 1] = hex $1;