On 24.7.2011 13:17, Radosław Smogura wrote:
Patch helps to debug kernel.
Fixed some language mistakes and added few -f-no-... options.
Hi,
please fix the first patch directly. And please also cc
linux-kernel@xxxxxxxxxxxxxxx.
Michal
Signed-off-by: Radosław Smogura<mail@xxxxxxxxxx>
---
lib/Kconfig.debug.optim | 156 +++++++++++++++++++++++++++--------
scripts/Makefile.optim.inc | 24 ++++++
scripts/debug/make_config_optim.sh | 66 ++++++++--------
3 files changed, 178 insertions(+), 68 deletions(-)
diff --git a/lib/Kconfig.debug.optim b/lib/Kconfig.debug.optim
index 09b1012..99dcde0 100644
--- a/lib/Kconfig.debug.optim
+++ b/lib/Kconfig.debug.optim
@@ -2,100 +2,184 @@
# Distributed under GPL v2 License
menuconfig HACK_OPTIM
- bool "Allows to override GCC optimization"
+ bool "Allows overriding GCC optimizations"
depends on DEBUG_KERNEL&& EXPERIMENTAL
help
If you say Y here you will be able to override
- how GCC optimize kernel code. This will create
- more debug friendly, but with not guarentee
- about same runi, like production, kernel.
+ how GCC optimizes kernel code. This creates
+ more debug-friendly code, but does not guarantee
+ the same running code like a production kernel.
- If you say Y here probably You will want say
- for all suboptions
+ If you say Y here probably you will want to say
+ Y for all suboptions
if HACK_OPTIM
config HACK_OPTIM_FORCE_O1_LEVEL
bool "Forces -O1 optimization level"
---help---
- This will change how GCC optimize code. Code
+ This changes how GCC optimizes code. Code
may be slower and larger but will be more debug
"friendly".
- In some cases there is low chance that kernel
- will run different then normal, reporting or not
- some bugs or errors. Refere to GCC manual for
- more details.
+ In some cases there is a low chance that the kernel
+ will run differently than normal, reporting or not
+ reporting some bugs or errors.
+ Refer to GCC manual for more details.
You SHOULD say N here.
config HACK_OPTIM__fno_inline_functions_called_once
bool "Adds -fno-inline-functions-called-once parameter to gcc invoke line."
---help---
- This will change how GCC optimize code. Code
+ This changes how GCC optimizes code. Code
may be slower and larger but will be more debug
"friendly".
- In some cases there is low chance that kernel
- will run different then normal, reporting or not
- some bugs or errors. Refere to GCC manual for
- more details.
+ In some cases there is a low chance that the kernel
+ will run differently than normal, reporting or not
+ reporting some bugs or errors.
+ Refer to GCC manual for more details.
You SHOULD say N here.
config HACK_OPTIM__fno_combine_stack_adjustments
bool "Adds -fno-combine-stack-adjustments parameter to gcc invoke line."
---help---
- This will change how GCC optimize code. Code
+ This changes how GCC optimizes code. Code
may be slower and larger but will be more debug
"friendly".
- In some cases there is low chance that kernel
- will run different then normal, reporting or not
- some bugs or errors. Refere to GCC manual for
- more details.
+ In some cases there is a low chance that the kernel
+ will run differently than normal, reporting or not
+ reporting some bugs or errors.
+ Refer to GCC manual for more details.
You SHOULD say N here.
config HACK_OPTIM__fno_tree_dce
bool "Adds -fno-tree-dce parameter to gcc invoke line."
---help---
- This will change how GCC optimize code. Code
+ This changes how GCC optimizes code. Code
may be slower and larger but will be more debug
"friendly".
- In some cases there is low chance that kernel
- will run different then normal, reporting or not
- some bugs or errors. Refere to GCC manual for
- more details.
+ In some cases there is a low chance that the kernel
+ will run differently than normal, reporting or not
+ reporting some bugs or errors.
+ Refer to GCC manual for more details.
You SHOULD say N here.
config HACK_OPTIM__fno_tree_dominator_opts
bool "Adds -fno-tree-dominator-opts parameter to gcc invoke line."
---help---
- This will change how GCC optimize code. Code
+ This changes how GCC optimizes code. Code
may be slower and larger but will be more debug
"friendly".
- In some cases there is low chance that kernel
- will run different then normal, reporting or not
- some bugs or errors. Refere to GCC manual for
- more details.
+ In some cases there is a low chance that the kernel
+ will run differently than normal, reporting or not
+ reporting some bugs or errors.
+ Refer to GCC manual for more details.
You SHOULD say N here.
config HACK_OPTIM__fno_dse
bool "Adds -fno-dse parameter to gcc invoke line."
---help---
- This will change how GCC optimize code. Code
+ This changes how GCC optimizes code. Code
may be slower and larger but will be more debug
"friendly".
- In some cases there is low chance that kernel
- will run different then normal, reporting or not
- some bugs or errors. Refere to GCC manual for
- more details.
+ In some cases there is a low chance that the kernel
+ will run differently than normal, reporting or not
+ reporting some bugs or errors.
+ Refer to GCC manual for more details.
+
+ You SHOULD say N here.
+
+config HACK_OPTIM__fno_dce
+ bool "Adds -fno-dce parameter to gcc invoke line."
+ ---help---
+ This changes how GCC optimizes code. Code
+ may be slower and larger but will be more debug
+ "friendly".
+
+ In some cases there is a low chance that the kernel
+ will run differently than normal, reporting or not
+ reporting some bugs or errors.
+ Refer to GCC manual for more details.
+
+ You SHOULD say N here.
+
+config HACK_OPTIM__fno_auto_inc_dec
+ bool "Adds -fno-auto-inc-dec parameter to gcc invoke line."
+ ---help---
+ This changes how GCC optimizes code. Code
+ may be slower and larger but will be more debug
+ "friendly".
+
+ In some cases there is a low chance that the kernel
+ will run differently than normal, reporting or not
+ reporting some bugs or errors.
+ Refer to GCC manual for more details.
+
+ You SHOULD say N here.
+
+config HACK_OPTIM__fno_inline_small_functions
+ bool "Adds -fno-inline-small-functions parameter to gcc invoke line."
+ ---help---
+ This changes how GCC optimizes code. Code
+ may be slower and larger but will be more debug
+ "friendly".
+
+ In some cases there is a low chance that the kernel
+ will run differently than normal, reporting or not
+ reporting some bugs or errors.
+ Refer to GCC manual for more details.
+
+ You SHOULD say N here.
+
+config HACK_OPTIM__fno_if_conversion
+ bool "Adds -fno-if-conversion parameter to gcc invoke line."
+ ---help---
+ This changes how GCC optimizes code. Code
+ may be slower and larger but will be more debug
+ "friendly".
+
+ In some cases there is a low chance that the kernel
+ will run differently than normal, reporting or not
+ reporting some bugs or errors.
+ Refer to GCC manual for more details.
+
+ You SHOULD say N here.
+
+config HACK_OPTIM__fno_if_conversion2
+ bool "Adds -fno-if-conversion2 parameter to gcc invoke line."
+ ---help---
+ This changes how GCC optimizes code. Code
+ may be slower and larger but will be more debug
+ "friendly".
+
+ In some cases there is a low chance that the kernel
+ will run differently than normal, reporting or not
+ reporting some bugs or errors.
+ Refer to GCC manual for more details.
+
+ You SHOULD say N here.
+
+config HACK_OPTIM__fno_tree_fre
+ bool "Adds -fno-tree-fre parameter to gcc invoke line."
+ ---help---
+ This changes how GCC optimizes code. Code
+ may be slower and larger but will be more debug
+ "friendly".
+
+ In some cases there is a low chance that the kernel
+ will run differently than normal, reporting or not
+ reporting some bugs or errors.
+ Refer to GCC manual for more details.
You SHOULD say N here.
diff --git a/scripts/Makefile.optim.inc b/scripts/Makefile.optim.inc
index e78cc92..1bd219d 100644
--- a/scripts/Makefile.optim.inc
+++ b/scripts/Makefile.optim.inc
@@ -21,3 +21,27 @@ ifdef CONFIG_HACK_OPTIM__fno_dse
KBUILD_CFLAGS += -fno-dse
endif
+ifdef CONFIG_HACK_OPTIM__fno_dce
+ KBUILD_CFLAGS += -fno-dce
+endif
+
+ifdef CONFIG_HACK_OPTIM__fno_auto_inc_dec
+ KBUILD_CFLAGS += -fno-auto-inc-dec
+endif
+
+ifdef CONFIG_HACK_OPTIM__fno_inline_small_functions
+ KBUILD_CFLAGS += -fno-inline-small-functions
+endif
+
+ifdef CONFIG_HACK_OPTIM__fno_if_conversion
+ KBUILD_CFLAGS += -fno-if-conversion
+endif
+
+ifdef CONFIG_HACK_OPTIM__fno_if_conversion2
+ KBUILD_CFLAGS += -fno-if-conversion2
+endif
+
+ifdef CONFIG_HACK_OPTIM__fno_tree_fre
+ KBUILD_CFLAGS += -fno-tree-fre
+endif
+
diff --git a/scripts/debug/make_config_optim.sh b/scripts/debug/make_config_optim.sh
index 26865923..4db8419 100644
--- a/scripts/debug/make_config_optim.sh
+++ b/scripts/debug/make_config_optim.sh
@@ -16,22 +16,42 @@ OPTIMIZATIONS_PARAMS="-fno-inline-functions-called-once \
-fno-combine-stack-adjustments \
-fno-tree-dce \
-fno-tree-dominator-opts \
- -fno-dse "
+ -fno-dse \
+ -fno-dce \
+ -fno-auto-inc-dec \
+ -fno-inline-small-functions \
+ -fno-if-conversion \
+ -fno-if-conversion2 \
+ -fno-tree-fre
+"
+
+function printStandardHelp() {
+ echo -e "\t This changes how GCC optimizes code. Code">> $KCFG
+ echo -e "\t may be slower and larger but will be more debug">> $KCFG
+ echo -e "\t \"friendly\".">> $KCFG
+ echo>> $KCFG
+ echo -e "\t In some cases there is a low chance that the kernel">> $KCFG
+ echo -e "\t will run differently than normal, reporting or not">> $KCFG
+ echo -e "\t reporting some bugs or errors.">> $KCFG
+ echo -e "\t Refer to GCC manual for more details.">> $KCFG
+ echo>> $KCFG
+ echo -e "\t You SHOULD say N here.">> $KCFG
+}
echo "# This file was auto generated. It's utility configuration"> $KCFG
echo "# Distributed under GPL v2 License">> $KCFG
echo>> $KCFG
-echo "menuconfig ${CFG_PREFIX}">> $KCFG
-echo -e "\tbool \"Allows to override GCC optimization\"">> $KCFG
-echo -e "\tdepends on DEBUG_KERNEL&& EXPERIMENTAL">> $KCFG
-echo -e "\thelp">> $KCFG
-echo -e "\t If you say Y here you will be able to override">> $KCFG
-echo -e "\t how GCC optimize kernel code. This will create">> $KCFG
-echo -e "\t more debug friendly, but with not guarentee">> $KCFG
-echo -e "\t about same runi, like production, kernel.">> $KCFG
-echo>> $KCFG
-echo -e "\t If you say Y here probably You will want say">> $KCFG
-echo -e "\t for all suboptions">> $KCFG
+echo "menuconfig ${CFG_PREFIX}">> $KCFG
+echo -e "\tbool \"Allows overriding GCC optimizations\"">> $KCFG
+echo -e "\tdepends on DEBUG_KERNEL&& EXPERIMENTAL">> $KCFG
+echo -e "\thelp">> $KCFG
+echo -e "\t If you say Y here you will be able to override">> $KCFG
+echo -e "\t how GCC optimizes kernel code. This creates">> $KCFG
+echo -e "\t more debug-friendly code, but does not guarantee">> $KCFG
+echo -e "\t the same running code like a production kernel.">> $KCFG
+echo>> $KCFG
+echo -e "\t If you say Y here probably you will want to say">> $KCFG
+echo -e "\t Y for all suboptions">> $KCFG
echo>> $KCFG
echo "if ${CFG_PREFIX}">> $KCFG
echo>> $KCFG
@@ -47,16 +67,7 @@ echo>> $MKFI
echo -e "config ${CFG_PREFIX}_FORCE_O1_LEVEL">> $KCFG
echo -e "\tbool \"Forces -O1 optimization level\"">> $KCFG
echo -e "\t---help---">> $KCFG
-echo -e "\t This will change how GCC optimize code. Code">> $KCFG
-echo -e "\t may be slower and larger but will be more debug">> $KCFG
-echo -e "\t \"friendly\".">> $KCFG
-echo>> $KCFG
-echo -e "\t In some cases there is low chance that kernel">> $KCFG
-echo -e "\t will run different then normal, reporting or not">> $KCFG
-echo -e "\t some bugs or errors. Refere to GCC manual for">> $KCFG
-echo -e "\t more details.">> $KCFG
-echo>> $KCFG
-echo -e "\t You SHOULD say N here.">> $KCFG
+printStandardHelp;
echo>> $KCFG
for o in $OPTIMIZATIONS_PARAMS ; do
@@ -67,16 +78,7 @@ for o in $OPTIMIZATIONS_PARAMS ; do
echo -e "config ${cfg_o}">> $KCFG
echo -e "\tbool \"Adds $o parameter to gcc invoke line.\"">> $KCFG
echo -e "\t---help---">> $KCFG
- echo -e "\t This will change how GCC optimize code. Code">> $KCFG
- echo -e "\t may be slower and larger but will be more debug">> $KCFG
- echo -e "\t \"friendly\".">> $KCFG
- echo>> $KCFG
- echo -e "\t In some cases there is low chance that kernel">> $KCFG
- echo -e "\t will run different then normal, reporting or not">> $KCFG
- echo -e "\t some bugs or errors. Refere to GCC manual for">> $KCFG
- echo -e "\t more details.">> $KCFG
- echo>> $KCFG
- echo -e "\t You SHOULD say N here.">> $KCFG
+ printStandardHelp;
echo>> $KCFG
#Generate Make for include
--
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html