Re: [PATCH V11 3/5] kbuild: Allow .dtso format for overlay source files

From: Viresh Kumar
Date: Mon Mar 15 2021 - 02:42:23 EST


On 14-03-21, 20:16, Frank Rowand wrote:
> On 3/12/21 11:11 PM, Frank Rowand wrote:
> > On 3/12/21 1:13 AM, Viresh Kumar wrote:
> >> On 12-03-21, 01:09, Frank Rowand wrote:
> >>> I suggested having the .dtso files include the .dts file because that is a relatively
> >>> small and easy change to test. What would probably make more sense is the rename
> >>> the existing overlay .dts files to be .dtso files and then for each overlay .dtso
> >>> file create a new .dts file that #includes the corresponding .dtso file. This is
> >>> more work and churn, but easier to document that the .dts files are a hack that is
> >>> needed so that the corresponding .dtb.S files will be generated.
> >>
> >> What about creating links instead then ?
> >>
> >
> > I don't really like the idea of using links here.
> >
> > Maybe it is best to make the changes needed to allow the unittest
> > overlays to be .dtso instead of .dts.
> >
> > Off the top of my head:
> >
> > scripts/Makefile.lib:
> > The rule for %.dtb.S invokes cmd_dt_S_dtb, which puts the
> > overlay data in section .dtb.init.rodata, with a label
> > pointing to the beginning of the overlay __dtb_XXX_begin and
> > a label pointing to the end of the overlay __dtb_XXX_end,
> > for the overlay named XXX. I _think_ that you could simply
> > add a corresponding rule for %.dtbo.S using a new command
> > cmd_dt_S_dtbo (the same as cmd_dt_S_dtb, except use labels
> > __dtbo_XXX_begin and __dtbo_XXX_end).
>
> If you do the above, please put it in drivers/of/unittest-data/Makefile
> instead of scripts/Makefile.lib because it is unittest.c specific and
> not meant to be anywhere else in the kernel.

What about doing this then in unittest's Makefile instead (which I
already suggested earlier), that will make everything work just fine
without any other changes ?

+# Required for of unittest files as they can't be renamed to .dtso
+$(obj)/%.dtbo: $(src)/%.dts $(DTC) FORCE
+ $(call if_changed_dep,dtc)

--
viresh