===================================================================
RCS file: /cvsroot/dpkg-cross/dpkg-cross/dpkg-cross,v
retrieving revision 1.83
@@ -507,7 +507,7 @@
}
close(CONTROL);
- if (defined ($control{'multi-arch'})) {
+ if (defined ($control{'multi-arch'}) and !$anyway) {
my $output = basename ($package);
warn sprintf(_g("%s: Skipping the '%s' Multi-Arch package.\n"), $progname, $output);
if (not -f $output) {
@@ -775,6 +775,16 @@
} elsif ((m:^/emul/ia32-linux/usr/lib/([^/]+\.[ao])$:)) {
# regular .a or .o file under /emul/ia32-linux/ for #463588
link_file("$src$_", "$dst$crosslib32/$1") or goto fail;
+ } elsif (m:^(/usr)?/lib/$crosstype/([^/]+\.[ao])$:) {
+ # regular .a or .o file under /lib or /usr/lib/TRIPLET/
+ link_file("$src$_", "$dst$crosslib/$crosstype/$2") or goto fail;
+ } elsif (m:^(/usr)?/lib/$crosstype/([^/]+\.so[^/]*)$:) {
+ # regular .so* file under /lib/TRIPLET or /usr/lib/TRIPLET
+ if (is_ldscript("$src$_")) {
+ fix_ldscript("$src$_", "$dst$crosslib/$crosstype/$2") or goto fail;
+ } else {
+ link_file("$src$_", "$dst$crosslib/$crosstype/$2") or goto fail;
+ }
} elsif (m:^(/usr(/X11R6)?)?/lib/([^/]+\.so[^/]*)$:) {
# regular .so* file under /lib, /usr/lib or /usr/X11R6/lib
if (is_ldscript("$src$_")) {
@@ -914,7 +924,18 @@
# useful or packaged in the -cross package, basically anything
# in a directory beneath /usr/lib/. See #499292
# except pkgconfig symlinks, see #506956
- next if (($lv =~ m:$crosslib/.*/:) and ($lv !~ m:$crosslib/pkgconfig/:));
+ # also handle multiarch packages with /usr/lib/TRIPLET/ directory
+ next if (
+ (
+ ($lv =~ m:$crosslib/$crosstype/.*/:) and
+ ($lv !~ m:$crosslib/$crosstype/pkgconfig/:)
+ ) or
+ (
+ ($lv =~ m:$crosslib/.*/:) and
+ ($lv !~ m:$crosslib/pkgconfig/:) and
+ ($lv !~ m:$crosslib/$crosstype/:)
+ )
+ );
$lv =~ m:$crosslib/(.*)$:;
# Translators, retain the -> to indicate the direction of the link.
printf (_g("Creating symlink %s -> %s\n"), $_, $1) if ($verbose >= 2);