We had a dummy dependency on include/linux/compile.h, but it really caused
more trouble than benefits. It's not actually needed for the module
postprocessing, it was only put there to make sure we recognize when
gcc changed under us. However, we really can only do so much, and
the rest of kbuild won't notice a changed gcc either, so if the user replaces
gcc during a build, he just can't rely on the build doing the right thing.
The common cases are still covered, anyway. When the command to invoke
gcc changes ("CC=gcc32") we notice, and when the path to
/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stdarg.h
changes (which luckily contains the "2.96", we'll notice and handle that,
too.
# Build modules
-include/linux/compile.h: FORCE
- $(Q)$(MAKE) $(build)=init include/linux/compile.h
-
.PHONY: modules
-modules: $(SUBDIRS) $(if $(KBUILD_BUILTIN),vmlinux) include/linux/compile.h
+modules: $(SUBDIRS) $(if $(KBUILD_BUILTIN),vmlinux)
@echo ' Building modules, stage 2.';
$(Q)$(MAKE) -rR -f scripts/Makefile.modpost
quiet_cmd_cc_o_c = CC $@
cmd_cc_o_c = $(CC) $(CFLAGS) $(CFLAGS_MODULE) -c -o $@ $<
-# We have a fake dependency on compile.h to make sure that we
-# notice if the compiler version changes under us.
-
-$(modules:.ko=.mod.o): %.mod.o: %.mod.c include/linux/compile.h FORCE
+$(modules:.ko=.mod.o): %.mod.o: %.mod.c
$(call if_changed,cc_o_c)
targets += $(modules:.ko=.mod.o)