A compiler can reuse a variable name and prefix it when instrumenting
with coverage.

Example:
$ make defconfig T=x86_64-native-linux-gcc O=master
$ make EXTRA_CFLAGS='--coverage' O=master
[...]
    CC rte_flow.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

$ objdump -t master/build/lib/librte_ethdev/rte_flow.o |grep _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

Protect against this by adding a space character in the pattern.

Fixes: a4bcd61de82d ("buildtools: add script to check experimental API exports")
Cc: sta...@dpdk.org

Reported-by: Andrew Rybchenko <arybche...@solarflare.com>
Signed-off-by: David Marchand <david.march...@redhat.com>
---
 buildtools/check-experimental-syms.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/buildtools/check-experimental-syms.sh 
b/buildtools/check-experimental-syms.sh
index abebb89f12..f3603e5bac 100755
--- a/buildtools/check-experimental-syms.sh
+++ b/buildtools/check-experimental-syms.sh
@@ -25,8 +25,8 @@ objdump -t $OBJFILE >$DUMPFILE
 ret=0
 for SYM in `$LIST_SYMBOL -S EXPERIMENTAL $MAPFILE |cut -d ' ' -f 3`
 do
-       if grep -q "\.text.*$SYM$" $DUMPFILE &&
-               ! grep -q "\.text\.experimental.*$SYM$" $DUMPFILE
+       if grep -q "\.text.*[[:space:]]$SYM$" $DUMPFILE &&
+               ! grep -q "\.text\.experimental.*[[:space:]]$SYM$" $DUMPFILE
        then
                cat >&2 <<- END_OF_MESSAGE
                $SYM is not flagged as experimental
-- 
2.23.0

Reply via email to