Re: [PATCH v2 1/2] kbuild: Always validate DT binding examples

From: Rob Herring
Date: Tue Apr 21 2020 - 16:40:49 EST


On Tue, Apr 21, 2020 at 2:31 PM Rob Herring <robh@xxxxxxxxxx> wrote:
>
> On Tue, Apr 21, 2020 at 11:57 AM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote:
> >
> > Hi Rob,
> >
> >
> > On Tue, Apr 21, 2020 at 11:01 PM Rob Herring <robh@xxxxxxxxxx> wrote:
> > > >
> > > > It seems to only fail with out of tree builds (O=...). I expect that
> > > > failures will become more common the more YAML bindings we have, even
> > > > without long directory names.
> > >
> > > dt-mk-schema can take and recurse a single directory already, so does
> > > this fix it for you:
> > >
> > > @@ -22,7 +22,7 @@ $(obj)/%.example.dts: $(src)/%.yaml
> > > check_dtschema_version FORCE
> > > DT_TMP_SCHEMA := $(obj)/processed-schema-examples.yaml
> > >
> > > quiet_cmd_mk_schema = SCHEMA $@
> > > - cmd_mk_schema = $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) -o $@
> > > $(real-prereqs)
> > > + cmd_mk_schema = $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) -o $@
> > > $(srctree)/$(src)
> >
> >
> > I am just curious.
> >
> > How come the tool excludes 'processed-schema*' and '*.example.dt.yaml'
> > from $(srctree)/$(src) ?
>
> Uggg, it wouldn't. Can't everyone build out of tree. ;) I guess the options are:
>
> - Call dt-mk-schema on each file individually appending the result
> - Make dt-mk-schema take stdin or a file with a list of files as
> Masahiro suggested
>
> I'd like to avoid a dt-mk-schema change so I'll try to make the former
> work. It's only been a day since adding a minimum version. :(

Laurent, does this work for you? I've reproduced the problem, but just
double checking.

DT_TMP_SCHEMA := $(obj)/processed-schema-examples.yaml

quiet_cmd_mk_schema = SCHEMA $@
- cmd_mk_schema = $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) -o $@
$(real-prereqs)
+ cmd_mk_schema = $(file >$@.tmp, $(real-prereqs)) \
+ cat $@.tmp | xargs $(DT_MK_SCHEMA)
$(DT_MK_SCHEMA_FLAGS) -o $@

DT_DOCS = $(addprefix $(src)/, \
$(shell \