On recent make, commit 1449fb96, "arm/dt: Add a make rule to build dtb for enabled boards" breaks build of the kernel immediately:
/projects/linaro/linux-2.6/arch/arm/Makefile:292: *** mixed implicit and normal rules. Stop.
$ rpm -q make make-3.82-4.fc15.x86_64
''The previous behavior of mixing implicit and pattern rules in one line like that was never supported or documented, but due to a "hole" in the parser it worked for certain specific cases (for example, reversing that line so the pattern comes first would not work, nor would adding extra explicit targets after the pattern target).
In 3.82, the parser was tightened in this respect and that "hole" was closed, hence you see this error.''
This patch splits the rule to fix the bug.
Reported-by: Andy Green andy.green@linaro.org Signed-off-by: Grant Likely grant.likely@secretlab.ca --- arch/arm/Makefile | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 1be856a..4570ca7 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -289,7 +289,10 @@ zImage Image xipImage bootpImage uImage: vmlinux zinstall uinstall install: vmlinux $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $@
-dtbs %.dtb: +%.dtb: + $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@ + +dtbs: $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
# We use MRPROPER_FILES and CLEAN_FILES now @@ -308,6 +311,7 @@ define archhelp echo ' uImage - U-Boot wrapped zImage' echo ' bootpImage - Combined zImage and initial RAM disk' echo ' (supply initrd image via make variable INITRD=<path>)' + echo ' dtbs - Build device tree blobs for enabled boards' echo ' install - Install uncompressed kernel' echo ' zinstall - Install compressed kernel' echo ' uinstall - Install U-Boot wrapped compressed kernel'
Converted .dts file to use skeleton.dtsi, and added 'dtbs' target.
Signed-off-by: Grant Likely grant.likely@secretlab.ca --- arch/arm/boot/dts/vexpress.dts | 10 +--------- arch/arm/mach-vexpress/Makefile.boot | 2 ++ 2 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/arch/arm/boot/dts/vexpress.dts b/arch/arm/boot/dts/vexpress.dts index bea2a18..5f3bc1d 100644 --- a/arch/arm/boot/dts/vexpress.dts +++ b/arch/arm/boot/dts/vexpress.dts @@ -1,18 +1,10 @@ /dts-v1/; +/include/ "skeleton.dtsi"
/ { model = "ARM Versatile Express"; compatible = "arm,vexpress"; - - #address-cells = <1>; - #size-cells = <1>; - - aliases { }; - - chosen { }; - memory { - device_type = "memory"; reg = <0x60000000 0x40000000>; }; }; diff --git a/arch/arm/mach-vexpress/Makefile.boot b/arch/arm/mach-vexpress/Makefile.boot index 07c2d9c..9920a10 100644 --- a/arch/arm/mach-vexpress/Makefile.boot +++ b/arch/arm/mach-vexpress/Makefile.boot @@ -1,3 +1,5 @@ zreladdr-y := 0x60008000 params_phys-y := 0x60000100 initrd_phys-y := 0x60800000 + +dtb-$(CONFIG_ARCH_VEXPRESS_CA9X4) += vexpress.dtb
On Thu, Apr 14, 2011 at 2:59 PM, Grant Likely grant.likely@secretlab.ca wrote:
On recent make, commit 1449fb96, "arm/dt: Add a make rule to build dtb for enabled boards" breaks build of the kernel immediately:
Oops, sent this one twice. Sorry for the noise.
g.
linaro-kernel@lists.linaro.org