From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by dpdk.org (Postfix) with ESMTP id CAA022C15 for ; Tue, 24 Jul 2018 14:56:13 +0200 (CEST) Received: by mail-wr1-f65.google.com with SMTP id h10-v6so4043192wre.6 for ; Tue, 24 Jul 2018 05:56:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=6wind-com.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=FEUgc0vSuq/znGyCom7+FMny89DS4SHQNf0ZmEr+hAA=; b=DyBBAEcSypCIN/xPg1zmxycI4EtzTI/CJZIQ0aRz4V352WbCWIdhrShb8pGwcdemjF zpodu24fiqSS52Jkw7EbfhMiSnfEt50AW/04GgIwb9SWD+djgDZolcm0mXz/lfXe2Ynk 4OFlHKFwDY7a+PrasjMYY9lx1UGL0WU4TgU2e21DX/R0NkmaU2ttl5M+WFvOjjiXjEpn W+PeyOsIZlBBJrfT3NlxBwCg7NRUsJHBb91vvSps9/6y404KsJimcHxb7hRGs+ngYJEv TXJ8CPhiU1LGNxkQAKmMl41DfzpVNnAFNpS+lgVDG22zuK1zB6Fa2klfYD/srqduyIAd UsKg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=FEUgc0vSuq/znGyCom7+FMny89DS4SHQNf0ZmEr+hAA=; b=cgUZB8IoiPF2R68EL7M2Mtr6QyxqaL/9MYg1bjSL5J+66m6ffPD6N4b/XPZO3B/rlf vh2IHnvOiIKbzsAe0koBA5uBiMmtSSXFgmzZiJ2TeppXWZCB5OSpjaDtgfUSwR8LlsL0 r/vTwZp7abNitV+807qdcr601s8qXl8Ei60ImMNb/t2hwGPZsZ5hsVuQ55D6t4EkQ1+y ZfAkDYKVxojCF60pMWZVbOKYUCR9pUH7X67deYWlRL2Yjtop1JjLuY6UDgojPuLARX2q vRXPee9o3pSOm08SqKu9xEP1OTOQzs1kQNzLbhF1regtP4HF0Pxa9Xg9NtJHXRiLhMzy 8KLA== X-Gm-Message-State: AOUpUlHQ54Qnye7iMXBMj5DIU0sb7HkxpisKi7Ji5PvTWChK7tinAUwd 8izEPeSs1mpgu3IZFAxnPGvWtw== X-Google-Smtp-Source: AAOMgpd12hv0jORyKmXvSHlZIR5es06l7uYw8528wwbi7fVmWYB/AzwXdIP3YIMfmmyNqPSOt/3rFA== X-Received: by 2002:adf:9aa3:: with SMTP id a32-v6mr11947699wrc.75.1532436973575; Tue, 24 Jul 2018 05:56:13 -0700 (PDT) Received: from 6wind.com (host.78.145.23.62.rev.coltfrance.com. [62.23.145.78]) by smtp.gmail.com with ESMTPSA id r140-v6sm2199763wmd.27.2018.07.24.05.56.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 24 Jul 2018 05:56:12 -0700 (PDT) Date: Tue, 24 Jul 2018 14:55:56 +0200 From: Adrien Mazarguil To: Shahaf Shuler Cc: =?utf-8?B?TsOpbGlv?= Laranjeiro , "dev@dpdk.org" , Yongseok Koh Message-ID: <20180724125556.GS5211@6wind.com> References: <14690e825609ee181e3cd522302d4788ef436f35.1532424524.git.nelio.laranjeiro@6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Subject: Re: [dpdk-dev] [PATCH] mk: fix application compilation with lmnl and mlx5 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Jul 2018 12:56:14 -0000 On Tue, Jul 24, 2018 at 11:21:52AM +0000, Shahaf Shuler wrote: > Tuesday, July 24, 2018 12:29 PM, Nelio Laranjeiro: > > Subject: [PATCH] mk: fix application compilation with lmnl and mlx5 > > > > When Mellanox MLX5 PMD is compiled with > > CONFIG_RTE_LIBRTE_MLX5_DLOPEN_DEPS=y, the external dependency on > > libmln is missing. > > > > Fixes: 4d5cce06231a ("net/mlx5: lay groundwork for switch offloads") > > Cc: adrien.mazarguil@6wind.com > > > > Signed-off-by: Nelio Laranjeiro > > --- > > mk/rte.app.mk | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/mk/rte.app.mk b/mk/rte.app.mk index f4d28c2da..ff39d37aa > > 100644 > > --- a/mk/rte.app.mk > > +++ b/mk/rte.app.mk > > @@ -149,7 +149,7 @@ else > > _LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += -lrte_pmd_mlx4 - > > libverbs -lmlx4 > > endif > > ifeq ($(CONFIG_RTE_LIBRTE_MLX5_DLOPEN_DEPS),y) > > -_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += -lrte_pmd_mlx5 -ldl > > +_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX5_PMD) += -lrte_pmd_mlx5 -ldl - > > lmnl > > This issue raise some more basic question. > The DLOPEN mode was introduced to run in systems which don't have verbs/mlx5 libs installed, because those were the only dependencies for the PMD back then. > Now we have the libmnl, which is external dependency just like rdma-core, and following your fix, hard linked also in case of DLOPEN option. > It means the whole DPDK binary/lib will be depended on libmnl and this is not what we want with DLOPEN. > > Can we consider different options: > 1. always statically link libmnl > 2. dlopen libmnl just like we do for verbs/mlx5 Regarding 2, unlike rdma-core/MLNX_OFED, libmnl should be available pretty much everywhere iproute2 can be found. The minimal version supported (1.0.3) was released in 2012. Using the glue approach for such a small library seems overkill; should we choose this path, we must also consider to get rid of it entirely since doing so would require more glue code than what mlx5 needs from this library. So with the current approach, either the application or the PMD inherits a dependency to libmnl, depending on whether CONFIG_RTE_BUILD_SHARED_LIB is respectively disabled or enabled. If disabled, applications that want static linkage can specify -static as part of their compilation flags to let the compiler automatically look for libmnl.a as needed. To put this in perspective, this also applies to all other dependencies it will collect while compiling DPDK (libz, libdl, libpcap, libnuma to name a few). In my opinion, the purpose of *_DLOPEN_DEPS is to deal with large, nonstandard libraries where versioning issues are commonplace. This doesn't apply to libmnl, which shouldn't be a maintenance nightmare to package maintainers. I suggest to leave things as is. -- Adrien Mazarguil 6WIND