For meson builds, the define to enable the symbol version macros in rte_compat.h was missing. This led to symbols being omitted from shared objects. For example, checking rte_distributor.so with objdump and comparing make and meson built versions:
$ objdump -T make-build/lib/librte_distributor.so | grep _flush 0000000000001b60 g DF .text 00000000000000a7 (DPDK_2.0) rte_distributor_flush 0000000000003f10 g DF .text 0000000000000434 DPDK_17.05 rte_distributor_flush $ objdump -T meson-build/lib/librte_distributor.so | grep _flush 0000000000001d50 g DF .text 00000000000000fb DPDK_2.0 rte_distributor_flush Adding in the missing define fixes this. Fixes: 5b9656b157d3 ("lib: build with meson") CC: sta...@dpdk.org Reported-by: Luca Boccassi <bl...@debian.org> Signed-off-by: Bruce Richardson <bruce.richard...@intel.com> Tested-by: Luca Boccassi <bl...@debian.org> --- config/rte_config.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config/rte_config.h b/config/rte_config.h index a8e479774..46775a841 100644 --- a/config/rte_config.h +++ b/config/rte_config.h @@ -20,6 +20,9 @@ /****** library defines ********/ +/* compat defines */ +#define RTE_BUILD_SHARED_LIB + /* EAL defines */ #define RTE_MAX_MEMSEG_LISTS 128 #define RTE_MAX_MEMSEG_PER_LIST 8192 -- 2.17.1