summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2012-03-28 22:51:18 +0400
committerH. Peter Anvin <hpa@zytor.com>2012-03-30 21:15:21 +0400
commit1873e870fd63ee4b87dbe0125ca373e420fb4987 (patch)
tree2c4d4244c653e374a1d0040e581be60f614f23a7 /Makefile
parent35372a7d45291140a97518a8d1c8cb0e31ee2bb7 (diff)
downloadlinux-1873e870fd63ee4b87dbe0125ca373e420fb4987.tar.xz
debug: Add CONFIG_READABLE_ASM
Add a config option to disable various gcc compiler optimizations that make assembler listings much harder to read. This is everything that reorders code significantly or creates partial functions. This is mainly to keep kernel hackers sane. Signed-off-by: Andi Kleen <ak@linux.intel.com> Link: http://lkml.kernel.org/r/1332960678-11879-2-git-send-email-andi@firstfloor.org Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile10
1 files changed, 10 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 1932984478c1..6f7328bca9c4 100644
--- a/Makefile
+++ b/Makefile
@@ -564,6 +564,16 @@ else
KBUILD_CFLAGS += -O2
endif
+ifdef CONFIG_READABLE_ASM
+# Disable optimizations that make assembler listings hard to read.
+# reorder blocks reorders the control in the function
+# ipa clone creates specialized cloned functions
+# partial inlining inlines only parts of functions
+KBUILD_CFLAGS += $(call cc-option,-fno-reorder-blocks,) \
+ $(call cc-option,-fno-ipa-cp-clone,) \
+ $(call cc-option,-fno-partial-inlining)
+endif
+
include $(srctree)/arch/$(SRCARCH)/Makefile
ifneq ($(CONFIG_FRAME_WARN),0)