rust: fix bindgen build error with UBSAN_BOUNDS_STRICT

Message ID 20230711071914.133946-1-andrea.righi@canonical.com
State New
Headers
Series rust: fix bindgen build error with UBSAN_BOUNDS_STRICT |

Commit Message

Andrea Righi July 11, 2023, 7:19 a.m. UTC
  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 <andrea.righi@canonical.com>
---
 rust/Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Martin Rodriguez Reboredo July 11, 2023, 3:31 p.m. UTC | #1
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 <andrea.righi@canonical.com>
> ---
> [...]

Reviewed-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
  
Kees Cook July 11, 2023, 4:11 p.m. UTC | #2
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 <andrea.righi@canonical.com>

Thanks for catching this!

Acked-by: Kees Cook <keescook@chromium.org>
  
Miguel Ojeda Aug. 2, 2023, 5:37 p.m. UTC | #3
On Tue, Jul 11, 2023 at 9:19 AM Andrea Righi <andrea.righi@canonical.com> 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 <andrea.righi@canonical.com>

Applied to `rust-fixes`, thanks!

Cheers,
Miguel
  

Patch

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`.