diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 63 |
1 files changed, 22 insertions, 41 deletions
@@ -213,6 +213,10 @@ endif | |||
213 | # Where to locate arch specific headers | 213 | # Where to locate arch specific headers |
214 | hdr-arch := $(SRCARCH) | 214 | hdr-arch := $(SRCARCH) |
215 | 215 | ||
216 | ifeq ($(ARCH),m68knommu) | ||
217 | hdr-arch := m68k | ||
218 | endif | ||
219 | |||
216 | KCONFIG_CONFIG ?= .config | 220 | KCONFIG_CONFIG ?= .config |
217 | 221 | ||
218 | # SHELL used by kbuild | 222 | # SHELL used by kbuild |
@@ -606,25 +610,20 @@ export INSTALL_PATH ?= /boot | |||
606 | MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE) | 610 | MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE) |
607 | export MODLIB | 611 | export MODLIB |
608 | 612 | ||
609 | strip-symbols := $(srctree)/scripts/strip-symbols \ | ||
610 | $(wildcard $(srctree)/arch/$(ARCH)/scripts/strip-symbols) | ||
611 | |||
612 | # | 613 | # |
613 | # INSTALL_MOD_STRIP, if defined, will cause modules to be stripped while | 614 | # INSTALL_MOD_STRIP, if defined, will cause modules to be |
614 | # they get installed. If INSTALL_MOD_STRIP is '1', then the default | 615 | # stripped after they are installed. If INSTALL_MOD_STRIP is '1', then |
615 | # options (see below) will be used. Otherwise, INSTALL_MOD_STRIP will | 616 | # the default option --strip-debug will be used. Otherwise, |
616 | # be used as the option(s) to the objcopy command. | 617 | # INSTALL_MOD_STRIP will used as the options to the strip command. |
618 | |||
617 | ifdef INSTALL_MOD_STRIP | 619 | ifdef INSTALL_MOD_STRIP |
618 | ifeq ($(INSTALL_MOD_STRIP),1) | 620 | ifeq ($(INSTALL_MOD_STRIP),1) |
619 | mod_strip_cmd = $(OBJCOPY) --strip-debug | 621 | mod_strip_cmd = $(STRIP) --strip-debug |
620 | ifeq ($(CONFIG_KALLSYMS_ALL),$(CONFIG_KALLSYMS_STRIP_GENERATED)) | ||
621 | mod_strip_cmd += --wildcard $(addprefix --strip-symbols ,$(strip-symbols)) | ||
622 | endif | ||
623 | else | 622 | else |
624 | mod_strip_cmd = $(OBJCOPY) $(INSTALL_MOD_STRIP) | 623 | mod_strip_cmd = $(STRIP) $(INSTALL_MOD_STRIP) |
625 | endif # INSTALL_MOD_STRIP=1 | 624 | endif # INSTALL_MOD_STRIP=1 |
626 | else | 625 | else |
627 | mod_strip_cmd = false | 626 | mod_strip_cmd = true |
628 | endif # INSTALL_MOD_STRIP | 627 | endif # INSTALL_MOD_STRIP |
629 | export mod_strip_cmd | 628 | export mod_strip_cmd |
630 | 629 | ||
@@ -754,7 +753,6 @@ last_kallsyms := 2 | |||
754 | endif | 753 | endif |
755 | 754 | ||
756 | kallsyms.o := .tmp_kallsyms$(last_kallsyms).o | 755 | kallsyms.o := .tmp_kallsyms$(last_kallsyms).o |
757 | kallsyms.h := $(wildcard include/config/kallsyms/*.h) $(wildcard include/config/kallsyms/*/*.h) | ||
758 | 756 | ||
759 | define verify_kallsyms | 757 | define verify_kallsyms |
760 | $(Q)$(if $($(quiet)cmd_sysmap), \ | 758 | $(Q)$(if $($(quiet)cmd_sysmap), \ |
@@ -779,41 +777,24 @@ endef | |||
779 | 777 | ||
780 | # Generate .S file with all kernel symbols | 778 | # Generate .S file with all kernel symbols |
781 | quiet_cmd_kallsyms = KSYM $@ | 779 | quiet_cmd_kallsyms = KSYM $@ |
782 | cmd_kallsyms = { test $* -eq 0 || $(NM) -n $<; } \ | 780 | cmd_kallsyms = $(NM) -n $< | $(KALLSYMS) \ |
783 | | $(KALLSYMS) $(if $(CONFIG_KALLSYMS_ALL),--all-symbols) >$@ | 781 | $(if $(CONFIG_KALLSYMS_ALL),--all-symbols) > $@ |
784 | 782 | ||
785 | quiet_cmd_kstrip = STRIP $@ | 783 | .tmp_kallsyms1.o .tmp_kallsyms2.o .tmp_kallsyms3.o: %.o: %.S scripts FORCE |
786 | cmd_kstrip = $(OBJCOPY) --wildcard $(addprefix --strip$(if $(CONFIG_RELOCATABLE),-unneeded)-symbols ,$(filter %/scripts/strip-symbols,$^)) $< $@ | ||
787 | |||
788 | $(foreach n,0 1 2 3,.tmp_kallsyms$(n).o): KBUILD_AFLAGS += -Wa,--strip-local-absolute | ||
789 | $(foreach n,0 1 2 3,.tmp_kallsyms$(n).o): %.o: %.S scripts FORCE | ||
790 | $(call if_changed_dep,as_o_S) | 784 | $(call if_changed_dep,as_o_S) |
791 | 785 | ||
792 | ifeq ($(CONFIG_KALLSYMS_STRIP_GENERATED),y) | 786 | .tmp_kallsyms%.S: .tmp_vmlinux% $(KALLSYMS) |
793 | strip-ext := .stripped | ||
794 | endif | ||
795 | |||
796 | .tmp_kallsyms%.S: .tmp_vmlinux%$(strip-ext) $(KALLSYMS) $(kallsyms.h) | ||
797 | $(call cmd,kallsyms) | 787 | $(call cmd,kallsyms) |
798 | 788 | ||
799 | # make -jN seems to have problems with intermediate files, see bug #3330. | ||
800 | .SECONDARY: $(foreach n,1 2 3,.tmp_vmlinux$(n).stripped) | ||
801 | .tmp_vmlinux%.stripped: .tmp_vmlinux% $(strip-symbols) $(kallsyms.h) | ||
802 | $(call cmd,kstrip) | ||
803 | |||
804 | ifneq ($(CONFIG_DEBUG_INFO),y) | ||
805 | .tmp_vmlinux%: LDFLAGS_vmlinux += -S | ||
806 | endif | ||
807 | # .tmp_vmlinux1 must be complete except kallsyms, so update vmlinux version | 789 | # .tmp_vmlinux1 must be complete except kallsyms, so update vmlinux version |
808 | .tmp_vmlinux%: $(vmlinux-lds) $(vmlinux-all) FORCE | 790 | .tmp_vmlinux1: $(vmlinux-lds) $(vmlinux-all) FORCE |
809 | $(if $(filter 1,$*),$(call if_changed_rule,ksym_ld),$(call if_changed,vmlinux__)) | 791 | $(call if_changed_rule,ksym_ld) |
810 | 792 | ||
811 | .tmp_vmlinux0$(strip-ext): | 793 | .tmp_vmlinux2: $(vmlinux-lds) $(vmlinux-all) .tmp_kallsyms1.o FORCE |
812 | $(Q)echo "placeholder" >$@ | 794 | $(call if_changed,vmlinux__) |
813 | 795 | ||
814 | .tmp_vmlinux1: .tmp_kallsyms0.o | 796 | .tmp_vmlinux3: $(vmlinux-lds) $(vmlinux-all) .tmp_kallsyms2.o FORCE |
815 | .tmp_vmlinux2: .tmp_kallsyms1.o | 797 | $(call if_changed,vmlinux__) |
816 | .tmp_vmlinux3: .tmp_kallsyms2.o | ||
817 | 798 | ||
818 | # Needs to visit scripts/ before $(KALLSYMS) can be used. | 799 | # Needs to visit scripts/ before $(KALLSYMS) can be used. |
819 | $(KALLSYMS): scripts ; | 800 | $(KALLSYMS): scripts ; |