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

Reply via email to