Subject: Re: [PATCH v4 4/9] ppc64 ftrace_with_regs configuration variables

From: Petr Mladek <[email-masked]>
Date: Thu, 3 Dec 2015 17:20:08 +0100

On Wed 2015-11-25 17:37:33, Torsten Duwe wrote:
>   * Makefile:
>     - globally use -mprofile-kernel in case it's configured.
>   * arch/powerpc/Kconfig / kernel/trace/Kconfig:
>     - declare that ppc64le HAVE_MPROFILE_KERNEL and
>       HAVE_DYNAMIC_FTRACE_WITH_REGS, and use it.
> 
> --- a/arch/powerpc/Makefile
> +++ b/arch/powerpc/Makefile
> @@ -133,6 +133,13 @@ else
>  CFLAGS-$(CONFIG_GENERIC_CPU) += -mcpu=powerpc64
>  endif
>  
> +ifeq ($(CONFIG_PPC64),y)
> +ifdef CONFIG_HAVE_MPROFILE_KERNEL
> +CC_FLAGS_FTRACE	:= -pg $(call cc-option,-mprofile-kernel)

Do we want to define -pg even when -mprofile-kernel is not supported
by the used gcc, please?

> +KBUILD_CPPFLAGS	+= -DCC_USING_MPROFILE_KERNEL

IMHO, we should not define CC_USING_MPROFILE_KERNEL if it is not
supported by the compiler.

I took inspiration from the CC_USING_FENTRY handling in
linux/Makefile. The following code worked for me:

CC_USING_MPROFILE_KERNEL := $(call cc-option, -pg -mprofile-kernel -DCC_USING_MPROFILE_KERNEL)
CC_FLAGS_FTRACE := $(CC_USING_MPROFILE_KERNEL)
KBUILD_CPPFLAGS += $(CC_USING_MPROFILE_KERNEL)

I just do not understand why we need to add the flags also
to KBUILD_CPPFLAGS. It seems that they are duplicated
when compiling kernel/livepatch/core.o. But livepatching
did not work without it. I wonder if you found the culprit.

Best Regards,
Petr

> +endif
> +endif
> +
>  CFLAGS-$(CONFIG_CELL_CPU) += $(call cc-option,-mcpu=cell)
>  CFLAGS-$(CONFIG_POWER4_CPU) += $(call cc-option,-mcpu=power4)
>  CFLAGS-$(CONFIG_POWER5_CPU) += $(call cc-option,-mcpu=power5)