linux/scripts/stackusage
<<
>>
Prefs
   1#!/bin/sh
   2# SPDX-License-Identifier: GPL-2.0
   3
   4outfile=""
   5now=`date +%s`
   6
   7while [ $# -gt 0 ]
   8do
   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
  18done
  19
  20if [ -z "$outfile" ]
  21then
  22    outfile=`mktemp --tmpdir stackusage.$$.XXXX`
  23fi
  24
  25KCFLAGS="${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.
  29find . -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
  34echo "$0: output written to ${outfile}"
  35