When built-in.o was incrementally linked with 'ld -r', the section mismatch analysis for the individual built-in.o was possible when CONFIG_DEBUG_SECTION_MISMATCH was enabled. With the migration to the thin archive, built-in.a (former, built-in.o) is no longer an ELF file. So, the modpost does nothing useful. scripts/mod/modpost.c just checks the header to bail out, as follows: /* Is this a valid ELF file? */ if ((hdr->e_ident[EI_MAG0] != ELFMAG0) || (hdr->e_ident[EI_MAG1] != ELFMAG1) || (hdr->e_ident[EI_MAG2] != ELFMAG2) || (hdr->e_ident[EI_MAG3] != ELFMAG3)) { /* Not an ELF file - silently ignore it */ return 0; } We have the full analysis in the final link stage anyway, so we would not miss the section mismatching. I do not see a good reason to require extra linking only for the purpose of the per-directory analysis. Just get rid of this part. Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> --- scripts/Makefile.build | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/scripts/Makefile.build b/scripts/Makefile.build index 316cb95..66461e9 100644 --- a/scripts/Makefile.build +++ b/scripts/Makefile.build @@ -456,8 +456,7 @@ quiet_cmd_link_o_target = AR $@ # If the list of objects to link is empty, just create an empty built-in.a cmd_link_o_target = $(if $(strip $(real-obj-y)),\ - $(cmd_make_builtin) $@ $(filter $(real-obj-y), $^) \ - $(cmd_secanalysis),\ + $(cmd_make_builtin) $@ $(filter $(real-obj-y), $^), \ $(cmd_make_empty_builtin) $@) $(builtin-target): $(real-obj-y) FORCE -- 2.7.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html