Commit 66af86e2 authored by Ingo Molnar's avatar Ingo Molnar

Merge branch 'tip/perf/recordmcount' of...

Merge branch 'tip/perf/recordmcount' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into perf/core
parents 0fdf1360 85caa993
...@@ -210,7 +210,7 @@ endif ...@@ -210,7 +210,7 @@ endif
ifdef CONFIG_FTRACE_MCOUNT_RECORD ifdef CONFIG_FTRACE_MCOUNT_RECORD
ifdef BUILD_C_RECORDMCOUNT ifdef BUILD_C_RECORDMCOUNT
cmd_record_mcount = $(srctree)/scripts/recordmcount "$(@)"; cmd_record_mcount = $(objtree)/scripts/recordmcount "$(@)";
else else
cmd_record_mcount = set -e ; perl $(srctree)/scripts/recordmcount.pl "$(ARCH)" \ cmd_record_mcount = set -e ; perl $(srctree)/scripts/recordmcount.pl "$(ARCH)" \
"$(if $(CONFIG_CPU_BIG_ENDIAN),big,little)" \ "$(if $(CONFIG_CPU_BIG_ENDIAN),big,little)" \
......
...@@ -313,12 +313,30 @@ do_file(char const *const fname) ...@@ -313,12 +313,30 @@ do_file(char const *const fname)
int int
main(int argc, char const *argv[]) main(int argc, char const *argv[])
{ {
const char ftrace[] = "kernel/trace/ftrace.o";
int ftrace_size = sizeof(ftrace) - 1;
int n_error = 0; /* gcc-4.3.0 false positive complaint */ int n_error = 0; /* gcc-4.3.0 false positive complaint */
if (argc <= 1)
if (argc <= 1) {
fprintf(stderr, "usage: recordmcount file.o...\n"); fprintf(stderr, "usage: recordmcount file.o...\n");
else /* Process each file in turn, allowing deep failure. */ return 0;
}
/* Process each file in turn, allowing deep failure. */
for (--argc, ++argv; 0 < argc; --argc, ++argv) { for (--argc, ++argv; 0 < argc; --argc, ++argv) {
int const sjval = setjmp(jmpenv); int const sjval = setjmp(jmpenv);
int len;
/*
* The file kernel/trace/ftrace.o references the mcount
* function but does not call it. Since ftrace.o should
* not be traced anyway, we just skip it.
*/
len = strlen(argv[0]);
if (len >= ftrace_size &&
strcmp(argv[0] + (len - ftrace_size), ftrace) == 0)
continue;
switch (sjval) { switch (sjval) {
default: { default: {
fprintf(stderr, "internal error: %s\n", argv[0]); fprintf(stderr, "internal error: %s\n", argv[0]);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment