If the 'PKG_CONFIG_PATH' is set in the environment before script run, 32 bit still uses that value for 64-bits libraries.
>From the build log: " Using DPDK_TARGET i386-pc-linux-gnu meson -Dexamples=l3fwd --buildtype=debugoptimized --werror -Dc_args=-m32 -Dc_link_args=-m32 /tmp/dpdk_maintain/self/dpdk/devtools/.. ./build-32b ... Using 'PKG_CONFIG_PATH' from environment with value: '/usr/local/lib64/pkgconfig/ " This causes build error when linking with the found libraries. Reproduced with 'librte_bpf' which only has 64 bit installed but still enables building 'af_xdp' and link fails. To fix this, using default 'PKG_CONFIG_PATH' variable unless 'CUSTOM_PKG_CONFIG_PATH' set, and set the 'CUSTOM_PKG_CONFIG_PATH' for 32 bit build. Fixes: 9b83106d8784 ("devtools: test 32-bit build") Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com> --- Cc: Bruce Richardson <bruce.richard...@intel.com> Cc: Thomas Monjalon <tho...@monjalon.net> v2: * Enable overwriting default 'PKG_CONFIG_PATH' value --- devtools/test-meson-builds.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh index 0c95d1cc98..29aed9ac84 100755 --- a/devtools/test-meson-builds.sh +++ b/devtools/test-meson-builds.sh @@ -53,7 +53,11 @@ load_env () # <target compiler> { targetcc=$1 export PATH=$default_path - export PKG_CONFIG_PATH=$default_pkgpath + if [ -n "$CUSTOM_PKG_CONFIG_PATH" ]; then + export PKG_CONFIG_PATH=$CUSTOM_PKG_CONFIG_PATH + else + export PKG_CONFIG_PATH=$default_pkgpath + fi export CPPFLAGS=$default_cppflags export CFLAGS=$default_cflags export LDFLAGS=$default_ldflags @@ -226,10 +230,12 @@ if check_cc_flags '-m32' ; then # 32-bit pkgconfig on RHEL/Fedora (lib vs lib64) export PKG_CONFIG_LIBDIR='/usr/lib/pkgconfig' fi + export CUSTOM_PKG_CONFIG_PATH=$PKG_CONFIG_LIBDIR target_override='i386-pc-linux-gnu' build build-32b cc -Dc_args='-m32' -Dc_link_args='-m32' target_override= unset PKG_CONFIG_LIBDIR + unset CUSTOM_PKG_CONFIG_PATH fi # x86 MinGW -- 2.26.2