Re: [PATCH] kbuild: disable -ffunction-sections on gcc-4.7 with ftrace

From: Namhyung Kim
Date: Sun Dec 18 2016 - 09:15:04 EST


Hi,

On Fri, Dec 16, 2016 at 6:24 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote:
> When ftrace is enabled and we build with gcc-4.7 or older, we
> get a warning for each file on architectures that select
> CONFIG_LD_DEAD_CODE_DATA_ELIMINATION:
>
> warning: -ffunction-sections disabled; it makes profiling impossible [enabled by default]
>
> This turns off function sections in that specific case, leaving
> it enabled for all other configurations.
>
> Fixes: b67067f1176d ("kbuild: allow archs to select link dead code/data elimination")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> Makefile | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/Makefile b/Makefile
> index 4fb4b889c862..7dfd0aa4f3f7 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -638,7 +638,11 @@ KBUILD_CFLAGS += $(call cc-option,-fno-delete-null-pointer-checks,)
> KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
>
> ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
> +ifdef CONFIG_FUNCTION_TRACER
> +KBUILD_CFLAGS += $(call cc-ifversion, -ge,0409,$(call cc-option,-ffunction-sections,))

s/0409/0408/ ?

Thanks,
Namhyung


> +else
> KBUILD_CFLAGS += $(call cc-option,-ffunction-sections,)
> +endif
> KBUILD_CFLAGS += $(call cc-option,-fdata-sections,)
> endif
>
> --
> 2.9.0
>