Re: [PATCH] dtc: Use pkg-config to locate libyaml

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

 



+Masahiro

On Fri, Jul 12, 2019 at 6:59 AM Pavel Modilaynen
<pavel.modilaynen@xxxxxxxx> wrote:
>
> From: Pavel Modilaynen <pavel.modilaynen@xxxxxxxx>

Sorry for missing this.

> Using Makefile's wildcard with absolute path to detect
> the presence of libyaml results in false-positive
> detection when cross-compiling e.g. in yocto environment.

As this is a host tool, it's not really about cross-compiling, but
sandboxing the host env? IOW, I cross-compile all the time and don't
have an issue.

> The latter results in build error:
> | scripts/dtc/yamltree.o: In function `yaml_propval_int':
> | yamltree.c: undefined reference to `yaml_sequence_start_event_initialize'
> | yamltree.c: undefined reference to `yaml_emitter_emit'
> | yamltree.c: undefined reference to `yaml_scalar_event_initialize'
> ...
> Use pkg-config to locate libyaml to address this scenario.

The reason I didn't use pkg-config in the first place is it adds
another dependency. AIUI, it's only needed for gconfig/xconfig which
are probably not widely used especially for CI. Looks like objtool
needs it too, but that's x86 only though arm64 support is being worked
on. So I guess it is pretty much becoming a requirement.

So I've applied it. I added suppressing stderr in case pkg-config
isn't present.

Rob

>
> Signed-off-by: Pavel Modilaynen <pavel.modilaynen@xxxxxxxx>
> ---
>  scripts/dtc/Makefile | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/dtc/Makefile b/scripts/dtc/Makefile
> index 82160808765c..99d51b665432 100644
> --- a/scripts/dtc/Makefile
> +++ b/scripts/dtc/Makefile
> @@ -11,7 +11,7 @@ dtc-objs      += dtc-lexer.lex.o dtc-parser.tab.o
>  # Source files need to get at the userspace version of libfdt_env.h to compile
>  HOST_EXTRACFLAGS := -I $(srctree)/$(src)/libfdt
>
> -ifeq ($(wildcard /usr/include/yaml.h),)
> +ifeq ($(shell pkg-config --exists yaml-0.1 && echo yes),)
>  ifneq ($(CHECK_DTBS),)
>  $(error dtc needs libyaml for DT schema validation support. \
>         Install the necessary libyaml development package.)
> @@ -19,7 +19,7 @@ endif
>  HOST_EXTRACFLAGS += -DNO_YAML
>  else
>  dtc-objs       += yamltree.o
> -HOSTLDLIBS_dtc := -lyaml
> +HOSTLDLIBS_dtc := $(shell pkg-config yaml-0.1 --libs)
>  endif
>
>  # Generated files need one more search path to include headers in source tree
> --
> 2.11.0
>



[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