Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp415879ybz; Tue, 21 Apr 2020 11:30:49 -0700 (PDT) X-Google-Smtp-Source: APiQypLEDfz1pFQyk3rUw4lY9IJRvZ/Tot8ccnvE7r2dXqdWutiSEKK8Eq86XgUam2fp2+zJQVxm X-Received: by 2002:a50:d615:: with SMTP id x21mr17375872edi.62.1587493849037; Tue, 21 Apr 2020 11:30:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587493849; cv=none; d=google.com; s=arc-20160816; b=iBvbYOhp7UnKdbLvfjSn8P4Viw1v/iep9N8lNVZ7tuMmp4oEfSokaazmPOhnp9YNYq xYTwHw+DbqKaJfgUUTgmyOGTmPA2Wedr3VKQCYcp5WiJNcAXxtNFKojITkG/NPnldWZM EyktO2kM43NxL28d3YlZb+M89DGopvWXBn0c3j4kc4WuJLUpNuMgpdC2l96cXnsaUKJ3 MZlHAOPdGsUrBgno1zt+/aLS4M1S1UmpDkgwt4zUpmM/2/ycWcEVpYiR1AuRlMXDq+pT 8px0c/dWbRjVSHnEsykv+TPY4nwpTUEJpli7DST+VmBQJIlDieznKO2xsSfGzJem5gLt GzHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :dkim-signature; bh=pjbehA4HnTOom+JBIsoAmEdfLUftqeFDGx3fVfSMGUI=; b=0BbAEGd41P6XD/RcjZR8MjUnMMJGHCbMN8GsZNZmsuy8FW9CJxxqIFgmnbHzButoZR nJ7ov2dmyqPy8mIj9x4+bGqrCkZFUhstQe9UxM494bkuZTEtg+1xlb9wHSE4Jedktj3D Lr6UEGEtor0pIdJuc8BfgdEq2M6ISSK6sQMa4PA+yjulSqnK7FgAbloClEDCbkMDwCAB HH0HDrq+l3ARArEDgi3QQnd0khoG4cQqqE7BVoDc1bqg8sulnmxvRyyW7o2nduXYArKC NfCxSpI3OKeS4GdDoiWRvZ7rbAei4sXVFwVW+RmAW+RcOGtHCfoWweQBf7Vub3JQKvIE kXxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=O8MylIdt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id f9si1942023edq.572.2020.04.21.11.30.23; Tue, 21 Apr 2020 11:30:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass (test mode) header.i=@ideasonboard.com header.s=mail header.b=O8MylIdt; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729166AbgDUS31 (ORCPT + 99 others); Tue, 21 Apr 2020 14:29:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57570 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725870AbgDUS31 (ORCPT ); Tue, 21 Apr 2020 14:29:27 -0400 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 103C3C0610D5; Tue, 21 Apr 2020 11:29:27 -0700 (PDT) Received: from pendragon.ideasonboard.com (81-175-216-236.bb.dnainternet.fi [81.175.216.236]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 326A6528; Tue, 21 Apr 2020 20:29:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1587493763; bh=Ub+bvuy54/lHHBzdaKAhPdrkxpA4BOORJHhwhd+Euko=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=O8MylIdtPq0HfXE73cG8CsePtPPdHUr4qKGIHIsXfObuyeGbfy7+3BRs+BnaQatmh mUvSQ+aquZinMBPk3euVqA/ntt1NXXsx1C+03IVkdna/7rhGjkLFIw/CuPtonV5e6j 5+yHIoN4Jz9Ta1vT9KdFA61ExbjF4XU36xMZaepE= Date: Tue, 21 Apr 2020 21:29:09 +0300 From: Laurent Pinchart To: Rob Herring Cc: Masahiro Yamada , DTML , Linux Kernel Mailing List , Michal Marek , Linux Kbuild mailing list Subject: Re: [PATCH v2 1/2] kbuild: Always validate DT binding examples Message-ID: <20200421182909.GE5983@pendragon.ideasonboard.com> References: <20200229003731.2728-1-robh@kernel.org> <20200421100749.GA5429@pendragon.ideasonboard.com> <20200421110537.GC5983@pendragon.ideasonboard.com> <20200421134654.GD5983@pendragon.ideasonboard.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Rob, On Tue, Apr 21, 2020 at 09:01:32AM -0500, Rob Herring wrote: > On Tue, Apr 21, 2020 at 8:47 AM Laurent Pinchart wrote: > > On Tue, Apr 21, 2020 at 10:15:02PM +0900, Masahiro Yamada wrote: > > > On Tue, Apr 21, 2020 at 8:05 PM Laurent Pinchart wrote: > > > > On Tue, Apr 21, 2020 at 07:45:05PM +0900, Masahiro Yamada wrote: > > > > > On Tue, Apr 21, 2020 at 7:08 PM Laurent Pinchart wrote: > > > > > > 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 > > > > > > > > > > What is intended by > > > > > "DT_SCHEMA_FILES=Documentation/devicetree/.." ? > > > > > > > > My bad, I forgot to write that ... is the continuation of the string. > > > > It's any yaml schema file that has an example. > > > > > > Ah, OK. I just input verbatim. > > > > > > Is it broken? > > > > > > You can specify any individual file(s) under Documentation/devicetree/bindings/. > > > > > > For example, the following worked for me. > > > > > > $ make DT_SCHEMA_FILES=Documentation/devicetree/bindings/arm/psci.yaml > > > dt_binding_check > > > HOSTCC scripts/basic/fixdep > > > HOSTCC scripts/dtc/dtc.o > > > HOSTCC scripts/dtc/flattree.o > > > HOSTCC scripts/dtc/fstree.o > > > HOSTCC scripts/dtc/data.o > > > HOSTCC scripts/dtc/livetree.o > > > HOSTCC scripts/dtc/treesource.o > > > HOSTCC scripts/dtc/srcpos.o > > > HOSTCC scripts/dtc/checks.o > > > HOSTCC scripts/dtc/util.o > > > LEX scripts/dtc/dtc-lexer.lex.c > > > YACC scripts/dtc/dtc-parser.tab.[ch] > > > HOSTCC scripts/dtc/dtc-lexer.lex.o > > > HOSTCC scripts/dtc/dtc-parser.tab.o > > > HOSTCC scripts/dtc/yamltree.o > > > HOSTLD scripts/dtc/dtc > > > CHKDT Documentation/devicetree/bindings/arm/psci.yaml > > > SCHEMA Documentation/devicetree/bindings/processed-schema-examples.yaml > > > DTC Documentation/devicetree/bindings/arm/psci.example.dt.yaml > > > CHECK Documentation/devicetree/bindings/arm/psci.example.dt.yaml > > > SCHEMA Documentation/devicetree/bindings/processed-schema.yaml > > > > This is getting interesting. > > > > ~/src/kernel/linux $ make O=output/x86 DT_SCHEMA_FILES=Documentation/devicetree/bindings/arm/psci.yaml dt_binding_check > > make[1]: Entering directory '/home/laurent/src/kernel/linux/output/x86' > > HOSTCC scripts/basic/fixdep > > HOSTCC scripts/dtc/dtc.o > > HOSTCC scripts/dtc/flattree.o > > HOSTCC scripts/dtc/fstree.o > > HOSTCC scripts/dtc/data.o > > HOSTCC scripts/dtc/livetree.o > > HOSTCC scripts/dtc/treesource.o > > HOSTCC scripts/dtc/srcpos.o > > HOSTCC scripts/dtc/checks.o > > HOSTCC scripts/dtc/util.o > > LEX scripts/dtc/dtc-lexer.lex.c > > YACC scripts/dtc/dtc-parser.tab.[ch] > > HOSTCC scripts/dtc/dtc-lexer.lex.o > > HOSTCC scripts/dtc/dtc-parser.tab.o > > HOSTCC scripts/dtc/yamltree.o > > HOSTLD scripts/dtc/dtc > > CHKDT Documentation/devicetree/bindings/arm/psci.yaml > > SCHEMA Documentation/devicetree/bindings/processed-schema-examples.yaml > > DTC Documentation/devicetree/bindings/arm/psci.example.dt.yaml > > CHECK Documentation/devicetree/bindings/arm/psci.example.dt.yaml > > SCHEMA Documentation/devicetree/bindings/processed-schema.yaml > > make[1]: Leaving directory '/home/laurent/src/kernel/linux/output/x86' > > > > ~/src/kernel/this_is_a_long_directory_name/linux $ make O=output/x86 DT_SCHEMA_FILES=Documentation/devicetree/bindings/arm/psci.yaml dt_binding_check > > make[1]: Entering directory '/home/laurent/src/kernel/this_is_a_long_directory_name/linux/output/x86' > > HOSTCC scripts/basic/fixdep > > HOSTCC scripts/dtc/dtc.o > > HOSTCC scripts/dtc/flattree.o > > HOSTCC scripts/dtc/fstree.o > > HOSTCC scripts/dtc/data.o > > HOSTCC scripts/dtc/livetree.o > > HOSTCC scripts/dtc/treesource.o > > HOSTCC scripts/dtc/srcpos.o > > HOSTCC scripts/dtc/checks.o > > HOSTCC scripts/dtc/util.o > > LEX scripts/dtc/dtc-lexer.lex.c > > YACC scripts/dtc/dtc-parser.tab.[ch] > > HOSTCC scripts/dtc/dtc-lexer.lex.o > > HOSTCC scripts/dtc/dtc-parser.tab.o > > HOSTCC scripts/dtc/yamltree.o > > HOSTLD scripts/dtc/dtc > > CHKDT Documentation/devicetree/bindings/arm/psci.yaml > > make[2]: execvp: /bin/sh: Argument list too long > > make[2]: *** [/home/laurent/src/kernel/this_is_a_long_directory_name/linux/Documentation/devicetree/bindings/Makefile:38: Documentation/devicetree/bindings/processed-schema-examples.yaml] Error 127 > > make[1]: *** [/home/laurent/src/kernel/this_is_a_long_directory_name/linux/Makefile:1300: dt_binding_check] Error 2 > > make[1]: Leaving directory '/home/laurent/src/kernel/this_is_a_long_directory_name/linux/output/x86' > > make: *** [Makefile:180: sub-make] Error 2 > > > > 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: Yes, the change below fixes my problem, thank 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) > > DT_DOCS = $(addprefix $(src)/, \ > $(shell \ -- Regards, Laurent Pinchart