Re: [PATCH 2/2] scripts/dtc: compile separate dtc-yaml

From: Masahiro Yamada
Date: Mon May 04 2020 - 23:05:57 EST


On Tue, May 5, 2020 at 4:15 AM Rob Herring <robh+dt@xxxxxxxxxx> wrote:
>
> On Sun, May 3, 2020 at 9:07 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote:
> >
> > Marek BehÃn reported a case where pkg-config fails to detect the
> > libyaml-dev package, which is presumably a bug of the distro.
> >
> > Irrespective of that, I am not a big fan of pkg-config in the Makefile
> > parse stage. The cost of pkg-config is quite small, but it is evaluated
> > everytime we run make, even when we do 'make mrproper'. This commit
> > changes the Makefile to not rely on pkg-config at all.
>
> I don't really love the solution here... I'm inclined to just make
> libyaml always required. Anyone building dtbs should care about
> validating them. However, there's some dts files sprinkled in the tree
> such as DT unittests and I don't want to break allmodconfig for CI,
> 0-day, etc. Though eventually we may have to.
>
> > The normal build should not require libyaml-dev while we need to compile
> > dtc with libyaml for the schema check.
> >
> > Build two dtc variants:
> >
> > scripts/dtc/dtc for *.dts -> *.dtb
> > scripts/dtc/dtc-yaml for *.dts -> *.dt.yaml
>
> My longer term plan is to integrate the schema checks into dtc. This
> would be some sort of plugin to dtc found or specified at run-time. It
> would eliminate the need for 2 passes of dtc and the 2nd case will go
> away.


OK.



> > --- a/scripts/Makefile.lib
> > +++ b/scripts/Makefile.lib
> > @@ -246,6 +246,7 @@ quiet_cmd_gzip = GZIP $@
> > # DTC
> > # ---------------------------------------------------------------------------
> > DTC ?= $(objtree)/scripts/dtc/dtc
> > +DTC_YAML ?= $(objtree)/scripts/dtc/dtc-yaml
>
> Can we make 'DTC' override both and keep this an internal detail.
>

No. For parallel building *.dtb and *.dt.yaml,
they must be separate instances.


> > +HOSTLDLIBS_dtc-yaml := -lyaml
>
> Does this work for yocto? As we had this before commit 067c650c456e.
> Not clear if this changed for any reason or just 'let's use pkg-config
> everywhere'.
>
> Or is there another way to fix yocto issue and we can just check the
> header exists. I assume yocto needs some prefix in front of
> '/usr/include/yaml.h'?
>

My bad - I missed 067c650c456e

We need pkg-config to deal with yocto.


Sorry, I take back this series.

--
Best Regards
Masahiro Yamada