18c2ecf20Sopenharmony_ci#!/bin/sh
28c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_cioutfile=""
58c2ecf20Sopenharmony_cinow=`date +%s`
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciwhile [ $# -gt 0 ]
88c2ecf20Sopenharmony_cido
98c2ecf20Sopenharmony_ci    case "$1" in
108c2ecf20Sopenharmony_ci        -o)
118c2ecf20Sopenharmony_ci	    outfile="$2"
128c2ecf20Sopenharmony_ci	    shift 2;;
138c2ecf20Sopenharmony_ci	-h)
148c2ecf20Sopenharmony_ci	    echo "usage: $0 [-o outfile] <make options/args>"
158c2ecf20Sopenharmony_ci	    exit 0;;
168c2ecf20Sopenharmony_ci	*)  break;;
178c2ecf20Sopenharmony_ci    esac
188c2ecf20Sopenharmony_cidone
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciif [ -z "$outfile" ]
218c2ecf20Sopenharmony_cithen
228c2ecf20Sopenharmony_ci    outfile=`mktemp --tmpdir stackusage.$$.XXXX`
238c2ecf20Sopenharmony_cifi
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciKCFLAGS="${KCFLAGS} -fstack-usage" make "$@"
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci# Prepend directory name to file names, remove column information,
288c2ecf20Sopenharmony_ci# make file:line/function/size/type properly tab-separated.
298c2ecf20Sopenharmony_cifind . -name '*.su' -newermt "@${now}" -print |                     \
308c2ecf20Sopenharmony_ci    xargs perl -MFile::Basename -pe                                 \
318c2ecf20Sopenharmony_ci        '$d = dirname($ARGV); s#([^:]+:[0-9]+):[0-9]+:#$d/$1\t#;' | \
328c2ecf20Sopenharmony_ci    sort -k3,3nr > "${outfile}"
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ciecho "$0: output written to ${outfile}"
35