version 1.7, 2008/04/22 21:08:41 |
version 1.8, 2008/05/05 19:58:18 |
|
|
#!/usr/bin/perl |
#!/usr/bin/perl |
# $RedRiver: find_depends,v 1.6 2007/05/16 19:55:42 andrew Exp $ |
# $RedRiver: find_depends,v 1.7 2008/04/22 20:08:41 andrew Exp $ |
use strict; |
use strict; |
use warnings; |
use warnings; |
|
|
|
|
my @libs = search_file($file); |
my @libs = search_file($file); |
foreach (@libs) { |
foreach (@libs) { |
my ($name, $maj, $min) = $_ =~ /lib([^\/]+)\.so\.(\d+)\.(\d+)$/; |
my ($name, $maj, $min) = $_ =~ /lib([^\/]+)\.so\.(\d+)\.(\d+)$/; |
|
next if ! $name; |
my $spec = 'l' . $name . '.' . $maj . '.' . $min; |
my $spec = 'l' . $name . '.' . $maj . '.' . $min; |
|
|
if (exists $ld->{$spec}) { |
if (exists $ld->{$spec}) { |
|
|
|
|
open my $libs, '-|', '/usr/bin/ldd', $file or die "Couldn't open ldd '$file': $!"; |
open my $libs, '-|', '/usr/bin/ldd', $file or die "Couldn't open ldd '$file': $!"; |
while (<$libs>) { |
while (<$libs>) { |
|
next if length($_) < 56; |
chomp; |
chomp; |
my $spec = substr $_, 56; |
my $spec = substr $_, 56; |
next if $spec !~ m{^/}xms; |
next if $spec !~ m{^/}xms; |