Rasmus Villemoes | 56d4a38 | 2015-08-20 11:53:27 +0200 | [diff] [blame] | 1 | #!/bin/sh |
Greg Kroah-Hartman | b244131 | 2017-11-01 15:07:57 +0100 | [diff] [blame] | 2 | # SPDX-License-Identifier: GPL-2.0 |
Rasmus Villemoes | 56d4a38 | 2015-08-20 11:53:27 +0200 | [diff] [blame] | 3 | |
| 4 | outfile="" |
| 5 | now=`date +%s` |
| 6 | |
| 7 | while [ $# -gt 0 ] |
| 8 | do |
| 9 | case "$1" in |
| 10 | -o) |
| 11 | outfile="$2" |
| 12 | shift 2;; |
| 13 | -h) |
| 14 | echo "usage: $0 [-o outfile] <make options/args>" |
| 15 | exit 0;; |
| 16 | *) break;; |
| 17 | esac |
| 18 | done |
| 19 | |
| 20 | if [ -z "$outfile" ] |
| 21 | then |
| 22 | outfile=`mktemp --tmpdir stackusage.$$.XXXX` |
| 23 | fi |
| 24 | |
| 25 | KCFLAGS="${KCFLAGS} -fstack-usage" make "$@" |
| 26 | |
| 27 | # Prepend directory name to file names, remove column information, |
| 28 | # make file:line/function/size/type properly tab-separated. |
| 29 | find . -name '*.su' -newermt "@${now}" -print | \ |
| 30 | xargs perl -MFile::Basename -pe \ |
| 31 | '$d = dirname($ARGV); s#([^:]+:[0-9]+):[0-9]+:#$d/$1\t#;' | \ |
| 32 | sort -k3,3nr > "${outfile}" |
| 33 | |
| 34 | echo "$0: output written to ${outfile}" |