build: fix plugin load on static build
authorOlivier Matz <olivier.matz@6wind.com>
Fri, 18 Dec 2020 13:14:22 +0000 (14:14 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 5 Jan 2021 22:01:36 +0000 (23:01 +0100)
commitb031e13d7f0dc7cba9bc5befe968b67832021a59
tree283e9749cc139ecdb7dc8159f6f7cc14c92f8f56
parentac7c98d04f2c5c8d57c4f87799a669dca9ca9605
build: fix plugin load on static build

When dpdk is compiled as static libraries, it is not possible
to load a plugin from an application. We get the following error:

  EAL: librte_pmd_xxxx.so: undefined symbol: per_lcore__rte_errno

This happens because the dpdk symbols are not exported. Add them to the
dynamic symbol table by using '-Wl,--export-dynamic'. This option was
previously present when compiled with Makefiles, it was introduced in
commit f9a08f650211 ("eal: add support for shared object drivers")

Also add it to the pkg-config file.

Fixes: 16ade738fd0d ("app/testpmd: build with meson")
Fixes: 89f0711f9ddf ("examples: build some samples with meson")
Cc: stable@dpdk.org
Signed-off-by: Olivier Matz <olivier.matz@6wind.com>
Reviewed-by: Bruce Richardson <bruce.richardson@intel.com>
app/meson.build
buildtools/pkg-config/meson.build
examples/meson.build