File: dupsyms

package info (click to toggle)
perl-tk 1%3A804.027-7
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 30,204 kB
  • ctags: 33,761
  • sloc: ansic: 340,354; perl: 44,606; sh: 8,869; makefile: 5,658; asm: 996; yacc: 883; cpp: 570; pascal: 536
file content (38 lines) | stat: -rw-r--r-- 656 bytes parent folder | download | duplicates (10)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/local/bin/perl -w
use File::Find;
use Cwd;
my $root = getcwd();

find(sub {
	if (/\.so$/)
          {
           do_syms($File::Find::name);
          }
     },'.');


sub do_syms
{
 my $path = shift;
 open(NM,"nm -DPp $root/$path|") || die "Cannot open pipe:$!";
 while (<NM>)
  {
   my ($sym,$kind) = /^(\w+)\s+(\S)/;
   next if ($kind =~ /^[UBAw]$/ || $sym =~ /^_(init|fini)$/);
   $def{$sym}{$path} = $kind;
  }
}

foreach my $sym (sort keys %def)
 {
  my @where = keys %{$def{$sym}};
  if (@where > 1)
   {
    print "$sym :\n";
    foreach my $path (sort @where)
     {
      print " $def{$sym}{$path} $path\n";
     }
    print "\n";
   }
 }