Re: [linux-next:master 4752/13171] error[E0609]: no field `__bindgen_anon_1` on type `bindings::kernel_param`

Oliver Sang
2025-12-04T05:58:07Z

hi, Daniel Gomez,

On Tue, Dec 02, 2025 at 10:02:02PM +0100, Daniel Gomez wrote:
>
>
> On 01/12/2025 21.20, kernel test robot wrote:
> > Hi Andreas,
> >
> > FYI, the error/warning still remains.
> >
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> > head: 95cb2fd6ce0ad61af54191fe5ef271d7177f9c3a
> > commit: 0b08fc292842a13aa496413b48c1efb83573b8c6 [4752/13171] rust: introduce module_param module
> > config: arm64-randconfig-001-20251202 (https://download.01.org/0day-ci/archive/20251202/202512020454.Tf36WHw5-lkp@intel.com/config)
> > compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project b3428bb966f1de8aa48375ffee0eba04ede133b7)
> > rustc: rustc 1.88.0 (6b00bc388 2025-06-23)
> > reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251202/202512020454.Tf36WHw5-lkp@intel.com/reproduce)
> >
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <lkp@intel.com>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/202512020454.Tf36WHw5-lkp@intel.com/
> >
> > All errors (new ones prefixed by >>):
> >
> >>> error[E0609]: no field `__bindgen_anon_1` on type `bindings::kernel_param`
> > --> rust/kernel/module_param.rs:78:46
> > |
> > 78 | let container = unsafe { &*((*param).__bindgen_anon_1.arg.cast::<SetOnce<T>>()) };
> > | ^^^^^^^^^^^^^^^^ unknown field
> > |
> > = note: available field is: `_address`
> >
>
> I can't replicate this issue either.
>
> I've added these patches to fix other unrelated build issues, so, I'm not sure
> how 0day ended up skipping them? Perhaps it uses head 95cb2fd6c? + bisect?
>
> a74b6c0e53a6d um: Don't rename vmap to kernel_vmap
> f74cf399e02e2 rust: debugfs: Replace the usage of Rust native atomics
> 013f912eb5fa7 rust: sync: atomic: Implement Debug for Atomic<Debug>
> 14e9a18b07ec4 rust: sync: atomic: Make Atomic*Ops pub(crate)
>
> My testing branch:
> https://git.kernel.org/pub/scm/linux/kernel/git/da.gomez/linux.git/log/?h=20251202-0day-test-0b08fc292842-with-fixes
>
> FWIW, this is what I've tried:
>
> rustc --version --verbose
> rustc 1.88.0 (6b00bc388 2025-06-23)
> binary: rustc
> commit-hash: 6b00bc3880198600130e1cf62b8f8a93494488cc
> commit-date: 2025-06-23
> host: x86_64-unknown-linux-gnu
> release: 1.88.0
> LLVM version: 20.1.5
>
> bindgen --version --verbose
> bindgen 0.72.1

sorry for false positive. we confirmed this is an issue caused by a bug in
bindgen - https://github.com/rust-lang/rust-bindgen/issues/3264

we used 0.72.0 when saw the issues. now we upgraded to 0.72.1 as you used, now
issue disappears.

> Clang: Debian clang version 21.1.5 (1)
>
> rm -rfv build_dir/
> mkdir -p build_dir/
> wget https://download.01.org/0day-ci/archive/20251202/202512020454.Tf36WHw5-lkp@intel.com/config -O build_dir/.config
>
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang-22 ~/lkp-tests/kbuild/make.cross W=1 O=build_dir ARCH=arm64 rustavailable
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang-22 ~/lkp-tests/kbuild/make.cross W=1 O=build_dir ARCH=arm64 olddefconfig
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang-22 ~/lkp-tests/kbuild/make.cross W=1 O=build_dir ARCH=arm64 prepare
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang-22 ~/lkp-tests/kbuild/make.cross W=1 O=build_dir ARCH=arm64 -j$(nproc)
>
> grep -i "bindgen\|rustc\|llv\|clang" build_dir/.config
> CONFIG_CC_VERSION_TEXT="ClangBuiltLinux clang version 22.0.0git (https://github.com/llvm/llvm-project.git e19fa930ca838715028c00c234874d1db4f93154)"
> CONFIG_CC_IS_CLANG=y
> CONFIG_CLANG_VERSION=220000
> CONFIG_AS_IS_LLVM=y
> CONFIG_RUSTC_VERSION=108800
> CONFIG_RUSTC_LLVM_VERSION=200105
> CONFIG_RUSTC_HAS_COERCE_POINTEE=y
> CONFIG_RUSTC_HAS_SPAN_FILE=y
> CONFIG_RUSTC_HAS_UNNECESSARY_TRANSMUTES=y
> CONFIG_RUSTC_VERSION_TEXT="rustc 1.88.0 (6b00bc388 2025-06-23)"
> CONFIG_BINDGEN_VERSION_TEXT="bindgen 0.72.1"
> CONFIG_RUSTC_SUPPORTS_ARM64=y
> CONFIG_CLANG_SUPPORTS_DYNAMIC_FTRACE_WITH_ARGS=y
> CONFIG_ARCH_SUPPORTS_LTO_CLANG=y
> CONFIG_ARCH_SUPPORTS_LTO_CLANG_THIN=y
> CONFIG_HAS_LTO_CLANG=y
> # CONFIG_LTO_CLANG_THIN is not set
> CONFIG_HAVE_CFI_ICALL_NORMALIZE_INTEGERS_RUSTC=y
>
> Build succeeds without issues (warnings, yes).
>