diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 22 |
1 files changed, 19 insertions, 3 deletions
@@ -612,7 +612,7 @@ quiet_cmd_vmlinux__ ?= LD $@ | |||
612 | cmd_vmlinux__ ?= $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) -o $@ \ | 612 | cmd_vmlinux__ ?= $(LD) $(LDFLAGS) $(LDFLAGS_vmlinux) -o $@ \ |
613 | -T $(vmlinux-lds) $(vmlinux-init) \ | 613 | -T $(vmlinux-lds) $(vmlinux-init) \ |
614 | --start-group $(vmlinux-main) --end-group \ | 614 | --start-group $(vmlinux-main) --end-group \ |
615 | $(filter-out $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) FORCE ,$^) | 615 | $(filter-out $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) vmlinux.o FORCE ,$^) |
616 | 616 | ||
617 | # Generate new vmlinux version | 617 | # Generate new vmlinux version |
618 | quiet_cmd_vmlinux_version = GEN .version | 618 | quiet_cmd_vmlinux_version = GEN .version |
@@ -736,15 +736,31 @@ debug_kallsyms: .tmp_map$(last_kallsyms) | |||
736 | 736 | ||
737 | endif # ifdef CONFIG_KALLSYMS | 737 | endif # ifdef CONFIG_KALLSYMS |
738 | 738 | ||
739 | # Do modpost on a prelinked vmlinux. The finally linked vmlinux has | ||
740 | # relevant sections renamed as per the linker script. | ||
741 | quiet_cmd_vmlinux-modpost = LD $@ | ||
742 | cmd_vmlinux-modpost = $(LD) $(LDFLAGS) -r -o $@ \ | ||
743 | $(vmlinux-init) --start-group $(vmlinux-main) --end-group \ | ||
744 | $(filter-out $(vmlinux-init) $(vmlinux-main) $(vmlinux-lds) FORCE ,$^) | ||
745 | define rule_vmlinux-modpost | ||
746 | : | ||
747 | +$(call cmd,vmlinux-modpost) | ||
748 | $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost $@ | ||
749 | $(Q)echo 'cmd_$@ := $(cmd_vmlinux-modpost)' > $(dot-target).cmd | ||
750 | endef | ||
751 | |||
739 | # vmlinux image - including updated kernel symbols | 752 | # vmlinux image - including updated kernel symbols |
740 | vmlinux: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) $(kallsyms.o) FORCE | 753 | vmlinux: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) $(kallsyms.o) vmlinux.o FORCE |
741 | ifdef CONFIG_HEADERS_CHECK | 754 | ifdef CONFIG_HEADERS_CHECK |
742 | $(Q)$(MAKE) -f $(srctree)/Makefile headers_check | 755 | $(Q)$(MAKE) -f $(srctree)/Makefile headers_check |
743 | endif | 756 | endif |
757 | $(call vmlinux-modpost) | ||
744 | $(call if_changed_rule,vmlinux__) | 758 | $(call if_changed_rule,vmlinux__) |
745 | $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost $@ | ||
746 | $(Q)rm -f .old_version | 759 | $(Q)rm -f .old_version |
747 | 760 | ||
761 | vmlinux.o: $(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) $(kallsyms.o) FORCE | ||
762 | $(call if_changed_rule,vmlinux-modpost) | ||
763 | |||
748 | # The actual objects are generated when descending, | 764 | # The actual objects are generated when descending, |
749 | # make sure no implicit rule kicks in | 765 | # make sure no implicit rule kicks in |
750 | $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ; | 766 | $(sort $(vmlinux-init) $(vmlinux-main)) $(vmlinux-lds): $(vmlinux-dirs) ; |