[PATCH v2] arm/dt: Add a make rule to build dtb for enabled boards

Grant Likely grant.likely at secretlab.ca
Thu Apr 7 16:43:23 UTC 2011


On Fri, Apr 08, 2011 at 12:39:50AM +0800, Shawn Guo wrote:
> On Thu, Apr 07, 2011 at 08:30:03AM +0100, Andy Green wrote:
> > On 04/04/2011 04:01 PM, Somebody in the thread at some point said:
> > 
> > Hi -
> > 
> > >With 'make ARCH=arm dtb', it builds Device Tree Blobs for those boards
> > >enabled by build CONFIG.
> > 
> > >index d51ab6c..7fd2af9 100644
> > >--- a/arch/arm/Makefile
> > >+++ b/arch/arm/Makefile
> > >@@ -292,6 +292,9 @@ zinstall uinstall install: vmlinux
> > >  %.dtb:
> > >  	$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
> > >
> > >+dtb:
> > >+	$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
> > >+
> > 
> > The version of this that went into linux-linaro-2.6.38 looks like this
> > 
> > X-Git-Url: http://git.linaro.org/gitweb?p=kernel%2Flinux-linaro-2.6.38.git;a=blobdiff_plain;f=arch%2Farm%2FMakefile;h=1be856a21093241d24ee7ba41de2bc3f0fccff4f;hp=d51ab6c6482aa186055eaf3cd218e07f6a872743;hb=1449fb96cb7f12a28a4f0aebf83c0b0ece0dfeed;hpb=7c4bc9c2662c6d9840afed0e29eb01314af9bb78
> > 
> > diff --git a/arch/arm/Makefile b/arch/arm/Makefile
> > index d51ab6c..1be856a 100644
> > --- a/arch/arm/Makefile
> > +++ b/arch/arm/Makefile
> > @@ -289,7 +289,7 @@ zImage Image xipImage bootpImage uImage: vmlinux
> >  zinstall uinstall install: vmlinux
> >  	$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $@
> > 
> > -%.dtb:
> > +dtbs %.dtb:
> >  	$(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
> > 
> >  # We use MRPROPER_FILES and CLEAN_FILES now
> > 
> > On recent make, it 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.''
> > 
> > http://www.mail-archive.com/bug-make@gnu.org/msg06220.html
> > 
> > I worked around it by changing the line back to just say
> > 
> > %.dtb:
> > 
> > but I don't know if that does what was actually intended the same;
> > according to the linked make ml post it may need to be two clauses.

That rule is just a pass through to build the targets in the
arch/arm/boot Makefile.

> > 
> Thanks, Andy.
> 
> I just confirmed that make 3.81 works fine with the mixed rules, but
> 3.82 did fail for the exactly same reason you gave above.
> 
> Grant,
> 
> Should we break the mixed rules back to two separated rules to get
> the patch survive with make 3.82?

Yes, please do.

Thanks,
g.




More information about the linaro-kernel mailing list