summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRabin Vincent <rabin@rab.in>2010-08-10 20:20:53 +0200
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-09-02 16:24:18 +0200
commit7e9501fdecdee8151938e624b41978307cadddd2 (patch)
tree4bbaa236d934e9fc7e6339b4a028f08b685047d9
parentMerge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/ker... (diff)
downloadlinux-7e9501fdecdee8151938e624b41978307cadddd2.tar.xz
linux-7e9501fdecdee8151938e624b41978307cadddd2.zip
ARM: 6312/1: ftrace: allow building without frame pointers
With current gcc, compiling with both -pg and -fomit-frame-pointer is not allowed. However, -pg can be used to build without actually specifying -fno-omit-frame-pointer, upon which the default behaviour for the target will be used. On ARM, it is not possible to build a Thumb-2 kernel with -fno-omit-frame-pointer (FRAME_POINTERS depends on !THUMB2_KERNEL). In order to support ftrace for Thumb-2, we need to be able to allow a combination of FUNCTION_TRACER and !FRAME_POINTER. We do this by omitting -fomit-frame-pointer if ftrace is enabled. Acked-by: Frederic Weisbecker <fweisbec@gmail.com> Signed-off-by: Rabin Vincent <rabin@rab.in> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--Makefile7
1 files changed, 7 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 031b61cb5274..cd2123b17b6e 100644
--- a/Makefile
+++ b/Makefile
@@ -554,8 +554,15 @@ endif
ifdef CONFIG_FRAME_POINTER
KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
else
+# Some targets (ARM with Thumb2, for example), can't be built with frame
+# pointers. For those, we don't have FUNCTION_TRACER automatically
+# select FRAME_POINTER. However, FUNCTION_TRACER adds -pg, and this is
+# incompatible with -fomit-frame-pointer with current GCC, so we don't use
+# -fomit-frame-pointer with FUNCTION_TRACER.
+ifndef CONFIG_FUNCTION_TRACER
KBUILD_CFLAGS += -fomit-frame-pointer
endif
+endif
ifdef CONFIG_DEBUG_INFO
KBUILD_CFLAGS += -g