09/11/2020 14:00, Ferruh Yigit: > 32 bit still uses the pkgconfig file 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.
I think it is a problem in your configuration. PKG_CONFIG_PATH is not empty before starting the script, right? > To fix updating 'PKG_CONFIG_PATH' and preventing 'load_env' overwrite > it. [...] > 'build-32b' check inside the 'load_env' looks ugly but not sure how to > be sure 'PKG_CONFIG_PATH' set correct. [...] > - export PKG_CONFIG_PATH=$default_pkgpath > + if [ "$targetdir" != "build-32b" ] ; then > + export PKG_CONFIG_PATH=$default_pkgpath > + fi You can reset PKG_CONFIG_PATH in your config file. Something like this: if echo $DPDK_TARGET | grep -q '^i[3-6]86' ; then export PKG_CONFIG_PATH=my32bitlibs/pkgconfig fi We can also discuss why inheriting some default values on script start instead of just resetting them.