2023-07-11 07:36:49

by Andrea Righi

[permalink] [raw]
Subject: [PATCH] rust: fix bindgen build error with UBSAN_BOUNDS_STRICT

With commit 2d47c6956ab3 ("ubsan: Tighten UBSAN_BOUNDS on GCC") if
CONFIG_UBSAN is enabled and gcc supports -fsanitize=bounds-strict, we
can trigger the following build error due to bindgen lacking support for
this additional build option:

BINDGEN rust/bindings/bindings_generated.rs
error: unsupported argument 'bounds-strict' to option '-fsanitize='

Fix by adding -fsanitize=bounds-strict to the list of skipped gcc flags
for bindgen.

Fixes: 2d47c6956ab3 ("ubsan: Tighten UBSAN_BOUNDS on GCC")
Signed-off-by: Andrea Righi <[email protected]>
---
rust/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/rust/Makefile b/rust/Makefile
index 7c9d9f11aec5..4124bfa01798 100644
--- a/rust/Makefile
+++ b/rust/Makefile
@@ -257,7 +257,7 @@ bindgen_skip_c_flags := -mno-fp-ret-in-387 -mpreferred-stack-boundary=% \
-fno-partial-inlining -fplugin-arg-arm_ssp_per_task_plugin-% \
-fno-reorder-blocks -fno-allow-store-data-races -fasan-shadow-offset=% \
-fzero-call-used-regs=% -fno-stack-clash-protection \
- -fno-inline-functions-called-once \
+ -fno-inline-functions-called-once -fsanitize=bounds-strict \
--param=% --param asan-%

# Derived from `scripts/Makefile.clang`.
--
2.40.1



Subject: Re: [PATCH] rust: fix bindgen build error with UBSAN_BOUNDS_STRICT

On 7/11/23 04:19, Andrea Righi wrote:
> With commit 2d47c6956ab3 ("ubsan: Tighten UBSAN_BOUNDS on GCC") if
> CONFIG_UBSAN is enabled and gcc supports -fsanitize=bounds-strict, we
> can trigger the following build error due to bindgen lacking support for
> this additional build option:
>
> BINDGEN rust/bindings/bindings_generated.rs
> error: unsupported argument 'bounds-strict' to option '-fsanitize='
>
> Fix by adding -fsanitize=bounds-strict to the list of skipped gcc flags
> for bindgen.
>
> Fixes: 2d47c6956ab3 ("ubsan: Tighten UBSAN_BOUNDS on GCC")
> Signed-off-by: Andrea Righi <[email protected]>
> ---
> [...]

Reviewed-by: Martin Rodriguez Reboredo <[email protected]>

2023-07-11 16:23:53

by Kees Cook

[permalink] [raw]
Subject: Re: [PATCH] rust: fix bindgen build error with UBSAN_BOUNDS_STRICT

On Tue, Jul 11, 2023 at 09:19:14AM +0200, Andrea Righi wrote:
> With commit 2d47c6956ab3 ("ubsan: Tighten UBSAN_BOUNDS on GCC") if
> CONFIG_UBSAN is enabled and gcc supports -fsanitize=bounds-strict, we
> can trigger the following build error due to bindgen lacking support for
> this additional build option:
>
> BINDGEN rust/bindings/bindings_generated.rs
> error: unsupported argument 'bounds-strict' to option '-fsanitize='
>
> Fix by adding -fsanitize=bounds-strict to the list of skipped gcc flags
> for bindgen.
>
> Fixes: 2d47c6956ab3 ("ubsan: Tighten UBSAN_BOUNDS on GCC")
> Signed-off-by: Andrea Righi <[email protected]>

Thanks for catching this!

Acked-by: Kees Cook <[email protected]>

--
Kees Cook

2023-08-02 18:31:30

by Miguel Ojeda

[permalink] [raw]
Subject: Re: [PATCH] rust: fix bindgen build error with UBSAN_BOUNDS_STRICT

On Tue, Jul 11, 2023 at 9:19 AM Andrea Righi <[email protected]> wrote:
>
> With commit 2d47c6956ab3 ("ubsan: Tighten UBSAN_BOUNDS on GCC") if
> CONFIG_UBSAN is enabled and gcc supports -fsanitize=bounds-strict, we
> can trigger the following build error due to bindgen lacking support for
> this additional build option:
>
> BINDGEN rust/bindings/bindings_generated.rs
> error: unsupported argument 'bounds-strict' to option '-fsanitize='
>
> Fix by adding -fsanitize=bounds-strict to the list of skipped gcc flags
> for bindgen.
>
> Fixes: 2d47c6956ab3 ("ubsan: Tighten UBSAN_BOUNDS on GCC")
> Signed-off-by: Andrea Righi <[email protected]>

Applied to `rust-fixes`, thanks!

Cheers,
Miguel