On Mon, Nov 09, 2020 at 01:24:28PM +0000, Ferruh Yigit wrote: > On 11/9/2020 1:19 PM, Thomas Monjalon wrote: > > 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. > > > > Yes I have 'PKG_CONFIG_PATH' set in my environment before running script, if > it expects it to be not set, +1 to reset it at the beginning of the script.
+1 to this, because we can't have a global PKG_CONFIG_PATH for both 32-bit and 64-bit builds. /Bruce