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

Reply via email to