[v2] compat: fix symbol version support with meson

Message ID 20180917081800.8912-1-bruce.richardson@intel.com (mailing list archive)
State Accepted, archived
Headers
Series [v2] compat: fix symbol version support with meson |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK

Commit Message

Bruce Richardson Sept. 17, 2018, 8:18 a.m. UTC
  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>
---
 config/rte_config.h | 3 +++
 1 file changed, 3 insertions(+)
  

Comments

Thomas Monjalon Sept. 17, 2018, 8:42 a.m. UTC | #1
17/09/2018 10:18, Bruce Richardson:
> 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>

Applied, thanks
  

Patch

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