diff --git a/Makefile b/Makefile
index f8e4f930e4976709f8fe9eb42504705cfd038434..c3b6dcd5b177d9bec671e556e47d6f111ccf977c 100644
--- a/Makefile
+++ b/Makefile
@@ -1286,12 +1286,14 @@ all: modules
 # using awk while concatenating to the final file.
 
 PHONY += modules
-modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
-	$(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
+modules: $(if $(KBUILD_BUILTIN),vmlinux) modules.order modules.builtin
 	@$(kecho) '  Building modules, stage 2.';
 	$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
 	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/modules-check.sh
 
+modules.order: $(vmlinux-dirs)
+	$(Q)$(AWK) '!x[$$0]++' $(addsuffix /$@, $(vmlinux-dirs)) > $@
+
 modbuiltin-dirs := $(addprefix _modbuiltin_, $(vmlinux-dirs))
 
 modules.builtin: $(modbuiltin-dirs)