Hi, On Fri, Aug 12, 2011 at 4:48 PM, Arnaud Lacombe <lacombar@xxxxxxxxx> wrote: > Hi, > > On Fri, Aug 12, 2011 at 3:00 PM, Stephen Boyd <sboyd@xxxxxxxxxxxxxx> wrote: >> 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 <sboyd@xxxxxxxxxxxxxx> >> Acked-by: Sam Ravnborg <sam@xxxxxxxxxxxx> >> --- >> 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' > I withdraw this proposal and will hack around this to find a proper solution from within kbuild, and eventually come back on these uses :-) - Arnaud >> # 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@xxxxxxxxxxxxxxx >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html