On Sat, Nov 23, 2019 at 11:24 AM Andrew Rybchenko <arybche...@solarflare.com> wrote: > > Hi, > > I've failed to quickly make a patch to fix it. > > make config T=x86_64-native-linux-gcc O=build_coverage > make -j8 EXTRA_CFLAGS='-ggdb --coverage' EXTRA_LDFLAGS=-lgcov > > results in > > ... > CC ethdev_private.o > CC rte_ethdev.o > CC rte_class_eth.o > CC rte_flow.o > CC rte_tm.o > CC rte_mtr.o > CC ethdev_profile.o > rte_flow_dynf_metadata_offs is not flagged as experimental > but is listed in version map > Please add __rte_experimental to the definition of > rte_flow_dynf_metadata_offs > /home/arybchik/src/dpdk/mk/internal/rte.compile-pre.mk:114: recipe for > target 'rte_flow.o' failed > make[4]: *** [rte_flow.o] Error 1 > > I've manually reproduced it using gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 > but seen it on many different distros.
Oh, good catch. We have a problem in the check script and maybe in the experimental tag. - This rte_flow_dynf_metadata_offs symbol is in .data but gets an associated symbol (seen with rhel7 gcc): $ objdump -t master/build/lib/librte_ethdev/rte_flow.o |grep rte_flow_dynf_metadata_offs 0000000000000000 l F .text.startup 000000000000000a _GLOBAL__sub_I_65535_0_rte_flow_dynf_metadata_offs 0000000000000620 g O .data 0000000000000004 rte_flow_dynf_metadata_offs The script noticed the symbol in text and is complaining about not seeing it in text.experimental. But well, this is a bug as we did not protect for expansion in: if grep -q "\.text.*$SYM$" $DUMPFILE && ! grep -q "\.text\.experimental.*$SYM$" $DUMPFILE I suppose this would do the trick: if grep -q "\.text.*[[:space:]]$SYM$" $DUMPFILE && ! grep -q "\.text\.experimental.*[[:space:]]$SYM$" $DUMPFILE - I don't think variables were considered in the rte_experimental framework: seeing the __rte_experimental macro, I doubt it would work for variables to be put in .text. Do we need a different marker for those? or did I miss something else? Neil? Think we will have to live with this in 19.11... -- David Marchand