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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to