Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp2146116ybz; Thu, 23 Apr 2020 12:24:33 -0700 (PDT) X-Google-Smtp-Source: APiQypKASItfc3bgTB4e8f9dZ6EhNiaZ+MTIrNBZxjyZnV/AQrlKgl/l1bn5/N14C0J2va6SB92A X-Received: by 2002:a17:906:829a:: with SMTP id h26mr3920005ejx.133.1587669872798; Thu, 23 Apr 2020 12:24:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587669872; cv=none; d=google.com; s=arc-20160816; b=e8kBUvv1Ioe2ISixaRpsPY2vrtURzXYin+iX6SNJVBXS3/Ov3x4xPbs/05uYoKmn3e Jbbe6I/W331QcVzrLbozIjuw2FLZXK8LWkfY2yaKQtOU+gG11cz2pYwsnBuq4+YKBqxU wEGjbZMechnuEYVFmgae95gxWzE7lp3l5INE3xWqhcu3/3QZE2qgWD7GW23t4EOmLIBz 1dYT6h0Hnbor6xmN6dVpm87n8ElBQsZZPEGpYRK3hHDVEA5fNtcHkqGFf189J/NW7hDU D8ORbj4Qlh/LjgHIGilvlXNPl1lo+4xjOnPgmayIvYPUDLLZ3yiWpM/HLxhwvF2lwqhd PVmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature:dkim-filter; bh=+DlzjDpib8laCDy2JUu2OfEgSqg9h54FYVo2uotXvMI=; b=lDpumCygRwX/3ncovSBtLLDpa66slwmULKfqqxvqcHTNnA3O1IfMNLFo50juoHuaAr 76kaOvb9RoLQZsuGkhBfQns3lvZd7ruVzQYmeG2njUbVBEpPy4W4Xl/S+OMUYtzGvl4v pXnLQeiUAcGPgqhjPuXV3KVzByyWLNZNEOHwpZcW0LjWUyq4a1UrL9T1Uo3ITKWkD2Xa oG36mKHqF2Ap+McTHwqfy6KdKleCDIP3XqR+eEXiaMUWT2MncXTX6NLeVMa4yP9CuPZX iC3YJxyJ5724S7fjkWl/qaOa9fK0/iYsIjyQ+swvFLbXt2zNG2zFml16OwOAabfa4MjQ na3w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=NPgDDsoj; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id u10si1829915ejt.145.2020.04.23.12.24.09; Thu, 23 Apr 2020 12:24:32 -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 header.i=@nifty.com header.s=dec2015msa header.b=NPgDDsoj; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728975AbgDWPJM (ORCPT + 99 others); Thu, 23 Apr 2020 11:09:12 -0400 Received: from conssluserg-04.nifty.com ([210.131.2.83]:31201 "EHLO conssluserg-04.nifty.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728921AbgDWPJM (ORCPT ); Thu, 23 Apr 2020 11:09:12 -0400 Received: from mail-ua1-f48.google.com (mail-ua1-f48.google.com [209.85.222.48]) (authenticated) by conssluserg-04.nifty.com with ESMTP id 03NF8iBQ018040; Fri, 24 Apr 2020 00:08:44 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-04.nifty.com 03NF8iBQ018040 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1587654525; bh=+DlzjDpib8laCDy2JUu2OfEgSqg9h54FYVo2uotXvMI=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=NPgDDsojOl7j2yH2Q1/NnhLkkhuYhMPihzu/fKk48UqeMXvvSzvv2Q0i7VuOt7FAr xIpzIl0mx460wO8PERYk4EBNabwPoHROCPFQ4e4IpPvXaI3NReLEjmmtUSlwJIHeFY k5vZPCnofo9sH+bQtg17V708AMbqGzmYgHxd6sjfOVjpm3K/2YeOc1+r/1HUa7wwKV zyFOf6KU6zUm8swBeBqlzNfcWN+XveMSR3wEPywLINM4i4Phu5f2r8GjA3D+O9lTqh iQw2cvdwJwiBr1tgBUdgInJmXFeKVlrj3AmknvTDYpf2wWTccLfgpY17nMc482n06w UfltsRIs98vVg== X-Nifty-SrcIP: [209.85.222.48] Received: by mail-ua1-f48.google.com with SMTP id i5so6009872uaq.1; Thu, 23 Apr 2020 08:08:44 -0700 (PDT) X-Gm-Message-State: AGi0PuaSp0NSRz0FcuMmo20IJQvaGMU3UBbYkXd7Tshsbuep4HpJt9C0 ob/UImLKoV8uJrYHkQ22ZzFHs6QRgul7uWBO+HI= X-Received: by 2002:a9f:28c5:: with SMTP id d63mr3463972uad.25.1587654523415; Thu, 23 Apr 2020 08:08:43 -0700 (PDT) MIME-Version: 1.0 References: <20200422185708.6363-1-robh@kernel.org> In-Reply-To: <20200422185708.6363-1-robh@kernel.org> From: Masahiro Yamada Date: Fri, 24 Apr 2020 00:08:07 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2] dt-bindings: Fix command line length limit calling dt-mk-schema To: Rob Herring Cc: DTML , Linux Kernel Mailing List , Laurent Pinchart Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Apr 23, 2020 at 3:57 AM Rob Herring wrote: > > As the number of schemas has increased, we're starting to hit the error > "execvp: /bin/sh: Argument list too long". This is due to passing all the > schema files on the command line to dt-mk-schema. It currently is only > with out of tree builds and is intermittent depending on the file path > lengths. > > Commit 2ba06cd8565b ("kbuild: Always validate DT binding examples") made > hitting this proplem more likely since the example validation now always > gets the full list of schemas. > > Fix this by passing the schema file list in a pipe and using xargs. We end > up doing the find twice, but the time is insignificant compared to the > dt-mk-schema time. > > Reported-by: Laurent Pinchart > Cc: Masahiro Yamada > Signed-off-by: Rob Herring Reviewed-by: Masahiro Yamada > --- > Documentation/devicetree/bindings/Makefile | 18 ++++++++++-------- > 1 file changed, 10 insertions(+), 8 deletions(-) > > diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile > index 87c76bdabfe6..7782d9985082 100644 > --- a/Documentation/devicetree/bindings/Makefile > +++ b/Documentation/devicetree/bindings/Makefile > @@ -14,16 +14,18 @@ $(obj)/%.example.dts: $(src)/%.yaml FORCE > # Use full schemas when checking %.example.dts > DT_TMP_SCHEMA := $(obj)/processed-schema-examples.yaml > > +find_cmd = find $(srctree)/$(src) \( -name '*.yaml' ! \ > + -name 'processed-schema*' ! \ > + -name '*.example.dt.yaml' \) > + > quiet_cmd_mk_schema = SCHEMA $@ > - cmd_mk_schema = $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) -o $@ $(real-prereqs) > + cmd_mk_schema = rm -f $@ ; \ > + $(if $(DT_MK_SCHEMA_FLAGS), \ > + echo $(real-prereqs), \ > + $(find_cmd)) | \ > + xargs $(DT_MK_SCHEMA) $(DT_MK_SCHEMA_FLAGS) >> $@ > > -DT_DOCS = $(addprefix $(src)/, \ > - $(shell \ > - cd $(srctree)/$(src) && \ > - find * \( -name '*.yaml' ! \ > - -name 'processed-schema*' ! \ > - -name '*.example.dt.yaml' \) \ > - )) > +DT_DOCS = $(shell $(find_cmd) | sed -e 's|^$(srctree)/||') > > DT_SCHEMA_FILES ?= $(DT_DOCS) > > -- > 2.20.1 > -- Best Regards Masahiro Yamada