On Tue, Sep 26, 2017 at 03:31:18PM +0100, Bruce Richardson wrote: > On Tue, Sep 26, 2017 at 11:39:58AM +0200, Tomasz Duszynski wrote: > > Since MRVL NET PMD needs librte_cfgfile to parse QoS configuration file > > link it as the whole library. > > > > Signed-off-by: Jacek Siuda <j...@semihalf.com> > > Signed-off-by: Tomasz Duszynski <t...@semihalf.com> > > --- > > Can you clarify a bit more why this is needed? For a static build, the > cfgfile should be linked in to the after the PMDs, so the dependencies > in the driver should be satisfied in the link. For a dynamic build, the > PMD should depend upon the cfgfile directly, and use it at runtime > appropriately. > Am I missing something? > > /Bruce Hi Bruce,
You are correct, all dependencies in the driver will be satisfied. The reason this change was introduced is that, librte_pmd_mrvl.a contains undefined symbols from librte_cfgfile.a thus linking applications under app/ directory will fail as librte_cfgfile.a comes before librte_pmd_mrvl.a during the linking stage. Linking librte_cfgfile.a with --whole-archive solves the issue. -- - Tomasz DuszyĆski