Re: [PATCH v2] kbuild: Enable DT schema checks for %.dtb targets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Rob,

On 14/09/21 2:51 am, Rob Herring wrote:
> It is possible to build a single dtb, but not with DT schema validation
> enabled. Enable the schema validation to run for %.dtb and %.dtbo
> targets. Anyone building a dtb for a specific platform *should* pay
> attention to schema warnings.
>
> This could be supported with a separate %.dt.yaml target instead.
> However, the .dt.yaml format is considered an intermediate format and
> could possibly go away at some point if schema checking is integrated
> into dtc. Also, the plan is to enable the schema checks by default once
> platforms are free of warnings, and this is a move in that direction.

Just started building 5.16-rc4 and hit the following error

/usr/src/linux/scripts/dtc/Makefile:23: *** dtc needs libyaml for DT 
schema validation support. Install the necessary libyaml development 
package..  Stop.
make: *** [/usr/src/linux/Makefile:1405: scripts_dtc] Error 2
make: *** Waiting for unfinished jobs....

I tracked it back to this patch and I gather that the "error" is very 
much intended. Fixing it means I need to get a native libyaml into my 
cross toolchain, which is doable but a bit of a hassle. This probably 
affects other meta build systems like buildroot and yocto.

I think I understand what you're getting at but is it possible to have 
some kind of escape hatch to avoid having to add a build time tool 
dependency (or even bundling libyaml next to scripts/dtc)?

I also notice that when I do supply a toolchain with libyaml the build 
times are impacted by a noticable factor.

> Cc: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
> Cc: Tom Rini <trini@xxxxxxxxxxxx>
> Cc: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> Cc: linux-kbuild@xxxxxxxxxxxxxxx
> Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
> ---
> v2:
>   - Also enable schema checks on %.dtbo targets
> ---
>   Makefile | 10 +++++-----
>   1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 7cfe4ff36f44..c57a7657c8dd 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1402,17 +1402,17 @@ endif
>   
>   ifneq ($(dtstree),)
>   
> -%.dtb: include/config/kernel.release scripts_dtc
> -	$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
> +%.dtb: dt_binding_check include/config/kernel.release scripts_dtc
> +	$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ $(dtstree)/$*.dt.yaml
>   
> -%.dtbo: include/config/kernel.release scripts_dtc
> -	$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
> +%.dtbo: dt_binding_check include/config/kernel.release scripts_dtc
> +	$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@ $(dtstree)/$*.dt.yaml
>   
>   PHONY += dtbs dtbs_install dtbs_check
>   dtbs: include/config/kernel.release scripts_dtc
>   	$(Q)$(MAKE) $(build)=$(dtstree)
>   
> -ifneq ($(filter dtbs_check, $(MAKECMDGOALS)),)
> +ifneq ($(filter dtbs_check %.dtb %.dtbo, $(MAKECMDGOALS)),)
>   export CHECK_DTBS=y
>   dtbs: dt_binding_check
>   endif




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux