On 2014-03-05 02:36, [email protected] wrote:
> From: Jon Ringle <[email protected]>
> 
> Signed-off-by: Jon Ringle <[email protected]>
> ---
>  Makefile     |  2 ++
>  init/Kconfig | 19 ++++++++++++++++---
>  2 files changed, 18 insertions(+), 3 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 78209ee..e7f0b3c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -581,6 +581,8 @@ all: vmlinux
>  
>  ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
>  KBUILD_CFLAGS        += -Os $(call cc-disable-warning,maybe-uninitialized,)
> +else ifdef CONFIG_CC_OPTIMIZE_FOR_SPEED
> +KBUILD_CFLAGS   += -O3
>  else
>  KBUILD_CFLAGS        += -O2
>  endif
> diff --git a/init/Kconfig b/init/Kconfig
> index 009a797..17d4c62 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -1233,13 +1233,26 @@ source "usr/Kconfig"
>  
>  endif
>  
> +choice
> +    prompt "Optimize"
> +
> +config CC_OPTIMIZE_NORMAL
> +    bool "Optimize Normal (-O2)"
> +    help
> +      Enabling this option will pass "-O2" to gcc
>  config CC_OPTIMIZE_FOR_SIZE
> -     bool "Optimize for size"
> +     bool "Optimize for size (-Os)"
>       help
> -       Enabling this option will pass "-Os" instead of "-O2" to gcc
> +       Enabling this option will pass "-Os" to gcc
>         resulting in a smaller kernel.
>  
> -       If unsure, say N.
> +config CC_OPTIMIZE_FOR_SPEED
> +    bool "Optimze for speed (-O3)"
> +    help
> +      Enabling this option will pass "-O3" to gcc
> +      resulting in a larger kernel (but possibly faster)
> +
> +endchoice
>  
>  config SYSCTL
>       bool
> 
I would suggest putting a warning in the Kconfig text that this might
make things break in new and unusual ways (and possibly making it depend
on EXPERT).  All of the cases of -O3 breaking userspace software that I
have seen involve really edgy and complex (and often potentially
ambiguous) code, and while the core kernel doesn't have much of this,
there are a number drivers that do (The Synopsis DWC USB OTG driver
immediately comes to mind, as well as a number of drivers from staging).
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to