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