Skip to content

Commit

Permalink
ftrace: handle generic arch calls
Browse files Browse the repository at this point in the history
The recordmcount script requires that the actual arch is passed in.
This works well when ARCH=i386 or ARCH=x86_64 but does not handle the
case of ARCH=x86.

This patch adds a parameter to the function to pass in the number of
bits of the architecture. So that it can determine if x86 should be
run for x86_64 or i386 archs.

Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
  • Loading branch information
Steven Rostedt authored and Ingo Molnar committed Oct 23, 2008
1 parent 6ae2a07 commit dce9d18
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
10 changes: 8 additions & 2 deletions scripts/Makefile.build
Original file line number Diff line number Diff line change
Expand Up @@ -198,10 +198,16 @@ cmd_modversions = \
fi;
endif

ifdef CONFIG_64BIT
arch_bits = 64
else
arch_bits = 32
endif

ifdef CONFIG_FTRACE_MCOUNT_RECORD
cmd_record_mcount = perl $(srctree)/scripts/recordmcount.pl \
"$(ARCH)" "$(OBJDUMP)" "$(OBJCOPY)" "$(CC)" "$(LD)" "$(NM)" "$(RM)" \
"$(MV)" "$(@)";
"$(ARCH)" "$(arch_bits)" "$(OBJDUMP)" "$(OBJCOPY)" "$(CC)" "$(LD)" \
"$(NM)" "$(RM)" "$(MV)" "$(@)";
endif

define rule_cc_o_c
Expand Down
11 changes: 10 additions & 1 deletion scripts/recordmcount.pl
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,8 @@
exit(1);
}

my ($arch, $objdump, $objcopy, $cc, $ld, $nm, $rm, $mv, $inputfile) = @ARGV;
my ($arch, $bits, $objdump, $objcopy, $cc,
$ld, $nm, $rm, $mv, $inputfile) = @ARGV;

$objdump = "objdump" if ((length $objdump) == 0);
$objcopy = "objcopy" if ((length $objcopy) == 0);
Expand All @@ -129,6 +130,14 @@
# (return offset and func name)
my $mcount_regex; # Find the call site to mcount (return offset)

if ($arch eq "x86") {
if ($bits == 64) {
$arch = "x86_64";
} else {
$arch = "i386";
}
}

if ($arch eq "x86_64") {
$section_regex = "Disassembly of section";
$function_regex = "^([0-9a-fA-F]+)\\s+<(.*?)>:";
Expand Down

0 comments on commit dce9d18

Please sign in to comment.