From a6e7cd81fa41a9938d4d056e0b6c18adc0b67546 Mon Sep 17 00:00:00 2001 From: Tonghao Zhang Date: Fri, 6 Mar 2020 22:27:19 +0800 Subject: [PATCH] common/mlx5: fix build without dlopen option When setting the CONFIG_RTE_BUILD_SHARED_LIB to y, and build the mlx5 pmd, there is a building error. To fix it, add RTE_IBVERBS_LINK_DLOPEN to include relative codes. mlx5_common.o: In function `mlx5_glue_init': drivers/common/mlx5/mlx5_common.c:324: undefined reference to `dlclose' Fixes: 7b4f1e6bd367 ("common/mlx5: introduce common library") Cc: stable@dpdk.org Signed-off-by: Tonghao Zhang Tested-by: Ali Alnubani Acked-by: Matan Azrad --- drivers/common/mlx5/mlx5_common.c | 10 +++++++--- drivers/net/mlx4/mlx4.c | 4 +++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/common/mlx5/mlx5_common.c b/drivers/common/mlx5/mlx5_common.c index 610fb480b5..9ea56f2ef2 100644 --- a/drivers/common/mlx5/mlx5_common.c +++ b/drivers/common/mlx5/mlx5_common.c @@ -2,10 +2,12 @@ * Copyright 2019 Mellanox Technologies, Ltd */ -#include #include #include #include +#ifdef RTE_IBVERBS_LINK_DLOPEN +#include +#endif #include @@ -209,8 +211,6 @@ mlx5_glue_path(char *buf, size_t size) */ RTE_INIT_PRIO(mlx5_glue_init, CLASS) { - void *handle = NULL; - /* Initialize common log type. */ mlx5_common_logtype = rte_log_register("pmd.common.mlx5"); if (mlx5_common_logtype >= 0) @@ -233,6 +233,8 @@ RTE_INIT_PRIO(mlx5_glue_init, CLASS) /* The glue initialization was done earlier by mlx5 common library. */ #ifdef RTE_IBVERBS_LINK_DLOPEN char glue_path[sizeof(RTE_EAL_PMD_PATH) - 1 + sizeof("-glue")]; + void *handle = NULL; + const char *path[] = { /* * A basic security check is necessary before trusting @@ -320,8 +322,10 @@ RTE_INIT_PRIO(mlx5_glue_init, CLASS) mlx5_glue->fork_init(); return; glue_error: +#ifdef RTE_IBVERBS_LINK_DLOPEN if (handle) dlclose(handle); +#endif DRV_LOG(WARNING, "Cannot initialize MLX5 common due to missing" " run-time dependency on rdma-core libraries (libibverbs," " libmlx5)"); diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index a1dd658176..8e298788af 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4/mlx4.c @@ -8,7 +8,6 @@ * mlx4 driver initialization. */ -#include #include #include #include @@ -18,6 +17,9 @@ #include #include #include +#ifdef RTE_IBVERBS_LINK_DLOPEN +#include +#endif /* Verbs headers do not support -pedantic. */ #ifdef PEDANTIC