[dpdk-dev] [PATCH] mk: fix underlinking issues of most librte libraries

Thomas Monjalon thomas.monjalon at 6wind.com
Tue Jun 7 10:23:25 CEST 2016


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



More information about the dev mailing list