aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/recordmcount.pl
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-08-11 08:19:09 -0400
committerIngo Molnar <mingo@elte.hu>2009-08-11 08:19:09 -0400
commit89034bc2c7b839702c00a704e79d112737f98be0 (patch)
treee65b1f3d4c751baa840efc81bc4734f089379eb3 /scripts/recordmcount.pl
parentfb82ad719831db58e9baa4c67015aae3fe27e7e3 (diff)
parent85dfd81dc57e8183a277ddd7a56aa65c96f3f487 (diff)
Merge branch 'linus' into tracing/core
Conflicts: kernel/trace/trace_events_filter.c We use the tracing/core version. Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'scripts/recordmcount.pl')
-rwxr-xr-xscripts/recordmcount.pl12
1 files changed, 8 insertions, 4 deletions
diff --git a/scripts/recordmcount.pl b/scripts/recordmcount.pl
index db4ebe1b9960..090d300d7394 100755
--- a/scripts/recordmcount.pl
+++ b/scripts/recordmcount.pl
@@ -392,7 +392,7 @@ while (<IN>) {
392 $read_function = 0; 392 $read_function = 0;
393 } 393 }
394 # print out any recorded offsets 394 # print out any recorded offsets
395 update_funcs() if ($text_found); 395 update_funcs() if (defined($ref_func));
396 396
397 # reset all markers and arrays 397 # reset all markers and arrays
398 $text_found = 0; 398 $text_found = 0;
@@ -402,7 +402,6 @@ while (<IN>) {
402 # section found, now is this a start of a function? 402 # section found, now is this a start of a function?
403 } elsif ($read_function && /$function_regex/) { 403 } elsif ($read_function && /$function_regex/) {
404 $text_found = 1; 404 $text_found = 1;
405 $offset = hex $1;
406 $text = $2; 405 $text = $2;
407 406
408 # if this is either a local function or a weak function 407 # if this is either a local function or a weak function
@@ -411,10 +410,15 @@ while (<IN>) {
411 if (!defined($locals{$text}) && !defined($weak{$text})) { 410 if (!defined($locals{$text}) && !defined($weak{$text})) {
412 $ref_func = $text; 411 $ref_func = $text;
413 $read_function = 0; 412 $read_function = 0;
413 $offset = hex $1;
414 } else { 414 } else {
415 # if we already have a function, and this is weak, skip it 415 # if we already have a function, and this is weak, skip it
416 if (!defined($ref_func) || !defined($weak{$text})) { 416 if (!defined($ref_func) && !defined($weak{$text}) &&
417 # PPC64 can have symbols that start with .L and
418 # gcc considers these special. Don't use them!
419 $text !~ /^\.L/) {
417 $ref_func = $text; 420 $ref_func = $text;
421 $offset = hex $1;
418 } 422 }
419 } 423 }
420 } elsif ($read_headers && /$mcount_section/) { 424 } elsif ($read_headers && /$mcount_section/) {
@@ -439,7 +443,7 @@ while (<IN>) {
439} 443}
440 444
441# dump out anymore offsets that may have been found 445# dump out anymore offsets that may have been found
442update_funcs() if ($text_found); 446update_funcs() if (defined($ref_func));
443 447
444# If we did not find any mcount callers, we are done (do nothing). 448# If we did not find any mcount callers, we are done (do nothing).
445if (!$opened) { 449if (!$opened) {