summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorOlaf Hering <olh@suse.de>2005-07-13 01:11:41 -0700
committerLinus Torvalds <torvalds@g5.osdl.org>2005-07-13 11:25:25 -0700
commitf13487c66c75f5db004a0631047309d9e7c5aab7 (patch)
tree19585562d0ffb0923ed6c2d829d44f10eb619482 /arch
parent7ee91ec14bd4def036b4084da29869382078e44b (diff)
[PATCH] ppc32: make -j12 all fails in uImage target
make -j zImage may call if_changed twice at the same time, the result is a corrupted vmlinux.gz Write to a temporary file for the time being until someone with make skills fix the serialization properly. Signed-off-by: Olaf Hering <olh@suse.de> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Sam Ravnborg <sam@ravnborg.org> Acked-by: Tom Rini <trini@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/ppc/boot/images/Makefile7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/ppc/boot/images/Makefile b/arch/ppc/boot/images/Makefile
index c9ac5f5fa9e..532e7ef1edb 100644
--- a/arch/ppc/boot/images/Makefile
+++ b/arch/ppc/boot/images/Makefile
@@ -6,12 +6,17 @@ MKIMAGE := $(srctree)/scripts/mkuboot.sh
extra-y := vmlinux.bin vmlinux.gz
+# two make processes may write to vmlinux.gz at the same time with make -j
+quiet_cmd_mygzip = GZIP $@
+cmd_mygzip = gzip -f -9 < $< > $@.$$$$ && mv $@.$$$$ $@
+
+
OBJCOPYFLAGS_vmlinux.bin := -O binary
$(obj)/vmlinux.bin: vmlinux FORCE
$(call if_changed,objcopy)
$(obj)/vmlinux.gz: $(obj)/vmlinux.bin FORCE
- $(call if_changed,gzip)
+ $(call if_changed,mygzip)
quiet_cmd_uimage = UIMAGE $@
cmd_uimage = $(CONFIG_SHELL) $(MKIMAGE) -A ppc -O linux -T kernel \