Messages in this thread Patch in this message | | | Date | Mon, 11 Dec 2023 15:07:49 +0000 | Subject | [PATCH] x86/Kconfig: rust: Patchable function Rust compat | From | Matthew Maurer <> |
| |
Rust doesn't yet support patchable entry, but likely will soon. Disable function padding when Rust is used but doesn't support it, and propagate the flag when it does.
Signed-off-by: Matthew Maurer <mmaurer@google.com> --- arch/x86/Kconfig | 6 +++++- arch/x86/Makefile | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 18b9fb7df95b..e9f1814217b5 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -2452,6 +2452,10 @@ config CC_HAS_RETURN_THUNK config CC_HAS_ENTRY_PADDING def_bool $(cc-option,-fpatchable-function-entry=16,16) +config RUSTC_HAS_ENTRY_PADDING + depends RUST + def_bool $(rs-option,-Zpatchable-function-entry=16,16) + config FUNCTION_PADDING_CFI int default 59 if FUNCTION_ALIGNMENT_64B @@ -2469,7 +2473,7 @@ config FUNCTION_PADDING_BYTES config CALL_PADDING def_bool n - depends on CC_HAS_ENTRY_PADDING && OBJTOOL + depends on CC_HAS_ENTRY_PADDING && (!RUST || RUST_HAS_ENTRY_PADDING) && OBJTOOL select FUNCTION_ALIGNMENT_16B config FINEIBT diff --git a/arch/x86/Makefile b/arch/x86/Makefile index 1a068de12a56..0228af62742e 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -211,7 +211,9 @@ endif ifdef CONFIG_CALL_PADDING PADDING_CFLAGS := -fpatchable-function-entry=$(CONFIG_FUNCTION_PADDING_BYTES),$(CONFIG_FUNCTION_PADDING_BYTES) +PADDING_RUSTFLAGS := -Zpatchable-function-entry=$(CONFIG_FUNCTION_PADDING_BYTES),$(CONFIG_FUNCTION_PADDING_BYTES) KBUILD_CFLAGS += $(PADDING_CFLAGS) +KBUILD_RUSTFLAGS += $(PADDING_RUSTFLAGS) export PADDING_CFLAGS endif -- 2.43.0.472.g3155946c3a-goog
| |