Re: [PATCH] [RFC] drm: rcar-du: keep temporary dtb files around during build

From: Laurent Pinchart
Date: Thu Mar 22 2018 - 10:49:18 EST


Hi Geert,

On Thursday, 22 March 2018 16:26:22 EET Geert Uytterhoeven wrote:
> On Fri, Mar 16, 2018 at 2:39 AM, <Frank.Rowand@xxxxxxxx> wrote:
> > On Thursday, March 15, 2018 8:37 AM, Arnd Bergmann wrote:
> >> The *.dtb and *.dtb.S files get removed by 'make' during the build
> >> process, and later seem to be missed during the 'modpost' stage:
> >>
> >> rm drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7795.dtb
> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7791.dtb
> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7791.dtb.S
> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7795.dtb.S
> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7790.dtb.S
> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7793.dtb
> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7796.dtb
> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7790.dtb
> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7796.dtb.S
> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7793.dtb.S
> >> WARNING: could not open
> >> drivers/gpu/drm/rcar-du/rcar_du_of_lvds_r8a7790.dtb.S: No such file or
> >> directory
> >>
> >> As a workaround, this adds all those files to the 'extra-y' target list,
> >> but that's really ugly. Any ideas for a better fix?
> >
> > Does this work for you (untested, but the way it is done in
> > drivers/of/unittest-data/Makefile):
> >
> > .PRECIOUS: \
> >
> > $(obj)/%.dtb.S \
> > $(obj)/%.dtb
>
> Shouldn't that just be moved to scripts/Makefile.lib, just above the rule
> to make dtb.S, like is done for other precious objects?

Without any implied acknowledgment that keeping those intermediate files is
the right solution (I don't claim to master the kernel build system), I think
such a rule would indeed be better in a core Makefile, as the rules to build
the .dtb.o file comes from the core too. Could another option be to create a
rule to compile a .dtb.o from the .dts file directly without going through
intermediate files that will be removed automatically ?

--
Regards,

Laurent Pinchart