From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Rob Herring <robh@kernel.org>
Cc: Masahiro Yamada <masahiroy@kernel.org>,
devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
Michal Marek <michal.lkml@markovi.net>,
linux-kbuild@vger.kernel.org
Subject: Re: [PATCH v2 1/2] kbuild: Always validate DT binding examples
Date: Tue, 21 Apr 2020 13:07:49 +0300 [thread overview]
Message-ID: <20200421100749.GA5429@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20200229003731.2728-1-robh@kernel.org>
Hi Rob,
On Fri, Feb 28, 2020 at 06:37:30PM -0600, Rob Herring wrote:
> Most folks only run dt_binding_check on the single schema they care about
> by setting DT_SCHEMA_FILES. That means example is only checked against
> that one schema which is not always sufficient.
>
> Let's address this by splitting processed-schema.yaml into 2 files: one
> that's always all schemas for the examples and one that's just the schema
> in DT_SCHEMA_FILES for dtbs.
This broke
make DT_SCHEMA_FILES=Documentation/devicetree/.. dt_binding_check
for me :-(
make[1]: Entering directory '/home/laurent/src/linux/output/arm32'
make[2]: execvp: /bin/sh: Argument list too long
make[2]: *** [/home/laurent/src/linux/Documentation/devicetree/bindings/Makefile:35: Documentation/devicetree/bindings/processed-schema-examples.yaml] Error 127
make[1]: *** [/home/laurent/src/linux/Makefile:1296: dt_binding_check] Error 2
make[1]: Leaving directory '/home/laurent/src/linux/output/arm32'
make: *** [Makefile:180: sub-make] Error 2
Before the patch, dt-mk-schema was called with DT_SCHEMA_FILES only, and
it is now called with DT_DOCS unconditionally.
> Cc: Michal Marek <michal.lkml@markovi.net>
> Cc: linux-kbuild@vger.kernel.org
> Co-developed-by: Masahiro Yamada <masahiroy@kernel.org>
> Signed-off-by: Rob Herring <robh@kernel.org>
> ---
> Masahiro, given you pretty much re-wrote this, I added you as
> Co-developed-by.
>
> Based on next/master
>
> Documentation/devicetree/bindings/.gitignore | 2 +-
> Documentation/devicetree/bindings/Makefile | 22 +++++++++++++-------
> scripts/Makefile.lib | 3 ++-
> 3 files changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/.gitignore b/Documentation/devicetree/bindings/.gitignore
> index ef82fcfcccab..57afa1533a5f 100644
> --- a/Documentation/devicetree/bindings/.gitignore
> +++ b/Documentation/devicetree/bindings/.gitignore
> @@ -1,2 +1,2 @@
> *.example.dts
> -processed-schema.yaml
> +processed-schema*.yaml
> diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile
> index 646cb3525373..7c40d5ba1b51 100644
> --- a/Documentation/devicetree/bindings/Makefile
> +++ b/Documentation/devicetree/bindings/Makefile
> @@ -2,7 +2,6 @@
> DT_DOC_CHECKER ?= dt-doc-validate
> DT_EXTRACT_EX ?= dt-extract-example
> DT_MK_SCHEMA ?= dt-mk-schema
> -DT_MK_SCHEMA_FLAGS := $(if $(DT_SCHEMA_FILES), -u)
>
> quiet_cmd_chk_binding = CHKDT $(patsubst $(srctree)/%,%,$<)
> cmd_chk_binding = $(DT_DOC_CHECKER) -u $(srctree)/$(src) $< ; \
> @@ -11,26 +10,33 @@ quiet_cmd_chk_binding = CHKDT $(patsubst $(srctree)/%,%,$<)
> $(obj)/%.example.dts: $(src)/%.yaml FORCE
> $(call if_changed,chk_binding)
>
> -DT_TMP_SCHEMA := processed-schema.yaml
> +# Use full schemas when checking %.example.dts
> +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)
>
> -DT_DOCS = $(shell \
> +DT_DOCS = $(addprefix $(src)/, \
> + $(shell \
> cd $(srctree)/$(src) && \
> find * \( -name '*.yaml' ! \
> - -name $(DT_TMP_SCHEMA) ! \
> + -name 'processed-schema*' ! \
> -name '*.example.dt.yaml' \) \
> - )
> + ))
>
> -DT_SCHEMA_FILES ?= $(addprefix $(src)/,$(DT_DOCS))
> +DT_SCHEMA_FILES ?= $(DT_DOCS)
>
> ifeq ($(CHECK_DTBS),)
> extra-y += $(patsubst $(src)/%.yaml,%.example.dts, $(DT_SCHEMA_FILES))
> extra-y += $(patsubst $(src)/%.yaml,%.example.dt.yaml, $(DT_SCHEMA_FILES))
> +extra-y += processed-schema-examples.yaml
> +
> +$(obj)/processed-schema-examples.yaml: $(DT_DOCS) FORCE
> + $(call if_changed,mk_schema)
> endif
>
> -$(obj)/$(DT_TMP_SCHEMA): $(DT_SCHEMA_FILES) FORCE
> +$(obj)/processed-schema.yaml: DT_MK_SCHEMA_FLAGS := -u
> +$(obj)/processed-schema.yaml: $(DT_SCHEMA_FILES) FORCE
> $(call if_changed,mk_schema)
>
> -extra-y += $(DT_TMP_SCHEMA)
> +extra-y += processed-schema.yaml
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index f5ff506e4a24..b12dd5ba4896 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -307,7 +307,8 @@ $(obj)/%.dtb: $(src)/%.dts $(DTC) FORCE
>
> DT_CHECKER ?= dt-validate
> DT_BINDING_DIR := Documentation/devicetree/bindings
> -DT_TMP_SCHEMA := $(objtree)/$(DT_BINDING_DIR)/processed-schema.yaml
> +# DT_TMP_SCHEMA may be overridden from Documentation/devicetree/bindings/Makefile
> +DT_TMP_SCHEMA ?= $(objtree)/$(DT_BINDING_DIR)/processed-schema.yaml
>
> quiet_cmd_dtb_check = CHECK $@
> cmd_dtb_check = $(DT_CHECKER) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA) $@
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2020-04-21 10:08 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-02-29 0:37 [PATCH v2 1/2] kbuild: Always validate DT binding examples Rob Herring
2020-02-29 0:37 ` [PATCH v2 2/2] kbuild: Build DT binding examples with dtc warnings enabled Rob Herring
2020-02-29 4:25 ` [PATCH v2 1/2] kbuild: Always validate DT binding examples Masahiro Yamada
2020-03-02 16:06 ` Rob Herring
2020-03-03 13:45 ` Masahiro Yamada
2020-04-21 10:07 ` Laurent Pinchart [this message]
2020-04-21 10:45 ` Masahiro Yamada
2020-04-21 11:05 ` Laurent Pinchart
2020-04-21 13:15 ` Masahiro Yamada
2020-04-21 13:46 ` Laurent Pinchart
2020-04-21 14:01 ` Rob Herring
2020-04-21 16:56 ` Masahiro Yamada
2020-04-21 19:31 ` Rob Herring
2020-04-21 20:40 ` Rob Herring
2020-04-21 18:29 ` Laurent Pinchart
2020-04-21 17:36 ` Masahiro Yamada
2020-04-21 13:47 ` Rob Herring
2020-04-21 17:31 ` Masahiro Yamada
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200421100749.GA5429@pendragon.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=devicetree@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=masahiroy@kernel.org \
--cc=michal.lkml@markovi.net \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.