Hi David,
I tried compiling an Ebony kernel wrapped with a DTS and initrd this
morning but it fails with the following error:
WRAP arch/powerpc/boot/treeImage.initrd.ebony
DTC: dts->dtb on file "/home/jwboyer/src/linux-2.6/arch/powerpc/boot/dts/ebony.dts"
powerpc-440-linux-gnu-ld: arch/powerpc/boot/treeboot-initrd.ebony.o: No such file: No such file or directory
powerpc-440-linux-gnu-nm: 'arch/powerpc/boot/treeImage.initrd.ebony': No such file
powerpc-440-linux-gnu-objdump: 'arch/powerpc/boot/treeImage.initrd.ebony': No such file
mv: cannot stat `arch/powerpc/boot/treeImage.initrd.ebony': No such file or directory
stat: No such file or directory
ln: accessing `arch/powerpc/boot/treeImage.initrd.ebony': No such file or directory
make[1]: *** [arch/powerpc/boot/zImage.initrd] Error 1
make: *** [zImage.initrd] Error 2
At first glance, it should be looking for treeboot-ebony.o, not
treeboot-initrd.ebony.o. On a whim, I symlinked treeboot-initrd.ebony.o
to treeboot-ebony.o and the compile worked, however the wrapper wasn't
called with the ramdisk.image.gz file:
/bin/sh /home/jwboyer/src/linux-2.6/arch/powerpc/boot/wrapper -c -o arch/powerpc/boot/treeImage.initrd.ebony -p treeboot-initrd.ebony -C "powerpc-440-linux-gnu-" -s /home/jwboyer/src/linux-2.6/arch/powerpc/boot/dts/ebony.dts vmlinux
DTC: dts->dtb on file "/home/jwboyer/src/linux-2.6/arch/powerpc/boot/dts/ebony.dts"
So something is very broken with this rule. I poked at it for a while,
but I apparently don't have the make-fu to figure out how to un-break
it.
Help?
josh
On Mon, May 14, 2007 at 09:47:13AM -0500, Josh Boyer wrote:
Hi David,
I tried compiling an Ebony kernel wrapped with a DTS and initrd this
morning but it fails with the following error:
WRAP arch/powerpc/boot/treeImage.initrd.ebony
DTC: dts->dtb on file "/home/jwboyer/src/linux-2.6/arch/powerpc/boot/dts/ebony.dts"
powerpc-440-linux-gnu-ld: arch/powerpc/boot/treeboot-initrd.ebony.o: No such file: No such file or directory
powerpc-440-linux-gnu-nm: 'arch/powerpc/boot/treeImage.initrd.ebony': No such file
powerpc-440-linux-gnu-objdump: 'arch/powerpc/boot/treeImage.initrd.ebony': No such file
mv: cannot stat `arch/powerpc/boot/treeImage.initrd.ebony': No such file or directory
stat: No such file or directory
ln: accessing `arch/powerpc/boot/treeImage.initrd.ebony': No such file or directory
make[1]: *** [arch/powerpc/boot/zImage.initrd] Error 1
make: *** [zImage.initrd] Error 2
At first glance, it should be looking for treeboot-ebony.o, not
treeboot-initrd.ebony.o. On a whim, I symlinked treeboot-initrd.ebony.o
to treeboot-ebony.o and the compile worked, however the wrapper wasn't
called with the ramdisk.image.gz file:
/bin/sh /home/jwboyer/src/linux-2.6/arch/powerpc/boot/wrapper -c -o arch/powerpc/boot/treeImage.initrd.ebony -p treeboot-initrd.ebony -C "powerpc-440-linux-gnu-" -s /home/jwboyer/src/linux-2.6/arch/powerpc/boot/dts/ebony.dts vmlinux
DTC: dts->dtb on file "/home/jwboyer/src/linux-2.6/arch/powerpc/boot/dts/ebony.dts"
So something is very broken with this rule. I poked at it for a while,
but I apparently don't have the make-fu to figure out how to un-break
it.
Help?
Bother. I think the problem is that make is selecting the treeImage.%
rule (which does match), instead of the more specific
treeImage.initrd.%. I think the very simple patch below, which just
reverses the order of the rules, might fix it. Can you give it a
whirl?
Index: working-2.6/arch/powerpc/boot/Makefile
===================================================================
--- working-2.6.orig/arch/powerpc/boot/Makefile 2007-05-15 11:39:18.000000000 +1000
+++ working-2.6/arch/powerpc/boot/Makefile 2007-05-15 11:39:27.000000000 +1000
@@ -204,12 +204,12 @@ dts = $(if $(shell echo $(CONFIG_DEVICE_
$(obj)/cuImage.%: vmlinux $(dts) $(wrapperbits)
$(call if_changed,wrap,cuboot-$*,$(dts))
-$(obj)/treeImage.%: vmlinux $(dts) $(wrapperbits)
- $(call if_changed,wrap,treeboot-$*,$(dts))
-
$(obj)/treeImage.initrd.%: vmlinux $(dts) $(wrapperbits)
$(call if_changed,wrap,treeboot-$*,$(dts),,$(obj)/ramdisk.image.gz)
+$(obj)/treeImage.%: vmlinux $(dts) $(wrapperbits)
+ $(call if_changed,wrap,treeboot-$*,$(dts))
+
$(obj)/zImage: $(addprefix $(obj)/, $(image-y))
@rm -f $@; ln $< $@
$(obj)/zImage.initrd: $(addprefix $(obj)/, $(initrd-y))
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
On Tue, 2007-05-15 at 11:40 +1000, David Gibson wrote:
Bother. I think the problem is that make is selecting the treeImage.%
rule (which does match), instead of the more specific
treeImage.initrd.%. I think the very simple patch below, which just
reverses the order of the rules, might fix it. Can you give it a
whirl?
Of course it would have to be that simple. Yep, switched the order of
the rules and the zImage.initrd creation worked wonderfully.
Thanks.
josh