On Mon, Jul 3, 2017 at 7:04 AM, Dmitry Eremin-Solenikov <dmitry.ereminsoleni...@linaro.org> wrote: > On 03.07.2017 13:34, Savolainen, Petri (Nokia - FI/Espoo) wrote: >>> diff --git a/test/Makefile.inc b/test/Makefile.inc >>> index 1ef2a92c..bf31b374 100644 >>> --- a/test/Makefile.inc >>> +++ b/test/Makefile.inc >>> @@ -4,7 +4,7 @@ LIB = $(top_builddir)/lib >>> #in the following line, the libs using the symbols should come before >>> #the libs containing them! The includer is given a chance to add things >>> #before libodp by setting PRE_LDADD before the inclusion. >>> -LDADD = $(PRE_LDADD) $(LIB)/libodphelper.la $(LIB)/libodp-linux.la >>> +LDADD = $(PRE_LDADD) $(LIB)/libodphelper.la $(LIB)/libodp-linux.la >>> $(DPDK_PMDS) >> >> Application using ODP should only need to add dependency to ODP and helper >> libs. It's not scalable if (all) applications need to know which (all) libs >> an ODP implementation may use internally. > > Applications using shared library don't need to know, what are ODP > dependencies. Deps will be pulled in using .so DT_NEEDED. Static linking > requires knowledge of all dependencies. Usually this will be handled by > pkg-config (See Libs.private) or libtool (which also usually handles > such configuration). Unfortunately DPDK PMDs do not fit into libtool > scheme because of the way they are linked. Libtool doesn't understand > whole -Wl,--whole-archive,... scheme, so it won't include it into > dependencies list. Another possibility would be to create source file, > which pulls in all PMDs detected by configure and link with just -ldpdk.
Didn't Matias post some patches a while back to use --whole-archive for this purpose? See http://patches.opendataplane.org/patch/8237/ > >> I guess this solves some DPDK linking issues, but is there a way to avoid >> explicit dependency to ODP lib internals ? > > Not with DPDK, unfortunately. > > -- > With best wishes > Dmitry