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

Christian Ehrhardt christian.ehrhardt at canonical.com
Tue May 24 12:11:58 CEST 2016


Hi Panu,
I already agreed to Thomas on IRC but won't have time until next week.
Thanks for making a patch that does that already - I'll give it a look and
some test on my end next week then.



Christian Ehrhardt
Software Engineer, Ubuntu Server
Canonical Ltd

On Tue, May 24, 2016 at 11:56 AM, Panu Matilainen <pmatilai at redhat.com>
wrote:

> 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
> +_LDDIRS = $(subst librte_ether,libethdev,$(DEPDIRS-y))
> +_LDDEPS = $(subst lib/lib,-l,$(_LDDIRS))
> +LDLIBS += $(filter-out $(IGNORE_DEPS), $(_LDDEPS))
> +
>  O_TO_A = $(AR) crDs $(LIB) $(OBJS-y)
>  O_TO_A_STR = $(subst ','\'',$(O_TO_A)) #'# fix syntax highlight
>  O_TO_A_DISP = $(if $(V),"$(O_TO_A_STR)","  AR $(@)")
>
> 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.
>
>         - Panu -
>


More information about the dev mailing list