Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 140644
b: refs/heads/master
c: b43f709
h: refs/heads/master
v: v3
  • Loading branch information
Steven Rostedt authored and Ingo Molnar committed Jan 18, 2009
1 parent 94e68c8 commit ffae184
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4092762aebfe55c1f8e31440b80a053c2dbe519b
refs/heads/master: b43f70933e7753a284733d5ae355f6778bd118ce
21 changes: 18 additions & 3 deletions trunk/scripts/recordmcount.pl
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@
my $V = '0.1';

if ($#ARGV < 7) {
print "usage: $P arch objdump objcopy cc ld nm rm mv is_module inputfile\n";
print "usage: $P arch bits objdump objcopy cc ld nm rm mv is_module inputfile\n";
print "version: $V\n";
exit(1);
}
Expand Down Expand Up @@ -275,7 +275,6 @@
"\tDisabling local function references.\n";
}


#
# Step 1: find all the local (static functions) and weak symbols.
# 't' is local, 'w/W' is weak (we never use a weak function)
Expand Down Expand Up @@ -343,13 +342,16 @@ sub update_funcs
#
# Step 2: find the sections and mcount call sites
#
open(IN, "$objdump -dr $inputfile|") || die "error running $objdump";
open(IN, "$objdump -hdr $inputfile|") || die "error running $objdump";

my $text;

my $read_headers = 1;

while (<IN>) {
# is it a section?
if (/$section_regex/) {
$read_headers = 0;

# Only record text sections that we know are safe
if (defined($text_sections{$1})) {
Expand Down Expand Up @@ -383,6 +385,19 @@ sub update_funcs
$ref_func = $text;
}
}
} elsif ($read_headers && /$mcount_section/) {
#
# Somehow the make process can execute this script on an
# object twice. If it does, we would duplicate the mcount
# section and it will cause the function tracer self test
# to fail. Check if the mcount section exists, and if it does,
# warn and exit.
#
print STDERR "ERROR: $mcount_section already in $inputfile\n" .
"\tThis may be an indication that your build is corrupted.\n" .
"\tDelete $inputfile and try again. If the same object file\n" .
"\tstill causes an issue, then disable CONFIG_DYNAMIC_FTRACE.\n";
exit(-1);
}

# is this a call site to mcount? If so, record it to print later
Expand Down

0 comments on commit ffae184

Please sign in to comment.