File: dupsyms

package info (click to toggle)
perl-tk 1:804.033-2
  • links: PTS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 34,724 kB
  • ctags: 37,174
  • sloc: ansic: 349,541; perl: 52,192; sh: 17,904; makefile: 5,732; asm: 3,565; ada: 1,681; pascal: 1,089; cpp: 1,006; yacc: 883; cs: 879
file content (38 lines) | stat: -rw-r--r-- 656 bytes parent folder | download | duplicates (7)
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";
   }
 }