]> granicus.if.org Git - postgresql/blob - src/tools/find_static
Reorganize developers files.
[postgresql] / src / tools / find_static
1 #!/bin/sh
2 trap "rm -f /tmp/$$" 0 1 2 3 15
3
4 # This script finds functions that are either never called, or
5 # should be static.
6 # Some functions, like library functions and debug_print functions,
7 # should remain unchanged.
8
9 # Run on a compiled source tree, from the top of the source tree
10
11 # My nm utility has 9 characters of address which I strip, then a 'type'
12 # character, with T as a text function, and U as an undefined function
13 # symbol, then the function name.
14
15 find . -name '[a-z]*.o' -type f -print | while read FILE
16 do
17         nm $FILE | cut -c10-100 |awk '{printf "%s\t%s\t%s\n", "'"$FILE"'",$1,$2}'
18 done >/tmp/$$
19 destroydb debug
20 createdb debug
21 echo "
22         create table debug (file text, scope char, func text);
23
24         copy debug from '/tmp/"$$"';
25
26         select  * 
27         into    table debug2 
28         from    debug;
29
30         update  debug2 
31         set     scope = '_' 
32         from    debug
33         where   debug2.func = debug.func and
34                 debug2.scope = 'T' and debug.scope = 'U';
35
36         delete  from debug2
37         where   scope = '_';
38
39         select  *
40         from    debug2
41         where   scope = 'T';
42 " |psql debug
43