Messages in this thread Patch in this message | | | Date | Thu, 14 Nov 2013 00:18:34 -0800 | From | tip-bot for Ingo Molnar <> | Subject | [tip:perf/urgent] tools/perf/build: Fix feature-libunwind-debug-frame handling |
| |
Commit-ID: 12413057fa8b6f2993f573e6e83f843fc86d044c Gitweb: http://git.kernel.org/tip/12413057fa8b6f2993f573e6e83f843fc86d044c Author: Ingo Molnar <mingo@kernel.org> AuthorDate: Thu, 14 Nov 2013 08:25:24 +0100 Committer: Ingo Molnar <mingo@kernel.org> CommitDate: Thu, 14 Nov 2013 08:40:23 +0100
tools/perf/build: Fix feature-libunwind-debug-frame handling
Set feature-libunwind-debug-frame. We don't want it in CORE_FEATURE_TESTS because it's not the generic case, but we need to set it in the !feature-libunwind case.
Also, because x86 distributions typically don't have dwarf_find_debug_frame() unwinding method:
test-libunwind-debug-frame.c:(.text+0x31): undefined reference to `_Ux86_64_dwarf_find_debug_frame'
Restrict this new API to ARM for the time being.
With this patch test-all.c works again, so repeat perf builds are fast again:
comet:~/tip> perf stat --null --repeat 5 make -C tools/perf/ [...]
0,452899660 seconds time elapsed ( +- 0,11% )
While with before it was:
comet:~/tip> perf stat --null --repeat 5 make -C tools/perf/ [...]
1,674001829 seconds time elapsed ( +- 0,16% )
Cc: Russell King <rmk@arm.linux.org.uk> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Arnaldo Carvalho de Melo <acme@infradead.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Jean Pihet <jean.pihet@linaro.org> Cc: Will Deacon <will.deacon@arm.com> Link: http://lkml.kernel.org/n/tip-scsoctqzmou3rpkixCHezy9e@git.kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org> --- tools/perf/config/Makefile | 10 ++++++++-- tools/perf/config/feature-checks/test-all.c | 4 ---- 2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile index f5905f2..a8abd0e 100644 --- a/tools/perf/config/Makefile +++ b/tools/perf/config/Makefile @@ -328,8 +328,14 @@ ifndef NO_LIBUNWIND msg := $(warning No libunwind found, disabling post unwind support. Please install libunwind-dev[el] >= 1.1); NO_LIBUNWIND := 1 else - ifneq ($(feature-libunwind-debug-frame), 1) - msg := $(warning No debug_frame support found in libunwind); + ifeq ($(ARCH),arm) + $(call feature_check,feature-libunwind-debug-frame) + ifneq ($(feature-libunwind-debug-frame), 1) + msg := $(warning No debug_frame support found in libunwind); + CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME + endif + else + # non-ARM has no dwarf_find_debug_frame() function: CFLAGS += -DNO_LIBUNWIND_DEBUG_FRAME endif endif diff --git a/tools/perf/config/feature-checks/test-all.c b/tools/perf/config/feature-checks/test-all.c index 799865b..59e7a70 100644 --- a/tools/perf/config/feature-checks/test-all.c +++ b/tools/perf/config/feature-checks/test-all.c @@ -49,10 +49,6 @@ # include "test-libunwind.c" #undef main -#define main main_test_libunwind_debug_frame -# include "test-libunwind-debug-frame.c" -#undef main - #define main main_test_libaudit # include "test-libaudit.c" #undef main
| |