mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 09:16:33 +00:00
732cd686cd
We use const helpers in form of const size_t RUST_CONST_HELPER_ARCH_SLAB_MINALIGN = ARCH_SLAB_MINALIGN; to aid generation of constants by bindgen because it is otherwise a macro definition of an expression and bindgen doesn't expand the constant. The helpers are then have `RUST_CONST_HELPER` prefix stripped and exposed to Rust code as if `ARCH_SLAB_MISALIGN` is generated natively by bindgen. This works well for most constants, but on RISC-V, `ARCH_SLAB_MINALIGN` is defined directly as literal constant if `!CONFIG_MMU`, and bindgen would generate `ARCH_SLAB_MINALIGN` directly, thus conflict with the one generated through the helper. To fix this, we simply need to block bindgen from generating directly without going through helper. Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202409160804.eSg9zh1e-lkp@intel.com/ Signed-off-by: Gary Guo <gary@garyguo.net> Reviewed-by: Christian Schrefl <chrisi.schrefl@gmail.com> Link: https://lore.kernel.org/r/20240916003347.1744345-1-gary@garyguo.net Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
32 lines
1.1 KiB
Plaintext
32 lines
1.1 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
--opaque-type xregs_state
|
|
--opaque-type desc_struct
|
|
--opaque-type arch_lbr_state
|
|
--opaque-type local_apic
|
|
|
|
# Packed type cannot transitively contain a `#[repr(align)]` type.
|
|
--opaque-type alt_instr
|
|
--opaque-type x86_msi_data
|
|
--opaque-type x86_msi_addr_lo
|
|
|
|
# `try` is a reserved keyword since Rust 2018; solved in `bindgen` v0.59.2,
|
|
# commit 2aed6b021680 ("context: Escape the try keyword properly").
|
|
--opaque-type kunit_try_catch
|
|
|
|
# If SMP is disabled, `arch_spinlock_t` is defined as a ZST which triggers a Rust
|
|
# warning. We don't need to peek into it anyway.
|
|
--opaque-type spinlock
|
|
|
|
# `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
|
|
|
|
# These constants are sometimes not recognized by bindgen depending on config.
|
|
# We use const helpers to aid bindgen, to avoid conflicts when constants are
|
|
# recognized, block generation of the non-helper constants.
|
|
--blocklist-item ARCH_SLAB_MINALIGN
|