Thread (62 messages) 62 messages, 5 authors, 2016-06-13

Re: [PATCH] mk: fix underlinking issues of most librte libraries

From: Thomas Monjalon <hidden>
Date: 2016-06-07 08:23:27

2016-05-24 12:56, Panu Matilainen:
quoted hunk ↗ jump to hunk
On 05/20/2016 08:08 PM, Thomas Monjalon wrote:
quoted
2016-05-20 18:50, Christian Ehrhardt:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help