Commit eb449df8 authored by multrus's avatar multrus
Browse files

Merge branch 'impr_find_unused_symbols' into 'main'

small improvement to script "find_unused_symbols.sh"

See merge request !950
parents 15d38e6c 68b1d8b1
Loading
Loading
Loading
Loading
Loading
+29 −16
Original line number Diff line number Diff line
@@ -31,43 +31,56 @@
#

options=$1
WORKDIR=..
OBJDIR=obj
EXECUTABLES="../IVAS_cod ../IVAS_dec ../IVAS_rend"
EXECUTABLES="${WORKDIR}/IVAS_cod ${WORKDIR}/IVAS_dec ${WORKDIR}/IVAS_rend"

evaluateTables=1
evaluateFunctions=1
compile=1
help=0

if [ $# -gt 0 ]; then
while getopts ":ftnhd:" OPT; do
  case "$OPT" in
    d)
       WORKDIR="${OPTARG}"
       ;;
    f)
       evaluateFunctions=1
       evaluateTables=0
       ;;
    t)
       evaluateFunctions=0
  compile=1
fi

while getopts "ftnh" OPT; do
  case "$OPT" in
    f) evaluateFunctions=1;;
    t) evaluateTables=1;;
    n) compile=0;;
    h) help=1;;
       evaluateTables=1
       ;;
    n)
       compile=0
       ;;
    h)
       help=1
       ;;
    *) # getopts produces error
       exit 1;;
       exit 1
       ;;
  esac
done

if [ $help -ne 0 ]; then
    echo "Usage: $0 [-ftn]"
    echo " where"
    echo "       -d <dir>: set C-code dir (default: ${WORKDIR})"
    echo "       -f: functions only"
    echo "       -t: tables only"
    echo "       -n: no compilation"
    exit 0
fi

# print C-code directory
echo "C-code directory set to ${WORKDIR}"

# build
if [ $compile -ne 0 ]; then
  make -C .. DEBUG=0 STRIP=1 clean all 1>&2
  make -C ${WORKDIR} DEBUG=0 STRIP=1 clean all 1>&2
fi

if [ $evaluateFunctions != 0 ]; then
@@ -75,7 +88,7 @@ if [ $evaluateFunctions != 0 ]; then
  rm -f functions_obj.txt functions_exe.txt 1>&2

  # find all functions in object files
  nm ../${OBJDIR}/*.o | grep "^[0-9a-f]* T " | sed 's/^[0-9a-f]* T //' | sort -u > functions_obj.txt
  nm ${WORKDIR}/${OBJDIR}/*.o | grep "^[0-9a-f]* T " | sed 's/^[0-9a-f]* T //' | sort -u > functions_obj.txt
  # find all symbols in final executables
  nm ${EXECUTABLES} | grep "^[0-9a-f]* T " | sed 's/^[0-9a-f]* T //' | sort -u > functions_exe.txt 

@@ -91,7 +104,7 @@ if [ $evaluateTables -ne 0 ]; then
  rm -f tables_obj.txt tables_exe.txt 1>&2

  # find all functions in object files
  nm ../${OBJDIR}/*.o | grep "^[0-9a-f]* [RD] " | sed 's/^[0-9a-f]* [RD] //' | sort -u > tables_obj.txt
  nm ${WORKDIR}/${OBJDIR}/*.o | grep "^[0-9a-f]* [RD] " | sed 's/^[0-9a-f]* [RD] //' | sort -u > tables_obj.txt
  # find all symbols in final executables
  nm ${EXECUTABLES} | grep "^[0-9a-f]* [RD] " | sed 's/^[0-9a-f]* [RD] //' | sort -u > tables_exe.txt