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: stable@dpdk.org
Reported-by: Luca Boccassi <bluca@debian.org>
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Tested-by: Luca Boccassi <bluca@debian.org>
/****** library defines ********/
+/* compat defines */
+#define RTE_BUILD_SHARED_LIB
+
/* EAL defines */
#define RTE_MAX_MEMSEG_LISTS 128
#define RTE_MAX_MEMSEG_PER_LIST 8192