[PATCH 21/23] rust: make exports.o depend on the headers generated for it
From: Lorenzo Stoakes (ARM)
Date: Tue Sep 08 2026 - 17:20:09 EST
rust/exports.c includes the exports_*_generated.h listing the symbols of
the core, bindings, kernel and helpers objects, but this is not expressed
in its Makefile.
This worked previously because the headers are always-y targets, and make
prepare built all of the rust crates first, which is an implicit
dependency.
Fix this as it is a dependency of the subsequent commit.
Assisted-by: LLM
Signed-off-by: Lorenzo Stoakes (ARM) <ljs@xxxxxxxxxx>
---
rust/Makefile | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/rust/Makefile b/rust/Makefile
index da1a7409d984..74d21ae6f383 100644
--- a/rust/Makefile
+++ b/rust/Makefile
@@ -728,6 +728,11 @@ endef
$(obj)/helpers/helpers.o: $(src)/helpers/helpers.c $(recordmcount_source) FORCE
+$(call if_changed_rule,rust_cc_library)
+# The exported symbol lists are generated from the crates' objects.
+$(obj)/exports.o: $(obj)/exports_core_generated.h \
+ $(obj)/exports_bindings_generated.h $(obj)/exports_kernel_generated.h \
+ $(if $(CONFIG_RUST_INLINE_HELPERS),,$(obj)/exports_helpers_generated.h)
+
# Disable symbol versioning for exports.o to avoid conflicts with the actual
# symbol versions generated from Rust objects.
$(obj)/exports.o: private skip_gendwarfksyms = 1
--
2.55.0