| From 877417e6ffb9578e8580abf76a71e15732473456 Mon Sep 17 00:00:00 2001 |
| From: Arnd Bergmann <arnd@arndb.de> |
| Date: Mon, 25 Apr 2016 17:35:27 +0200 |
| Subject: Kbuild: change CC_OPTIMIZE_FOR_SIZE definition |
| |
| From: Arnd Bergmann <arnd@arndb.de> |
| |
| commit 877417e6ffb9578e8580abf76a71e15732473456 upstream. |
| |
| CC_OPTIMIZE_FOR_SIZE disables the often useful -Wmaybe-unused warning, |
| because that causes a ridiculous amount of false positives when combined |
| with -Os. |
| |
| This means a lot of warnings don't show up in testing by the developers |
| that should see them with an 'allmodconfig' kernel that has |
| CC_OPTIMIZE_FOR_SIZE enabled, but only later in randconfig builds |
| that don't. |
| |
| This changes the Kconfig logic around CC_OPTIMIZE_FOR_SIZE to make |
| it a 'choice' statement defaulting to CC_OPTIMIZE_FOR_PERFORMANCE |
| that gets added for this purpose. The allmodconfig and allyesconfig |
| kernels now default to -O2 with the maybe-unused warning enabled. |
| |
| Signed-off-by: Arnd Bergmann <arnd@arndb.de> |
| Signed-off-by: Michal Marek <mmarek@suse.com> |
| Cc: Nathan Chancellor <natechancellor@gmail.com> |
| Cc: Guenter Roeck <linux@roeck-us.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| init/Kconfig | 13 +++++++++++++ |
| 1 file changed, 13 insertions(+) |
| |
| --- a/init/Kconfig |
| +++ b/init/Kconfig |
| @@ -1308,6 +1308,17 @@ source "usr/Kconfig" |
| |
| endif |
| |
| +choice |
| + prompt "Compiler optimization level" |
| + default CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE |
| + |
| +config CC_OPTIMIZE_FOR_PERFORMANCE |
| + bool "Optimize for performance" |
| + help |
| + This is the default optimization level for the kernel, building |
| + with the "-O2" compiler flag for best performance and most |
| + helpful compile-time warnings. |
| + |
| config CC_OPTIMIZE_FOR_SIZE |
| bool "Optimize for size" |
| help |
| @@ -1316,6 +1327,8 @@ config CC_OPTIMIZE_FOR_SIZE |
| |
| If unsure, say N. |
| |
| +endchoice |
| + |
| config SYSCTL |
| bool |
| |