2023-10-31 20:20:55

by Matthew Maurer

[permalink] [raw]
Subject: [PATCH] rust: Ignore preserve-most functions

Neither bindgen nor Rust know about the preserve-most calling
convention, and Clang describes it as unstable. Since we aren't using
functions with this calling convention from Rust, blocklist them.

These functions are only added to the build when list hardening is
enabled, which is likely why others didn't notice this yet.

Signed-off-by: Matthew Maurer <[email protected]>
---
rust/bindgen_parameters | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/rust/bindgen_parameters b/rust/bindgen_parameters
index 552d9a85925b..8d9f82d350b8 100644
--- a/rust/bindgen_parameters
+++ b/rust/bindgen_parameters
@@ -20,3 +20,7 @@

# `seccomp`'s comment gets understood as a doctest
--no-doc-comments
+
+# These functions use the __preserve_most calling convention, which neither bindgen
+# nor Rust currently understand, and which Clang currently declares to be unstable.
+--blocklist-function __list_.*_report
--
2.42.0.820.g83a721a137-goog


2023-11-01 10:21:45

by Alice Ryhl

[permalink] [raw]
Subject: Re: [PATCH] rust: Ignore preserve-most functions

On Tue, Oct 31, 2023 at 9:20 PM Matthew Maurer <[email protected]> wrote:
>
> Neither bindgen nor Rust know about the preserve-most calling
> convention, and Clang describes it as unstable. Since we aren't using
> functions with this calling convention from Rust, blocklist them.
>
> These functions are only added to the build when list hardening is
> enabled, which is likely why others didn't notice this yet.
>
> Signed-off-by: Matthew Maurer <[email protected]>

Reviewed-by: Alice Ryhl <[email protected]>

Subject: Re: [PATCH] rust: Ignore preserve-most functions

On 10/31/23 17:19, Matthew Maurer wrote:
> Neither bindgen nor Rust know about the preserve-most calling
> convention, and Clang describes it as unstable. Since we aren't using
> functions with this calling convention from Rust, blocklist them.
>
> These functions are only added to the build when list hardening is
> enabled, which is likely why others didn't notice this yet.
>
> Signed-off-by: Matthew Maurer <[email protected]>
> ---
> [...]
Reviewed-by: Martin Rodriguez Reboredo <[email protected]>

2023-12-13 18:44:25

by Miguel Ojeda

[permalink] [raw]
Subject: Re: [PATCH] rust: Ignore preserve-most functions

On Tue, Oct 31, 2023 at 9:20 PM Matthew Maurer <[email protected]> wrote:
>
> Neither bindgen nor Rust know about the preserve-most calling
> convention, and Clang describes it as unstable. Since we aren't using
> functions with this calling convention from Rust, blocklist them.
>
> These functions are only added to the build when list hardening is
> enabled, which is likely why others didn't notice this yet.
>
> Signed-off-by: Matthew Maurer <[email protected]>

Applied to `rust-next` (used Markdown for consistency with the other
comments in the file).

Thanks everyone!

Cheers,
Miguel