From 5f9115e58cc6f304ff4ade694cf5823d32887d1a Mon Sep 17 00:00:00 2001 From: Panu Matilainen Date: Wed, 21 Oct 2015 17:18:27 +0300 Subject: [PATCH] mk: fix shared library dependencies of drivers Similar to commit 113c8e13c4201eee207723571f83aaf285277d75, but for bnx2x, pcap, sze2data and xenvirt PMDs. Requiring applications to know about library internal details like dependencies to external helper libraries is a limitation of static linkage, shared libraries should always know their own dependencies for sane operation. This is especially highlighted with dlopen()'ed items, having applications link against about plugin internal dependencies goes on the side of absurd. Note that linking with a shared combined library still requires to know the internal dependencies. Signed-off-by: Panu Matilainen Signed-off-by: Thomas Monjalon --- drivers/net/bnx2x/Makefile | 1 + drivers/net/pcap/Makefile | 1 + drivers/net/szedata2/Makefile | 1 + drivers/net/xenvirt/Makefile | 1 + mk/rte.app.mk | 12 ++++-------- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/net/bnx2x/Makefile b/drivers/net/bnx2x/Makefile index 87f31b6843..d895d8c233 100644 --- a/drivers/net/bnx2x/Makefile +++ b/drivers/net/bnx2x/Makefile @@ -8,6 +8,7 @@ LIB = librte_pmd_bnx2x.a CFLAGS += -O3 -g CFLAGS += $(WERROR_FLAGS) CFLAGS += -DZLIB_CONST +LDLIBS += -lz EXPORT_MAP := rte_pmd_bnx2x_version.map diff --git a/drivers/net/pcap/Makefile b/drivers/net/pcap/Makefile index 48be913cd0..b41d8a27db 100644 --- a/drivers/net/pcap/Makefile +++ b/drivers/net/pcap/Makefile @@ -39,6 +39,7 @@ LIB = librte_pmd_pcap.a CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) +LDLIBS += -lpcap EXPORT_MAP := rte_pmd_pcap_version.map diff --git a/drivers/net/szedata2/Makefile b/drivers/net/szedata2/Makefile index c3c42e562a..963a8d673c 100644 --- a/drivers/net/szedata2/Makefile +++ b/drivers/net/szedata2/Makefile @@ -38,6 +38,7 @@ LIB = librte_pmd_szedata2.a CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) +LDLIBS += -lsze2 EXPORT_MAP := rte_pmd_szedata2_version.map diff --git a/drivers/net/xenvirt/Makefile b/drivers/net/xenvirt/Makefile index 9c521d5c3e..1d05b71b44 100644 --- a/drivers/net/xenvirt/Makefile +++ b/drivers/net/xenvirt/Makefile @@ -38,6 +38,7 @@ LIB = librte_pmd_xenvirt.a CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) +LDLIBS += -lxenstore EXPORT_MAP := rte_eth_xenvirt_version.map diff --git a/mk/rte.app.mk b/mk/rte.app.mk index 3f568526da..90ec33dd0e 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -90,10 +90,6 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lrte_vhost endif # ! CONFIG_RTE_BUILD_COMBINE_LIBS -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += -lpcap - -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += -lsze2 - ifeq ($(CONFIG_RTE_LIBRTE_VHOST_NUMA),y) _LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lnuma endif @@ -106,13 +102,13 @@ endif # The combined library fails also to store this information. # So linking with static or combined library requires explicit dependencies. ifneq ($(CONFIG_RTE_BUILD_COMBINE_LIBS)$(CONFIG_RTE_BUILD_SHARED_LIB),ny) +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += -lpcap +_LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += -lz _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += -libverbs _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += -libverbs -endif # CONFIG_RTE_BUILD_COMBINE_LIBS or not CONFIG_RTE_BUILD_SHARED_LIBS - -_LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += -lz - +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_SZEDATA2) += -lsze2 _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += -lxenstore +endif # CONFIG_RTE_BUILD_COMBINE_LIBS or not CONFIG_RTE_BUILD_SHARED_LIBS _LDLIBS-y += --start-group -- 2.20.1