Re: [PATCH] kbuild: use -flive-patching when CONFIG_LIVEPATCH is enabled

From: Josh Poimboeuf
Date: Wed Dec 19 2018 - 11:54:37 EST


On Wed, Dec 19, 2018 at 03:17:44PM +0100, Miroslav Benes wrote:
> GCC 9 introduces a new option, -flive-patching. It disables certain
> optimizations which could make a compilation unsafe for later live
> patching of the running kernel.
>
> The option is used only if CONFIG_LIVEPATCH is enabled and $(CC)
> supports it.
>
> Signed-off-by: Miroslav Benes <mbenes@xxxxxxx>
> ---
> Makefile | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/Makefile b/Makefile
> index a0650bf79606..53f5ab810efe 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -778,6 +778,10 @@ KBUILD_CFLAGS_KERNEL += $(call cc-option,-ffunction-sections,)
> KBUILD_CFLAGS_KERNEL += $(call cc-option,-fdata-sections,)
> endif
>
> +ifdef CONFIG_LIVEPATCH
> +KBUILD_CFLAGS += $(call cc-option, -flive-patching=inline-clone)
> +endif
> +
> # arch Makefile may override CC so keep this after arch Makefile is included
> NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)


This option only makes sense for source-based patch generation, so isn't
it a bit premature to make this change without proper source-based patch
tooling?

Also the commit message needs an analysis of the performance impacts.

--
Josh