#!/bin/sh

# src/tools/find_static

trap "rm -f /tmp/$$" 0 1 2 3 15

# This script finds functions that are either never called, or
# should be static.
# Some functions, like library functions and debug_print functions,
# should remain unchanged.

# Run on a compiled source tree, from the top of the source tree

# My nm utility has 9 characters of address which I strip, then a 'type'
# character, with T as a text function, and U as an undefined function
# symbol, then the function name.

find . -name '[a-z]*.o' -type f -print | while read FILE
do
	nm $FILE | cut -c10-100 |awk '{printf "%s\t%s\t%s\n", "'"$FILE"'",$1,$2}'
done >/tmp/$$
dropdb debug
createdb debug
echo "
	create table debug (file text, scope char, func text);

	copy debug from '/tmp/"$$"';

	select 	*
	into	table debug2
	from 	debug;

	create index idebug on debug(scope,func);
	create index idebug2 on debug2(func,scope);
	vacuum debug;
	vacuum debug2;

	update 	debug2
	set 	scope = '_'
	from 	debug
	where 	debug2.func = debug.func and
		debug2.scope = 'T' and debug.scope = 'U';

	delete 	from debug2
	where 	scope = '_';

	select 	*
	from 	debug2
	where	scope = 'T' and func != 'main'
        order by file, func;
" |psql debug
