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'
linaro-kernel@lists.linaro.org