Re: [PATCH] kbuild: dummy-tools: pretend we understand -fpatchable-function-entry

From: Nathan Chancellor
Date: Tue Oct 31 2023 - 12:09:30 EST


On Mon, Oct 30, 2023 at 12:34:16PM +0100, Jiri Slaby (SUSE) wrote:
> Commit 0f71dcfb4aef (powerpc/ftrace: Add support for
> -fpatchable-function-entry) added a script to check for
> -fpatchable-function-entry compiler support. The script expects compiler
> to emit the section __patchable_function_entries and few nops after a
> function entry.
>
> If the compiler understands and emits the above,
> CONFIG_ARCH_USING_PATCHABLE_FUNCTION_ENTRY is set.
>
> So teach dummy-tools' gcc about this.
>
> Signed-off-by: Jiri Slaby (SUSE) <jirislaby@xxxxxxxxxx>
> Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> Cc: Nathan Chancellor <nathan@xxxxxxxxxx>
> Cc: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> Cc: Nicolas Schier <nicolas@xxxxxxxxx>
> Cc: linux-kbuild@xxxxxxxxxxxxxxx
> Cc: Naveen N Rao <naveen@xxxxxxxxxx>
> Cc: Christophe Leroy <christophe.leroy@xxxxxxxxxx>
> Cc: Michael Ellerman <mpe@xxxxxxxxxxxxxx>
> ---

This seems reasonable to me. I did not test it but it seems like it
should work based on my reading of gcc-check-fpatchable-function-entry.sh.

Reviewed-by: Nathan Chancellor <nathan@xxxxxxxxxx>

One minor nit, there should be quotes around the subject of 0f71dcfb4aef
in the commit message, should there need to be a v2 for some reason.

> scripts/dummy-tools/gcc | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/scripts/dummy-tools/gcc b/scripts/dummy-tools/gcc
> index 07f6dc4c5cf6..e6c41427c02f 100755
> --- a/scripts/dummy-tools/gcc
> +++ b/scripts/dummy-tools/gcc
> @@ -91,6 +91,16 @@ if arg_contain -S "$@"; then
> fi
> exit 0
> fi
> +
> + # For arch/powerpc/tools/gcc-check-fpatchable-function-entry.sh
> + if arg_contain -m64 "$@" && arg_contain -fpatchable-function-entry=2 "$@"; then
> + echo "func:"
> + echo ".section __patchable_function_entries"
> + echo ".localentry"
> + echo " nop"
> + echo " nop"
> + exit 0
> + fi
> fi
>
> # To set GCC_PLUGINS
> --
> 2.42.0
>