=================================================================== RCS file: /cvs/openbsd/fill_chroot/find_depends,v retrieving revision 1.7 retrieving revision 1.10 diff -u -r1.7 -r1.10 --- openbsd/fill_chroot/find_depends 2008/04/22 21:08:41 1.7 +++ openbsd/fill_chroot/find_depends 2008/09/16 23:15:03 1.10 @@ -1,5 +1,5 @@ #!/usr/bin/perl -# $RedRiver: find_depends,v 1.6 2007/05/16 19:55:42 andrew Exp $ +# $RedRiver: find_depends,v 1.9 2008/05/05 19:02:57 andrew Exp $ use strict; use warnings; @@ -67,14 +67,15 @@ my @libs = search_file($file); foreach (@libs) { my ($name, $maj, $min) = $_ =~ /lib([^\/]+)\.so\.(\d+)\.(\d+)$/; + next if ! $name; my $spec = 'l' . $name . '.' . $maj . '.' . $min; + print " Found spec '$spec'\n" if $opts{v}; if (exists $ld->{$spec}) { next if exists $locs->{$spec}; $locs->{$spec} = $ld->{$spec}; - - $locs = find_libs($locs->{$spec}, $ld, $locs); + $locs = find_libs($ld->{$spec}, $ld, $locs); } else { warn "Couldn't find location for lib '$_' (file '$file')"; @@ -92,7 +93,8 @@ open my $libs, '-|', '/usr/bin/ldd', $file or die "Couldn't open ldd '$file': $!"; while (<$libs>) { chomp; - my $spec = substr $_, 56; + my ($spec) = (split(/\s+/, $_))[7]; + next if ! $spec; next if $spec !~ m{^/}xms; push @libs, $spec; }