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