]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
powerpc: Use the new post-link pass to check relocations
authorNicholas Piggin <npiggin@gmail.com>
Sat, 26 Nov 2016 03:26:09 +0000 (14:26 +1100)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 28 Apr 2017 11:26:52 +0000 (21:26 +1000)
Currently powerpc has to introduce a dependency on its default build
target zImage in order to run a relocation check pass over the linked
vmlinux. This is deficient because the check is not run if the plain
vmlinux target is built, or if one of the other boot targets is built.

Switch to using the kbuild post-link pass, added in commit fbe6e37dab97
("kbuild: add arch specific post-link Makefile") in order to run this
check. In future powerpc will use this to do more complicated operations,
but initially using it for something simple is a good first step.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/Makefile
arch/powerpc/Makefile.postlink [new file with mode: 0644]

index 19b0d1a819593081bc22164b9da26188c613bca8..c09600bb2fe24766f6b9251d7f6ff74330e6635d 100644 (file)
@@ -274,17 +274,6 @@ PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2)
 
 boot := arch/$(ARCH)/boot
 
-ifeq ($(CONFIG_RELOCATABLE),y)
-quiet_cmd_relocs_check = CALL    $<
-      cmd_relocs_check = $(CONFIG_SHELL) $< "$(OBJDUMP)" "$(obj)/vmlinux"
-
-PHONY += relocs_check
-relocs_check: arch/powerpc/relocs_check.sh vmlinux
-       $(call cmd,relocs_check)
-
-zImage: relocs_check
-endif
-
 $(BOOT_TARGETS1): vmlinux
        $(Q)$(MAKE) $(build)=$(boot) $(patsubst %,$(boot)/%,$@)
 $(BOOT_TARGETS2): vmlinux
diff --git a/arch/powerpc/Makefile.postlink b/arch/powerpc/Makefile.postlink
new file mode 100644 (file)
index 0000000..8c0170e
--- /dev/null
@@ -0,0 +1,34 @@
+# ===========================================================================
+# Post-link powerpc pass
+# ===========================================================================
+#
+# 1. Check that vmlinux relocations look sane
+
+PHONY := __archpost
+__archpost:
+
+include include/config/auto.conf
+include scripts/Kbuild.include
+
+quiet_cmd_relocs_check = CHKREL  $@
+      cmd_relocs_check = $(CONFIG_SHELL) $(srctree)/arch/powerpc/relocs_check.sh "$(OBJDUMP)" "$@"
+
+# `@true` prevents complaint when there is nothing to be done
+
+vmlinux: FORCE
+       @true
+ifdef CONFIG_RELOCATABLE
+       $(call if_changed,relocs_check)
+endif
+
+%.ko: FORCE
+       @true
+
+clean:
+       @true
+
+PHONY += FORCE clean
+
+FORCE:
+
+.PHONY: $(PHONY)