Move findstatic.pl script to top-level.
authorJelmer Vernooij <jelmer@samba.org>
Wed, 3 Jun 2009 00:16:57 +0000 (02:16 +0200)
committerJelmer Vernooij <jelmer@samba.org>
Wed, 3 Jun 2009 13:06:15 +0000 (15:06 +0200)
script/findstatic.pl [moved from source3/script/findstatic.pl with 100% similarity]
source4/script/findstatic.pl [deleted file]

diff --git a/source4/script/findstatic.pl b/source4/script/findstatic.pl
deleted file mode 100755 (executable)
index 43a4916..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/perl -w
-# find a list of fns and variables in the code that could be static
-# usually called with something like this:
-#    findstatic.pl `find . -name "*.o"`
-# Andrew Tridgell <tridge@samba.org>
-
-use strict;
-
-# use nm to find the symbols
-my($saved_delim) = $/;
-undef $/;
-my($syms) = `nm -o @ARGV`;
-$/ = $saved_delim;
-
-my(@lines) = split(/\n/s, $syms);
-
-my(%def);
-my(%undef);
-my(%stype);
-
-my(%typemap) = (
-              "T" => "function",
-              "C" => "uninitialised variable",
-              "D" => "initialised variable"
-               );
-
-
-# parse the symbols into defined and undefined 
-for (my($i)=0; $i <= $#{@lines}; $i++) {
-       my($line) = $lines[$i];
-       if ($line =~ /(.*):[a-f0-9]* ([TCD]) (.*)/) {
-               my($fname) = $1;
-               my($symbol) = $3;
-               push(@{$def{$fname}}, $symbol);
-               $stype{$symbol} = $2;
-       }
-       if ($line =~ /(.*):\s* U (.*)/) {
-               my($fname) = $1;
-               my($symbol) = $2;
-               push(@{$undef{$fname}}, $symbol);
-       }
-}
-
-# look for defined symbols that are never referenced outside the place they 
-# are defined
-foreach my $f (keys %def) {
-       print "Checking $f\n";
-       my($found_one) = 0;
-       foreach my $s (@{$def{$f}}) {
-               my($found) = 0;
-               foreach my $f2 (keys %undef) {
-                       if ($f2 ne $f) {
-                               foreach my $s2 (@{$undef{$f2}}) {
-                                       if ($s2 eq $s) {
-                                               $found = 1;
-                                               $found_one = 1;
-                                       }
-                               }
-                       }
-               }
-               if ($found == 0) {
-                       my($t) = $typemap{$stype{$s}};
-                       print "  '$s' is unique to $f  ($t)\n";
-               }
-       }
-       if ($found_one == 0) {
-               print "  all symbols in '$f' are unused (main program?)\n";
-       }
-}
-