27/10/2018 04:19, Van Haaren, Harry: > From: Thomas Monjalon [mailto:tho...@monjalon.net] > > 27/10/2018 01:59, Harry van Haaren: > > > --- a/mk/rte.vars.mk > > > +++ b/mk/rte.vars.mk > > > +JANSSON := $(shell pkg-config --exists jansson; echo $$?) > > > +ifneq ($(JANSSON),0) > > > +$(warning Jansson not found, disabling RTE_LIBRTE_TELEMETRY) > > > +CONFIG_RTE_LIBRTE_TELEMETRY = n > > > +endif > > > > It fails for cross-compilation. > > Example: > > When compiling i686 on x86_64 host, no error with > > pkg-config --exists jansson > > but fails when linking: > > /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux- > > gnu/8.2.1/../../../libjansson.so when searching for -ljansson > > /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux- > > gnu/8.2.1/../../../libjansson.a when searching for -ljansson > > /usr/bin/ld: skipping incompatible /usr/lib/libjansson.so when searching > > for -ljansson > > /usr/bin/ld: skipping incompatible /usr/lib/libjansson.a when searching > > for -ljansson > > /usr/bin/ld: cannot find -ljansson > > > > Note: there is the same issue with examples/vm_power_manager/Makefile > > > > I start thinking it is not reasonnable to enable an optional dependency > > in our Makefiles. Perhaps the only solution is to use meson... > > Ouch, yes if x86_64 pkg-config finds the available library, and it is not > available in its i686 form, or other combinations thereof, things become > another-level of complex.
On ArchLinux, I have pkg-config-32 for i686 libs. And for true cross-compilation with sysroot, some environment variables are required. See this doc: https://autotools.io/pkgconfig/cross-compiling.html > Indeed Meson is (good | getting better) at detecting these things, Bruce > knows more IIRC :) > > @Thomas, for this release I propose to rework to use CONFIG=N as default for > Make, and allow packagers to enable if they wish. Is that a good next-step? Yes it looks reasonnable disabling telemetry by default in make case.