Received: by 2002:ac0:e350:0:0:0:0:0 with SMTP id g16csp91012imn; Fri, 29 Jul 2022 00:09:18 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tkyxd/yCNUaqlnQYc4wnKZkUOa3oMhjtd2CEr7Dax5Ob7zPh4H7IZj7edbEXO/5KBYXLyO X-Received: by 2002:a17:907:9809:b0:72f:817:d433 with SMTP id ji9-20020a170907980900b0072f0817d433mr1905246ejc.483.1659078558703; Fri, 29 Jul 2022 00:09:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1659078558; cv=none; d=google.com; s=arc-20160816; b=qrwQPAhLGPriQyvwyyZMfK2FuYn7JO/Yd1UYU2XyPo7N5s1RzzoxinzBBK542x7qWn u6fcp8ABpkPeAyrE6jdsGWnAemA44klMWk1Vh9vm2rW2cDTjhuw+ZQiHE9Q6UA4GYaqw A39Xr4QFD+MXowyJpPuvZTqgmyMJnrqewpcyY1vyOQs267wC7bkJNQTUmDRsa1CJhnD3 DSNb9NtuZDOE01/vIrvrRodHexT994j3ZfHm2HZ0/PLYcMJvrQwl3A3GP5H6LorciKkK 54dlzIDkghOfMabXbmF0vBVTsWA4/oGuXVPdogyzw/6dWoJhOLv5CKqv/wPCrHF4mboW dDGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature:dkim-filter; bh=zgcVv9ou1RtF1Lk7IdDqlk85KCCiF+CiJyanFd0uOSk=; b=ZjvYX2tiVPhpfhsmq0AH3Ie1kaAjKsQLvuea+oCVQguhVx+Ak6edvUYDyxUsolZbwf S+4KkxOmHQmZ5R6ZMlHjwQGkPlMB/QVrytgcwMsy4V77FGmrMx7Dfu2dsNZRj6v4Hiwv 9JtFJGWR9a9CFssElUvw5WtfPvARLLsAmX0IWL52is1Gf1+/O9UOZ5MSl1hdUp/A4gN+ utqxZU2nbqlYzCl8Q0pmOpZ/jQqIU25EtMe/Q9yhjUODLTwRhAPv0r28mSxa8woXeOuA R5eEKEQyuEX+LeuDZ/D6tF7MoztFK13HpjbiBrYw6pZS+HNgXTNJW5kmF/kkaSd9b56Y Y4QQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=SdByZfjX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id hc30-20020a170907169e00b0072f0a99a62bsi2797970ejc.143.2022.07.29.00.08.53; Fri, 29 Jul 2022 00:09:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@nifty.com header.s=dec2015msa header.b=SdByZfjX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 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 S234694AbiG2HFY (ORCPT + 99 others); Fri, 29 Jul 2022 03:05:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51490 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232555AbiG2HFK (ORCPT ); Fri, 29 Jul 2022 03:05:10 -0400 Received: from conssluserg-04.nifty.com (conssluserg-04.nifty.com [210.131.2.83]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6DF1E804B5; Fri, 29 Jul 2022 00:05:05 -0700 (PDT) Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (authenticated) by conssluserg-04.nifty.com with ESMTP id 26T74ixh006854; Fri, 29 Jul 2022 16:04:45 +0900 DKIM-Filter: OpenDKIM Filter v2.10.3 conssluserg-04.nifty.com 26T74ixh006854 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nifty.com; s=dec2015msa; t=1659078285; bh=zgcVv9ou1RtF1Lk7IdDqlk85KCCiF+CiJyanFd0uOSk=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=SdByZfjXpf0pNYUp54aHfa77D/Ec4GTD5+bpn7mjtH5/3OV3ic1nnleP4c70DkZvY OyzKSB8BEd3gTU5RqWr7YCh/MOkMwgF/IEZRY9j0iyhReqZupNOyj0WdhyCD+hoyFR PlZf4AgoxZhWuMxg2VpyRO1QHONQ9zx+SI5+3fc9waLFGqpQjMv6bc2ayLgJKHmBk5 RobSY9dsbY0V6V8O5MLBpAmXaAjINhod23Ykz2mJwhaF2adVMgf7a/vWGExY+hfLBq XAEaJhA8V7fBcKbhrVocrTt9tJQTmZrfSwL4K1Wdbw5TRB6L95k0GJEmV3kDK+Rvxx KClzS7lTp1Dlw== X-Nifty-SrcIP: [209.85.221.44] Received: by mail-wr1-f44.google.com with SMTP id h8so4892625wrw.1; Fri, 29 Jul 2022 00:04:45 -0700 (PDT) X-Gm-Message-State: ACgBeo3aJX0Q3DXuZSOrIsAOtt9vcl/IkpzPKPfx/o6sSKd5a7TnNAO+ KFqKTSngtWGvnWM1FcGIKBTOgKejAH9W7zjji80= X-Received: by 2002:adf:d1e2:0:b0:21d:d40b:d816 with SMTP id g2-20020adfd1e2000000b0021dd40bd816mr1352131wrd.682.1659078283592; Fri, 29 Jul 2022 00:04:43 -0700 (PDT) MIME-Version: 1.0 References: <20220727100615.638072-1-dmitry.baryshkov@linaro.org> In-Reply-To: From: Masahiro Yamada Date: Fri, 29 Jul 2022 16:03:43 +0900 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH] kbuild: take into account DT_SCHEMA_FILES changes while checking dtbs To: Dmitry Baryshkov Cc: Rob Herring , Michal Marek , Nick Desaulniers , Linux Kbuild mailing list , "linux-kernel@vger.kernel.org" , Krzysztof Kozlowski , Bjorn Andersson , linux-arm-msm Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_SOFTFAIL autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 29, 2022 at 3:53 PM Dmitry Baryshkov wrote: > > On Fri, 29 Jul 2022 at 08:55, Masahiro Yamada wrote: > > > > On Thu, Jul 28, 2022 at 2:36 AM Rob Herring wrote: > > > > > > On Wed, Jul 27, 2022 at 4:06 AM Dmitry Baryshkov > > > wrote: > > > > > > > > It is useful to be able to recheck dtbs files against a limited set of > > > > DT schema files. This can be accomplished by using differnt > > > > DT_SCHEMA_FILES argument values while rerunning make dtbs_check. However > > > > for some reason if_changed_rule doesn't pick up the rule_dtc changes > > > > (and doesn't retrigger the build). > > > > > > > > Fix this by changing if_changed_rule to if_changed_dep and squashing DTC > > > > and dt-validate into a single new command. Then if_changed_dep triggers > > > > on DT_SCHEMA_FILES changes and reruns the build/check. > > > > > > > > Signed-off-by: Dmitry Baryshkov > > > > --- > > > > scripts/Makefile.lib | 14 ++++++-------- > > > > 1 file changed, 6 insertions(+), 8 deletions(-) > > > > > > > > diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib > > > > index c88b98b5dc44..3df470289382 100644 > > > > --- a/scripts/Makefile.lib > > > > +++ b/scripts/Makefile.lib > > > > @@ -383,17 +383,15 @@ DT_CHECKER_FLAGS ?= $(if $(DT_SCHEMA_FILES),-l $(DT_SCHEMA_FILES),-m) > > > > DT_BINDING_DIR := Documentation/devicetree/bindings > > > > DT_TMP_SCHEMA := $(objtree)/$(DT_BINDING_DIR)/processed-schema.json > > > > > > > > -quiet_cmd_dtb_check = CHECK $@ > > > > - cmd_dtb_check = $(DT_CHECKER) $(DT_CHECKER_FLAGS) -u $(srctree)/$(DT_BINDING_DIR) -p $(DT_TMP_SCHEMA) $@ || true > > > > +quiet_cmd_dtb = DTC/CHECK $@ > > > > > > This is supposed to be 7 chars or less. DTCCHK or DTC_CHK perhaps. Or > > > always do just 'DTC'. I can fixup when applying. > > > > > > I'll give it a few days for other comments. > > > > > > > > When you change DT_SCHEMA_FILES, re-running dt-validate should be enough. > > You do not need to re-run dtc. > > > > I guess the strangeness comes from the fact that you are trying to do the > > two different things in a single rule. > > The issue is that with the current rules the dt-validate isn't > re-executed on DT_SCHEMA_FILES changes. Thus comes my proposal. Correct. What I said is like this. # touch the timestamp file, %.dtb.checked $(obj)/%.dtb.checked: $(obj)/%.dtb $(DT_TMP_SCHEMA) FORCE $(call if_changed_rule,dtb_check) $(obj)/%.dtb: $(src)/%.dts $(DTC) $FORCE $(call if_changed_rule,dtc) $(obj)/%.dtbo: $(src)/%.dts $(DTC) FORCE $(call if_changed_dep,dtc) With the dtc/check split, we can avoid unneeded regeneration of %.dtb when DT_TMP_SCHEMA or DT_SCHEMA_FILES is changed. One drawback is we track %.dtb.checked and and %.dtb separately, so something like 53182e81f47d4ea0c727c49ad23cb782173ab849 may come back. BTW, we do not check %.dtbo, why? At least, 53182e81f47d4ea0c727c49ad23cb782173ab849 was trying to check %.dtbo > -- > With best wishes > Dmitry -- Best Regards Masahiro Yamada