On 08/11/17 20:50, Levin, Alexander (Sasha Levin) wrote:
From: Matt Redfearn matt.redfearn@imgtec.com
[ Upstream commit 44079d3509aee89c58f3e4fd929fa53ab2299019 ]
When relocatable support for MIPS was merged, there was no support for an architecture to add a postlink step for vmlinux. This meant that only invoking a target within the boot directory, such as uImage, caused the relocations to be inserted into vmlinux. Building just the vmlinux target would result in a relocatable kernel with no relocation information present.
Commit fbe6e37dab97 ("kbuild: add arch specific post-link Makefile")
Hi,
This patch depends on upstream commit fbe6e37dab97 ("kbuild: add arch specific post-link Makefile") which was introduced in v4.9.
This patch is an improvement to the build flow and I would not consider it for backporting - certainly not to v4.8 or earlier which is missing the dependency. Applying it will not break anything, however, it will perform no function either without the supporting dependency.
Thanks, Matt
recified this situation, so MIPS can now define a postlink step to add relocation information into vmlinux, and remove the additional steps tacked onto boot targets.
Signed-off-by: Matt Redfearn matt.redfearn@imgtec.com Tested-by: Steven J. Hill steven.hill@cavium.com Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Patchwork: https://patchwork.linux-mips.org/patch/14554/ Signed-off-by: Ralf Baechle ralf@linux-mips.org Signed-off-by: Sasha Levin alexander.levin@verizon.com
arch/mips/Makefile.postlink | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 arch/mips/Makefile.postlink
diff --git a/arch/mips/Makefile.postlink b/arch/mips/Makefile.postlink new file mode 100644 index 000000000000..b0ddf0701a31 --- /dev/null +++ b/arch/mips/Makefile.postlink @@ -0,0 +1,35 @@ +# =========================================================================== +# Post-link MIPS pass +# =========================================================================== +# +# 1. Insert relocations into vmlinux
+PHONY := __archpost +__archpost:
+include include/config/auto.conf +include scripts/Kbuild.include
+CMD_RELOCS = arch/mips/boot/tools/relocs +quiet_cmd_relocs = RELOCS $@
cmd_relocs = $(CMD_RELOCS) $@
+# `@true` prevents complaint when there is nothing to be done
+vmlinux: FORCE
- @true
+ifeq ($(CONFIG_RELOCATABLE),y)
- $(call if_changed,relocs)
+endif
+%.ko: FORCE
- @true
+clean:
- @true
+PHONY += FORCE clean
+FORCE:
+.PHONY: $(PHONY)