aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/recordmcount.pl32
1 files changed, 18 insertions, 14 deletions
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
index d6199fc4870a..02c80552b078 100755
--- a/scripts/recordmcount.pl
+++ b/scripts/recordmcount.pl
@@ -391,9 +391,27 @@ open(IN, "$objdump -hdr $inputfile|") || die "error running $objdump";
391 391
392my $text; 392my $text;
393 393
394
395# read headers first
394my $read_headers = 1; 396my $read_headers = 1;
395 397
396while (<IN>) { 398while (<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 # is it a section? 415 # is it a section?
398 if (/$section_regex/) { 416 if (/$section_regex/) {
399 $read_headers = 0; 417 $read_headers = 0;
@@ -434,21 +452,7 @@ while (<IN>) {
434 $offset = hex $1; 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 # is this a call site to mcount? If so, record it to print later 456 # is this a call site to mcount? If so, record it to print later
453 if ($text_found && /$mcount_regex/) { 457 if ($text_found && /$mcount_regex/) {
454 $offsets[$#offsets + 1] = hex $1; 458 $offsets[$#offsets + 1] = hex $1;