diff --git a/scripts/Makefile.build b/scripts/Makefile.build
index 3fe0c73e002c7257a94fc7c9f2947ee8a566e05e..37a1d2cd49d4e03b53747730a500b5ec7bd1a18f 100644
--- a/scripts/Makefile.build
+++ b/scripts/Makefile.build
@@ -488,7 +488,8 @@ targets += $(call intermediate_targets, .asn1.o, .asn1.c .asn1.h) \
 PHONY += $(subdir-ym)
 $(subdir-ym):
 	$(Q)$(MAKE) $(build)=$@ \
-	need-builtin=$(if $(filter $@/built-in.a, $(subdir-obj-y)),1)
+	need-builtin=$(if $(filter $@/built-in.a, $(subdir-obj-y)),1) \
+	need-modorder=$(if $(need-modorder),$(if $(filter $@/modules.order, $(modorder)),1))
 
 # Add FORCE to the prequisites of a target to force it to be always rebuilt.
 # ---------------------------------------------------------------------------