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.

Reply via email to