Rename generate_codesize_stats.sh to extract_codesize_stats.sh
This commit is contained in:
parent
275e5bfb9b
commit
b4d8fab27e
2 changed files with 6 additions and 6 deletions
|
@ -1,123 +0,0 @@
|
|||
#!/bin/sh
|
||||
# generate_codesize_stats.sh
|
||||
#
|
||||
# This file is part of mbed TLS (https://tls.mbed.org)
|
||||
#
|
||||
# Copyright (c) 2019, ARM Limited, All Rights Reserved
|
||||
#
|
||||
# Purpose
|
||||
#
|
||||
# Generate static memory usage statistics for an Mbed TLS build.
|
||||
#
|
||||
|
||||
set -eu
|
||||
|
||||
if [ -d include/mbedtls ]; then :; else
|
||||
echo "$0: must be run from root" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if grep -i cmake Makefile >/dev/null; then
|
||||
echo "$0: not compatible with cmake" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BUILD_DIR="./library"
|
||||
|
||||
LIBFILES=$( ls $BUILD_DIR/*.a )
|
||||
OBJFILES=$( ls $BUILD_DIR/*.o )
|
||||
|
||||
SUMMARY_ONLY=0
|
||||
LIMIT=9999
|
||||
|
||||
print_usage() {
|
||||
echo "\nExtract static memory usage statistics for an Mbed TLS build.\n"
|
||||
echo "Usage: $0 [options]"
|
||||
echo " --files\tGenerate per-file code-size statistics."
|
||||
echo " --syms\tGenerate per-symbol code-size statistics."
|
||||
echo " -l|--limit num\tPrint only the largest 'num' symbols of the given type. (Default: $LIMIT) "
|
||||
echo " -h|--help\tPrint this help."
|
||||
echo " -d|--dir=BUILD_DIR\tThe build directory containing the 'library' folder (default: ${BUILD_DIR})"
|
||||
}
|
||||
|
||||
get_options() {
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
-d|--dir)
|
||||
shift; BUILD_DIR=$1
|
||||
;;
|
||||
-h|--help)
|
||||
print_usage
|
||||
exit 0
|
||||
;;
|
||||
--files)
|
||||
FILE_STATS=1
|
||||
;;
|
||||
--syms)
|
||||
SYM_STATS=1
|
||||
;;
|
||||
-l|--limit)
|
||||
shift; LIMIT=$1
|
||||
;;
|
||||
-n|--name)
|
||||
shift; name=$1
|
||||
;;
|
||||
-i|--info)
|
||||
shift; info=$1
|
||||
;;
|
||||
*)
|
||||
echo "Unknown argument: $1"
|
||||
print_usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
FILE_STATS=0
|
||||
SYM_STATS=0
|
||||
name="unnamed"
|
||||
info="noinfo"
|
||||
get_options "$@"
|
||||
|
||||
date=$( date +%Y-%m-%d-%H-%M-%S )
|
||||
|
||||
report_syms() {
|
||||
file=$(basename $1)
|
||||
type=$2
|
||||
stat=$(nm --line-numbers --radix=d --size-sort --reverse $1 |
|
||||
grep " [$3] " |
|
||||
sort --reverse |
|
||||
head -n $LIMIT |
|
||||
awk -v type="$type" -v info="$info" -v name="$name" -v date="$date" -v file="$file" \
|
||||
'{ printf( "%10s %42s %12s %20s %8s %6d %s\n", date, name, info, file, type, $1, $3 ); }')
|
||||
if [ -n "$stat" ]; then
|
||||
echo "$stat"
|
||||
fi
|
||||
}
|
||||
|
||||
# Report static memory usage (RAM and ROM)
|
||||
if [ $FILE_STATS -eq 1 ]; then
|
||||
for file_full in $LIBFILES; do
|
||||
file=$(basename $file_full)
|
||||
size --radix=10 $file_full |
|
||||
sort -s -n -k 1,1 |
|
||||
tail -n +2 |
|
||||
sed -n '/^[ ]*0/!p' |
|
||||
awk -v info="$info" -v name="$name" -v date="$date" '{ printf( "%10s %42s %12s %20s %6d %6d %6d\n", date, name, info, $6, $1, $2, $3 ); }' |
|
||||
awk -v info="$info" -v name="$name" -v date="$date" -v file="$file" '{print $0; sum_text += $5; sum_data += $6; sum_bss += $7}
|
||||
END { printf( "%10s %42s %12s %20s %6d %6d %6d\n\n", date, name, info, file, sum_text, sum_data, sum_bss ); }'
|
||||
done
|
||||
fi
|
||||
|
||||
if [ $SYM_STATS -eq 1 ]; then
|
||||
SYMTYPES="CODE-tT DATA-dD RODATA-rR BSS-bB"
|
||||
for symtype in $SYMTYPES; do
|
||||
type=${symtype%*-*}
|
||||
specifier=${symtype#*-*}
|
||||
for file_full in $OBJFILES; do
|
||||
report_syms "$file_full" $type $specifier
|
||||
done
|
||||
done
|
||||
fi
|
Loading…
Add table
Add a link
Reference in a new issue