[PATCH v6 1/4] rust: export BINDGEN_TARGET from a separate Makefile

Nathan Chancellor nathan at kernel.org
Thu Jan 29 14:35:28 PST 2026


On Tue, Dec 30, 2025 at 05:47:54PM +0100, Asuna Yang wrote:
> A subsequent commit will add a new function `bindgen-option` to
> `scripts/Kconfig.include`. The bindgen backend requires the `--target`
> option for cross compiling, but variable `BINDGEN_TARGET` in
> `rust/Makefile` cannot be exported to `scripts/Kconfig.include`.
> 
> Therefore, move this variable to a separate new `Makefile.rust` file and
> include it from `scripts/Makefile` to make the exported variable
> available for use in Kconfig. Place the include in the `need-compiler`
> branch to avoid including it in irrelevant make targets.
> 
> Since the new file name is `Makefile.rust`, it matches an existing
> MAINTAINERS rule `scripts/*rust*`, so no modification to the MAINTAINERS
> file is needed.
> 
> Signed-off-by: Asuna Yang <xinrui.riscv at isrc.iscas.ac.cn>

Acked-by: Nathan Chancellor <nathan at kernel.org>

> ---
>  Makefile              | 3 ++-
>  rust/Makefile         | 8 --------
>  scripts/Makefile.rust | 9 +++++++++
>  3 files changed, 11 insertions(+), 9 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index 27ce077520fe..9754d7add947 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -718,9 +718,10 @@ ifneq ($(findstring clang,$(CC_VERSION_TEXT)),)
>  include $(srctree)/scripts/Makefile.clang
>  endif
>  
> +ifdef need-compiler
> +include $(srctree)/scripts/Makefile.rust
>  # Include this also for config targets because some architectures need
>  # cc-cross-prefix to determine CROSS_COMPILE.
> -ifdef need-compiler
>  include $(srctree)/scripts/Makefile.compiler

Not that it is a big deal but it would make the diff simpler if the Rust
makefile was added after the compiler one, both for alphabetical reasons
and it would not necessitate moving the comment (even if it mostly
applies just to the compiler include).

>  endif
>  
> diff --git a/rust/Makefile b/rust/Makefile
> index 5d357dce1704..2603b34f9833 100644
> --- a/rust/Makefile
> +++ b/rust/Makefile
> @@ -385,14 +385,6 @@ bindgen_skip_c_flags := -mno-fp-ret-in-387 -mpreferred-stack-boundary=% \
>  	-fzero-init-padding-bits=% -mno-fdpic \
>  	--param=% --param asan-% -fno-isolate-erroneous-paths-dereference
>  
> -# Derived from `scripts/Makefile.clang`.
> -BINDGEN_TARGET_x86	:= x86_64-linux-gnu
> -BINDGEN_TARGET_arm64	:= aarch64-linux-gnu
> -BINDGEN_TARGET_arm	:= arm-linux-gnueabi
> -BINDGEN_TARGET_loongarch	:= loongarch64-linux-gnusf
> -BINDGEN_TARGET_um	:= $(BINDGEN_TARGET_$(SUBARCH))
> -BINDGEN_TARGET		:= $(BINDGEN_TARGET_$(SRCARCH))
> -
>  # All warnings are inhibited since GCC builds are very experimental,
>  # many GCC warnings are not supported by Clang, they may only appear in
>  # some configurations, with new GCC versions, etc.
> diff --git a/scripts/Makefile.rust b/scripts/Makefile.rust
> new file mode 100644
> index 000000000000..5c12b4b8c8b6
> --- /dev/null
> +++ b/scripts/Makefile.rust
> @@ -0,0 +1,9 @@
> +# Derived from `scripts/Makefile.clang`.
> +BINDGEN_TARGET_x86	:= x86_64-linux-gnu
> +BINDGEN_TARGET_arm64	:= aarch64-linux-gnu
> +BINDGEN_TARGET_arm	:= arm-linux-gnueabi
> +BINDGEN_TARGET_loongarch	:= loongarch64-linux-gnusf
> +BINDGEN_TARGET_um	:= $(BINDGEN_TARGET_$(SUBARCH))
> +BINDGEN_TARGET		:= $(BINDGEN_TARGET_$(SRCARCH))
> +
> +export BINDGEN_TARGET
> 
> -- 
> 2.51.1
> 



More information about the linux-riscv mailing list