Re: Relinking zImage when nothing changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Aug 12, 2011 at 10:46:24AM -0700, Stephen Boyd wrote:
> I was hoping with the recent patch e78e8f2 (kernel: prevent unnecessary
> rebuilding due to config_data.gz, 2011-07-05) compiling ARM linux a
> second time would amount to no more linking. This doesn't seem to be the
> case though. Doing a make V=2 I see that lib1funcs.S is shipped and thus
> we have to recompile it although nothing actually changed. This in turn
> requires us to relink the compressed vmlinux and then recreate the zImage.
> 
>   Kernel: arch/arm/boot/Image is ready
>   SHIPPED arch/arm/boot/compressed/lib1funcs.S - due to missing .cmd file
>   AS      arch/arm/boot/compressed/lib1funcs.o - due to: arch/arm/boot/compressed/lib1funcs.S
>   LD      arch/arm/boot/compressed/vmlinux - due to: arch/arm/boot/compressed/lib1funcs.o
>   OBJCOPY arch/arm/boot/zImage - due to: arch/arm/boot/compressed/vmlinux
>   Kernel: arch/arm/boot/zImage is ready
> 
> 
> Is there any way to avoid this? Perhaps the shipped command could become
> a bit wiser?

Following patch will likely fix it:
diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
index 0c74a6f..80b6b6e 100644
--- a/arch/arm/boot/compressed/Makefile
+++ b/arch/arm/boot/compressed/Makefile
@@ -123,7 +123,7 @@ 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)

 # We need to prevent any GOTOFF relocs being used with references

(cut'n'pasted ...)

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.

	Sam
--
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


[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux