File: symbols

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 (39 lines) | stat: -rwxr-xr-x 723 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
39
#!/usr/local/bin/perl -w

use Config;

$nm_opt = "";
$nm_opt = "-g" if ($Config{'osname'} eq 'sunos');
$nm_opt = "-px" if ($Config{'osname'} eq 'solaris');

chomp(@so_files = `find blib -name '*.so' -print`);

%sym = ();

foreach $module (@so_files)
 {
  my ($leaf) = ($module =~ m#/([^/]+)\.so$#);
  foreach (`nm $nm_opt $module`)
   {
    if (/^(0x)?[0-9a-f]{8}\s+([A-Z])\s+_?(.*)$/)
     {
      my ($kind,$name) = ($2,$3);
      if ($kind ne 'U')
       {
        $sym{$name} = [] unless (exists $sym{$name});
        push(@{$sym{$name}},$leaf,$kind);
       }
     }
   }
 }

foreach $name (sort keys %sym)
 {
  my @def = @{$sym{$name}};
  if (@def != 2)
   {
    print "$name defined ",join(',',@def),"\n";
   }
 }