If libbsd is detected by the DPDK build system, DPDK does not provide
implementations for strlcpy and dynamically link against the one
provided by libbsd. When the DPDK plugin is loaded by VPP, a crash
occurs because libbsd is not loaded by VPP.
Type: fix
Change-Id: Ib691bbe27edcf0f6f0a3d39952e439027cef72cb
Signed-off-by: Mohammed Hawari <mohammed@hawari.fr>
(cherry picked from commit
1f799bc3cb7a3826395e544cafe587174393e2f0)
# limitations under the License.
DPDK_PKTMBUF_HEADROOM ?= 128
# limitations under the License.
DPDK_PKTMBUF_HEADROOM ?= 128
DPDK_DEBUG ?= n
DPDK_MLX4_PMD ?= n
DPDK_MLX5_PMD ?= n
DPDK_DEBUG ?= n
DPDK_MLX4_PMD ?= n
DPDK_MLX5_PMD ?= n
+define dpdk_config_def
+if [[ "$(DPDK_$(1))" == "y" ]]; then \
+ if ! grep -q "RTE_$(1)" $(dpdk_build_dir)/rte_build_config.h \
+ $(dpdk_src_dir)/config/rte_config.h ; then \
+ echo '$(HASH)define RTE_$(1) 1' \
+ >> $(dpdk_build_dir)/rte_build_config.h ; \
+ fi; \
+elif [[ "$(DPDK_$(1))" == "n" ]]; then \
+ sed -i '/$(HASH)define RTE_$(1) .*/d' $(dpdk_build_dir)/rte_build_config.h \
+ $(dpdk_src_dir)/config/rte_config.h ; \
+fi
+endef
+
DPDK_MESON_ARGS = \
--default-library static \
--libdir lib \
DPDK_MESON_ARGS = \
--default-library static \
--libdir lib \
deactivate && \
echo "DPDK post meson configuration" && \
echo "Altering rte_build_config.h" && \
deactivate && \
echo "DPDK post meson configuration" && \
echo "Altering rte_build_config.h" && \
- $(call dpdk_config,PKTMBUF_HEADROOM)
+ $(call dpdk_config,PKTMBUF_HEADROOM) && \
+ $(call dpdk_config_def,USE_LIBBSD)
endef
define dpdk_build_cmds
endef
define dpdk_build_cmds