From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH] mk: fix acl library static linking Date: Thu, 30 Jun 2016 17:28:27 +0200 Message-ID: <1797205.YMNToqyLHv@xps13> References: <1467285021-103920-1-git-send-email-sergio.gonzalez.monroy@intel.com> <1776198.xo6Bm4C5fO@xps13> <2994f200-70c4-3fe2-5976-fc1799271430@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org To: Sergio Gonzalez Monroy Return-path: Received: from mail-wm0-f53.google.com (mail-wm0-f53.google.com [74.125.82.53]) by dpdk.org (Postfix) with ESMTP id B4D6F374C for ; Thu, 30 Jun 2016 17:36:14 +0200 (CEST) Received: by mail-wm0-f53.google.com with SMTP id f126so227024744wma.1 for ; Thu, 30 Jun 2016 08:36:14 -0700 (PDT) In-Reply-To: <2994f200-70c4-3fe2-5976-fc1799271430@intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 2016-06-30 15:02, Sergio Gonzalez Monroy: > On 30/06/2016 13:44, Thomas Monjalon wrote: > > 2016-06-30 13:04, Sergio Gonzalez Monroy: > >> On 30/06/2016 12:38, Thomas Monjalon wrote: > >>> Does it need to be commented in rte.app.mk? > >>> The other libs are in whole-archive to support dlopen of drivers. > >>> But the problem here is not because of a driver use. > >> There seem to be a bunch of libraries under --whole-archive scope that > >> are not > >> PMDs, ie. cfgfile, cmdline... > >> > >> What is the criteria? > > The criteria is a bit vague. We must try to include only libs which can > > be used by a driver. > > cmdline should probably not be there. > > Does it make sense to use cfgfile in a driver? maybe yes. > > So as it is, ACL autotest is broken when building static libs > (non-combined). I think the --whole-archive option must be set specifically for ACL with a comment explaining it is required because of weak functions: # librte_acl needs --whole-archive because of weak functions _LDLIBS-$(CONFIG_RTE_LIBRTE_ACL) += --whole-archive -lrte_acl --no-whole-archive > For combined libs we usually wrap libdpdk.a with --whole-archive, thus it is > not an issue. > > Just thinking a bit more about the 'dlopen of drivers' case you > mentioned before, > shouldn't the driver have proper dependencies and therefore need shared > DPDK libraries? It is possible to build a .so, without any DT_NEEDED entries, which will find the required symbols in the static linked binary. > What does happen if binary/app and driver are built against different > library versions? Bad things :) > Where does it say that we do support this use case? It is maybe not written. But I know it is used by people wanting to load some PMD.so on demand while having the rest statically compiled. I agree it needs to be documented and probably better managed and tested.