[PATCH] ARM: zImage: Skip relinking if nothing changes
From: Arnaud Lacombe <hidden>
Date: 2011-08-12 20:48:16
Also in:
linux-kbuild, lkml
Hi, On Fri, Aug 12, 2011 at 3:00 PM, Stephen Boyd [off-list ref] wrote:
quoted hunk ↗ jump to hunk
lib1funcs.S is reshipped even though the file hasn't changed because the make rule is marked with FORCE. According to Sam Ravnborg: ? ? ? ?The FORCE prerequisite will tell make to always execute ? ? ? ?the command. ? ? ? ?But we only want to execute the command if: ? ? ? ?1) $(obj)/lib1funcs.S is missing ? ? ? ?2) or $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S is not ? ? ? ?older then $(obj)/lib1funcs.S ? ? ? ?So dropping FORCE should be a safe thing to do. This fixes the shipped problem, but we still have to reassemble lib1funcs.S because it isn't part of $targets. Add lib1funcs.{S,o} to $targets to avoid relinking the compressed vmlinux if nothing changes. Signed-off-by: Stephen Boyd <redacted> Acked-by: Sam Ravnborg <redacted> --- ?arch/arm/boot/compressed/Makefile | ? ?8 +++----- ?1 files changed, 3 insertions(+), 5 deletions(-)diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile index 0c74a6f..937fd26 100644 --- a/arch/arm/boot/compressed/Makefile +++ b/arch/arm/boot/compressed/Makefile@@ -91,7 +91,7 @@ suffix_$(CONFIG_KERNEL_LZMA) = lzma?targets ? ? ? := vmlinux vmlinux.lds \ ? ? ? ? ? ? ? ? piggy.$(suffix_y) piggy.$(suffix_y).o \ - ? ? ? ? ? ? ? ?font.o font.c head.o misc.o $(OBJS) + ? ? ? ? ? ? ? ?font.o font.c head.o misc.o lib1funcs.o lib1funcs.S $(OBJS) ?# Make sure files are removed during clean ?extra-y ? ? ? += piggy.gzip piggy.lzo piggy.lzma lib1funcs.S@@ -121,9 +121,7 @@ LDFLAGS_vmlinux += -X?LDFLAGS_vmlinux += -T ?# For __aeabi_uidivmod -lib1funcs = $(obj)/lib1funcs.o - -$(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S FORCE +$(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S ? ? ? ?$(call cmd,shipped)
You should be able to avoid the extra copy altogether by doing something ala:
$(obj)/lib1funcs.o: $(srctree)/arch/arm/lib/lib1funcs.S
$(call cmd,as_o_S)
note that I also remove the $(SRCARCH), as there is no other
`arch/*/lib/lib1funcs.S' than `arch/arm/lib/lib1funcs.S'
- Arnaud
quoted hunk ↗ jump to hunk
?# We need to prevent any GOTOFF relocs being used with references@@ -140,7 +138,7 @@ bad_syms=$$($(CROSS_COMPILE)nm $@ | sed -n 's/^.\{8\} [bc] \(.*\)/\1/p') && \? ? echo "$$bad_syms" >&2; rm -f $@; false ) ?$(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.$(suffix_y).o \ - ? ? ? ? ? ? ? $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) FORCE + ? ? ? ? ? ? ? $(addprefix $(obj)/, $(OBJS)) $(obj)/lib1funcs.o FORCE ? ? ? ?$(call if_changed,ld) ? ? ? ?@$(check_for_bad_syms) -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo at vger.kernel.org More majordomo info at ?http://vger.kernel.org/majordomo-info.html