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@isrc.iscas.ac.cn>
---
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
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
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@isrc.iscas.ac.cn> Acked-by: Nathan Chancellor <nathan@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 >
© 2016 - 2026 Red Hat, Inc.