From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH] mk: fix underlinking issues of most librte libraries Date: Tue, 07 Jun 2016 10:23:25 +0200 Message-ID: <2002436.ZXkkWWzaid@xps13> References: <7920424.umDpp4ukym@xps13> <78bbf74c-9621-9094-a280-76ed9fc88393@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: Christian Ehrhardt , dev@dpdk.org To: Panu Matilainen Return-path: Received: from mail-wm0-f43.google.com (mail-wm0-f43.google.com [74.125.82.43]) by dpdk.org (Postfix) with ESMTP id 7860391C2 for ; Tue, 7 Jun 2016 10:23:27 +0200 (CEST) Received: by mail-wm0-f43.google.com with SMTP id k204so57797780wmk.0 for ; Tue, 07 Jun 2016 01:23:27 -0700 (PDT) In-Reply-To: <78bbf74c-9621-9094-a280-76ed9fc88393@redhat.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-05-24 12:56, Panu Matilainen: > On 05/20/2016 08:08 PM, Thomas Monjalon wrote: > > 2016-05-20 18:50, Christian Ehrhardt: > >> The individual libraries have various cross dependencies. > >> This is already refelcted in the DEPDIR dependency, but not yet in > >> proper DT_NEEDED flags in the .so's. > >> This adds the -l flags so that is properly stored in the .so's ELF > >> headers. > > > > Why not filling LDLIBS by parsing DEPDIRS-y in rte.lib.mk? > > > > A fair question :) The thought has passed my mind too, but I thought > it'd be too messy with differing library vs directory names and other > exceptions. But in reality manually maintained separate LDLIBS is only > going to get out of sync sooner or later, and turns out its not that bad > anyway: > > diff --git a/mk/rte.lib.mk b/mk/rte.lib.mk > index b420280..88b4e98 100644 > --- a/mk/rte.lib.mk > +++ b/mk/rte.lib.mk > @@ -77,6 +77,12 @@ else > _CPU_LDFLAGS := $(CPU_LDFLAGS) > endif > > +# Translate DEPDIRS-y into LDLIBS > +IGNORE_DEPS = -lrte_eal/% -lrte_net -lrte_compat We need some comments to explain why they are ignored. > +_LDDIRS = $(subst librte_ether,libethdev,$(DEPDIRS-y)) > +_LDDEPS = $(subst lib/lib,-l,$(_LDDIRS)) > +LDLIBS += $(filter-out $(IGNORE_DEPS), $(_LDDEPS)) > I'm also sure somebody more familiar with gmake could improve it, but it > seems to work quite fine here. I'll wait a bit to see if there are other > suggestions before sending it as a proper patch. I'm familiar with gmake and I do not think it can be improved more ;) Please send a patch. Thanks