Since commit 56d589361572 ("kbuild: do not create orphan built-in.a or obj-y objects"), scripts/link-vmlinux.sh does nothing when descending into init/. Once the version number becomes out of sync between .version and include/generated/compile.h, it is not self-healing. [How to reproduce] $ echo 100 > .version $ make You will see the number in the .version is always bigger than that in compile.h by one. After this, every time you run 'make', the vmlinux is re-linked even when none of source files is updated.
Showing the changes to scripts (1 of 1 file). Show all
Unified · Split
| @@ -239,7 +239,7 @@ else · 238 unmodified lines | |||
| 239 | fi; | 239 | fi; |
| 240 | 240 | ||
| 241 | # final build of init/ | 241 | # final build of init/ |
| 242 | ${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init | 242 | ${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init need-builtin=1 |
| 243 | 243 | ||
| 244 | #link vmlinux.o | 244 | #link vmlinux.o |
| 245 | info LD vmlinux.o | 245 | info LD vmlinux.o |