From ebb01892af25bcc3ad88c6856bd85d2ab612c1ba Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Wed, 28 Mar 2012 11:51:18 -0700 Subject: [PATCH] --- yaml --- r: 305408 b: refs/heads/master c: 1873e870fd63ee4b87dbe0125ca373e420fb4987 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/Makefile | 10 ++++++++++ trunk/lib/Kconfig.debug | 9 +++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 463a80bd201c..6f02b2cfa090 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 35372a7d45291140a97518a8d1c8cb0e31ee2bb7 +refs/heads/master: 1873e870fd63ee4b87dbe0125ca373e420fb4987 diff --git a/trunk/Makefile b/trunk/Makefile index 1932984478c1..6f7328bca9c4 100644 --- a/trunk/Makefile +++ b/trunk/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) diff --git a/trunk/lib/Kconfig.debug b/trunk/lib/Kconfig.debug index 6777153f18f3..4d3cbbbe4516 100644 --- a/trunk/lib/Kconfig.debug +++ b/trunk/lib/Kconfig.debug @@ -70,6 +70,15 @@ config STRIP_ASM_SYMS that look like '.Lxxx') so they don't pollute the output of get_wchan() and suchlike. +config READABLE_ASM + bool "Generate readable assembler code" + depends on DEBUG_KERNEL + help + Disable some compiler optimizations that tend to generate human unreadable + assembler output. This may make the kernel slightly slower, but it helps + to keep kernel developers who have to stare a lot at assembler listings + sane. + config UNUSED_SYMBOLS bool "Enable unused/obsolete exported symbols" default y if X86