Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dce9d18a authored by Steven Rostedt's avatar Steven Rostedt Committed by Ingo Molnar
Browse files

ftrace: handle generic arch calls



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: default avatarSteven Rostedt <srostedt@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 6ae2a076
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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
+10 −1
Original line number Diff line number Diff line
@@ -106,7 +106,8 @@ if ($#ARGV < 6) {
	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);
@@ -129,6 +130,14 @@ my $function_regex; # Find the name of a function
			#    (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+<(.*?)>:";