From: David Marchand Date: Mon, 12 Aug 2019 07:02:28 +0000 (+0200) Subject: buildtools: make experimental symbol check lighter X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=35860849cf13402cf4ed821f986f3f7720bf5046 buildtools: make experimental symbol check lighter Dumping every object file for every symbol is too heavy. Use a temporary storage. Before: $ rm -rf master && make defconfig O=master $ time make EXTRA_CFLAGS=-g O=master [...] real 2m24.063s user 1m16.985s sys 1m46.372s After: $ rm -rf master && make defconfig O=master $ time make EXTRA_CFLAGS=-g O=master [...] real 1m37.110s user 0m49.417s sys 0m51.803s Signed-off-by: David Marchand Acked-by: Neil Horman --- diff --git a/buildtools/check-experimental-syms.sh b/buildtools/check-experimental-syms.sh index 0f6c62dbed..47a06fcc63 100755 --- a/buildtools/check-experimental-syms.sh +++ b/buildtools/check-experimental-syms.sh @@ -18,14 +18,15 @@ then exit 0 fi +DUMPFILE=$(mktemp -t dpdk.${0##*/}.XXX.objdump) +trap 'rm -f "$DUMPFILE"' EXIT +objdump -t $OBJFILE >$DUMPFILE + ret=0 for SYM in `$LIST_SYMBOL -S EXPERIMENTAL $MAPFILE` do - objdump -t $OBJFILE | grep -q "\.text.*$SYM$" - IN_TEXT=$? - objdump -t $OBJFILE | grep -q "\.text\.experimental.*$SYM$" - IN_EXP=$? - if [ $IN_TEXT -eq 0 -a $IN_EXP -ne 0 ] + if grep -q "\.text.*$SYM$" $DUMPFILE && + ! grep -q "\.text\.experimental.*$SYM$" $DUMPFILE then cat >&2 <<- END_OF_MESSAGE $SYM is not flagged as experimental @@ -37,11 +38,11 @@ do done # Filter out symbols suffixed with a . for icc -for SYM in `objdump -t $OBJFILE |awk '{ +for SYM in `awk '{ if ($2 != "l" && $4 == ".text.experimental" && !($NF ~ /\.$/)) { print $NF } -}'` +}' $DUMPFILE` do $LIST_SYMBOL -S EXPERIMENTAL -s $SYM -q $MAPFILE || { cat >&2 <<- END_OF_MESSAGE