From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from statler.emutex.com (unknown [92.51.199.138]) by dpdk.org (Postfix) with ESMTP id B6689C426 for ; Wed, 21 Oct 2015 18:30:04 +0200 (CEST) Received: from [10.10.68.124] by statler.emutex.com with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1ZowH3-0005V0-1A; Wed, 21 Oct 2015 17:30:01 +0100 To: Panu Matilainen , dev@dpdk.org References: From: Nicolas Pernas Maradei Message-ID: <5627BD88.7000300@emutex.com> Date: Wed, 21 Oct 2015 17:30:00 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH] drivers: fix shared library dependencies to external libraries X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Oct 2015 16:30:04 -0000 Hi, Are those the only two libraries with external dependencies? I took a quick look to the rte.app.mk file and there seem to be some others like -lfuse and -lnuma. Would it be possible to move those to their specific Makefiles as well? Thanks, Nico. On 10/21/2015 03:18 PM, Panu Matilainen wrote: > Similar to commit 113c8e13c4201eee207723571f83aaf285277d75, but > for bnx2x and pcap 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. > > Signed-off-by: Panu Matilainen > --- > drivers/net/bnx2x/Makefile | 1 + > drivers/net/pcap/Makefile | 1 + > mk/rte.app.mk | 5 ++--- > 3 files changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/bnx2x/Makefile b/drivers/net/bnx2x/Makefile > index 87f31b6..d895d8c 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 48be913..b41d8a2 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/mk/rte.app.mk b/mk/rte.app.mk > index 9e1909e..c0d574f 100644 > --- a/mk/rte.app.mk > +++ b/mk/rte.app.mk > @@ -90,7 +90,6 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lrte_vhost > > endif # ! CONFIG_RTE_BUILD_COMBINE_LIBS > > -_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += -lpcap > > ifeq ($(CONFIG_RTE_LIBRTE_VHOST_NUMA),y) > _LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lnuma > @@ -101,11 +100,11 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lfuse > endif > > ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),n) > +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += -lpcap > +_LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += -lz > _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += -libverbs > endif # ! CONFIG_RTE_BUILD_SHARED_LIBS > > -_LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += -lz > - > _LDLIBS-y += --start-group > > ifeq ($(CONFIG_RTE_BUILD_COMBINE_LIBS),n)