On Thu, Apr 06, 2017 at 04:48:11PM +0200, Thomas Monjalon wrote: > 2017-04-06 16:14, Olivier Matz: > > I get the following error when linking the test application: > > build/lib/librte_pmd_thunderx_nicvf.a(nicvf_hw.o): > > In function `nicvf_qsize_regbit': > > drivers/net/thunderx/base/nicvf_hw.c:451: undefined reference to `log2' > > build/lib/librte_pmd_thunderx_nicvf.a(nicvf_hw.o): > > In function `nicvf_rss_reta_update': > > drivers/net/thunderx/base/nicvf_hw.c:804: undefined reference to `log2' > > build/lib/librte_pmd_thunderx_nicvf.a(nicvf_hw.o): > > In function `nicvf_rss_reta_query': > > drivers/net/thunderx/base/nicvf_hw.c:825: undefined reference to `log2' > > > > While I don't know why it does not happen for a default build, the error > > can be explained. The link command line is: > > > > gcc -o test ... *.o ... -Wl,-lm ... -Wl,-lrte_pmd_thunderx_nicvf ... > > > > rte_pmd_thunderx_nicvf needs the math library, and it should be > > added after. This is not the case because the test application also > > adds the math library. > > > > The makefile already filters the libraries, but it keeps the first > > occurrence of the lib. Instead, the last one should be kept. > > > > Fixes: edf4d331dcdb ("mk: eliminate duplicates from libraries list") > > > > Cc: sta...@dpdk.org > > Signed-off-by: Olivier Matz <olivier.m...@6wind.com> > > Acked-by: Thomas Monjalon <thomas.monja...@6wind.com> > > It is a really nice Makefile recursive function :) >
"nice Makefile recursive function" I recognise those words individually, but having them together just doesn't make any sense :-)