diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/recordmcount.pl | 32 |
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 | ||
392 | my $text; | 392 | my $text; |
393 | 393 | ||
394 | |||
395 | # read headers first | ||
394 | my $read_headers = 1; | 396 | my $read_headers = 1; |
395 | 397 | ||
396 | while (<IN>) { | 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 | # 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; |