It also adds a call to ldconfig in the F<postinst> and F<postrm> scripts (in
v3 mode and above only) to any packages in which it finds shared libraries.
+In v9 mode and above, packages that support multiarch are detected, and
+a Pre-Dependency on multiarch-support is set in ${misc:Pre-Depends} ;
+you should make sure to put that token into an appropriate place in your
+debian/control file for packages supporting multiarch.
+
=head1 FILES
=over 4
=item B<-m>I<major>, B<--major=>I<major>
-Instead of trying to guess the major number of the library with /postobjdump,
+Instead of trying to guess the major number of the library with objdump,
use the major number specified after the -m parameter. This is much less
useful than it used to be, back in the bad old days when this program
looked at library filenames rather than using objdump.
"add-udeb=s" => \$dh{SHLIBS_UDEB},
});
-my $od = "objdump";
-# cross-compiling?
-if (dpkg_architecture_value("DEB_BUILD_GNU_TYPE")
- ne dpkg_architecture_value("DEB_HOST_GNU_TYPE")) {
- $od=dpkg_architecture_value("DEB_HOST_GNU_TYPE") . "-objdump";
-}
+my $objdump=cross_command("objdump");
+my $multiarch=dpkg_architecture_value("DEB_HOST_MULTIARCH");
foreach my $package (@{$dh{DOPACKAGES}}) {
next if is_udeb($package);
my %seen;
my $need_ldconfig = 0;
+ my $is_multiarch = 0;
doit("rm", "-f", "$tmp/DEBIAN/shlibs");
while (<FIND>) {
my ($library, $major);
push @lib_files, $_;
- my $objdump=`$od -p $_`;
- if ($objdump=~m/\s+SONAME\s+(.+)\.so\.(.+)/) {
+ if (defined $multiarch && $multiarch ne '' && m,/$multiarch/,) {
+ $is_multiarch=1;
+ }
+ my $ret=`$objdump -p $_`;
+ if ($ret=~m/\s+SONAME\s+(.+)\.so\.(.+)/) {
# proper soname format
$library=$1;
$major=$2;
}
- elsif ($objdump=~m/\s+SONAME\s+(.+)-(.+)\.so/) {
+ elsif ($ret=~m/\s+SONAME\s+(.+)-(.+)\.so/) {
# idiotic crap soname format
$library=$1;
$major=$2;
doit("rm", "-f", "$tmp/DEBIAN/symbols");
}
}
+ if ($is_multiarch) {
+ addsubstvar($package, "misc:Pre-Depends", "multiarch-support");
+ }
}
=head1 SEE ALSO