Hi YunQiang, On 14/11/17 03:34, YunQiang Su wrote: > Package: dpkg-cross > Version: 2.6.15-2 > > the ld.so.1 of n32 and 64 should be in > lib32 and lib64. > We should not put them in > /usr/$(multiarch)/lib > as o32 will put its ld.so.1 their.
Are you sure this is correct? At least the o32 ld.so.1 from cross-toolchain-base 19 gets installed into "/usr/mips64el-linux-gnuabi64/libo32/ld.so.1" and doesn't conflict with the n64 linker here. > --- /usr/bin/dpkg-cross 2017-07-24 15:47:10.000000000 +0000 > +++ dpkg-cross 2017-11-14 03:30:13.175812265 +0000 > @@ -1019,6 +1019,10 @@ > # Skip links that are going to point to themselves > next if ($lv eq $_); > > + # skip /usr/$(multiarch)/lib/ld.so.1 for mips n32 and 64. > + # their ld.so.1 should be in lib32 and lib64. > + next if ($multiarch =~ m/^mips[n32,64]/ && $_ =~ > m/lib\/ld.so.1$/); > + > # skip links to private modules and plugins that are not > # useful or packaged in the -cross package, basically anything > # in a directory beneath /usr/lib/. See #499292 As Helmut noted this causes bug #882263 which broke the mips64el cross compilers. That bug is caused by not fixing up the libc.so linker script to go with this change. libc6 installs "/usr/lib/mips64el-linux-gnuabi64/libc.so" which is an ld-script and hardcodes the path "/lib/mips64el-linux-gnuabi64/ld.so.1". dpkg-cross changes this to "/usr/mips64el-linux-gnuabi64/lib/ld.so.1" which no longer exists after this patch. James
signature.asc
Description: OpenPGP digital signature