Re: [PATCH V5 1/2] kbuild: centralize .dts->.dtb rule

Grant Likely
2012-11-20T22:00:43Z

On Thu, 15 Nov 2012 11:31:38 -0700, Stephen Warren <swarren@wwwdotorg.org> wrote:
> On 11/15/2012 11:20 AM, Grant Likely wrote:
> > On Thu, Nov 15, 2012 at 6:09 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
> >> On 11/15/2012 04:51 AM, Grant Likely wrote:
> >>> Grant Likely wrote:
> >>>> Or how about: I could pick up the patch with only the MIPS hunk and
> >>>> every other user can be fixed up independently to use the new rule.
> >>>
> >>> Here's a trial patch to fix up ARM. Does this look correct? This patch
> >>> depends on the generic dtb build rule already being applied.
> >>
> >> I think the patch looks OK technically, except for one minor comment below.
> >>
> >> One issue with this patch is that it moves *.dts from arch/arm/boot to
> >> arch/arm/boot/dts, which means everyone has to adjust their scripts/...
> >> that package/install/... the kernel. I guess it's an easy change for
> >> people to make, but could easily catch people unawares if they do
> >> incremental builds so that arch/arm/boot/*.dtb still exists but is stale.
> >
> > True. We could temporarily remove or rename if the same file exists in
> > the directory below to help people catch that problem. I really would
> > like to clean up that build rule to be consistent though.
> >
> > The other option is to move all the .dts files into the boot
> > directory, but I don't think that is a good idea at all.
>
> Maybe we can just add "rm *.dtb" to the following rules in
> boot/Makefile, before calling the child make?
>
> %.dtb: scripts
> - $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
> + $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) $(boot)/dts/$@
>
> dtbs: scripts
> - $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@
> + $(Q)$(MAKE) $(build)=$(boot)/dts MACHINE=$(MACHINE) dtbs
>
> >>> +targets += dtbs
> >>
> >> Doesn't that make the "dtbs" target always run by default? Perhaps
> >> that's reasonable though, and doesn't actually affect anything since the
> >> make command for this directory always specifies an explicit target?
> >>
> >> Or, was that meant to be the following that got removed from ../Makefile?
> >>
> >> targets += $(dtb-y)
> >
> > Yes it is supposed to be the same thing. Doesn't it effectively do the
> > same since dtbs depends on $(dtb-y)?
>
> Ah, I think so yes.
>
> I guess anyway that $(targets) is presumably ignored if an explicit
> build target is requested from make.

Can you pull into your series and get it working. The merge window is
going to open this week, so I have to push it back to v3.9 anyway.

g.

--
Grant Likely, B.Sc, P.Eng.
Secret Lab Technologies, Ltd.