Re: ld.so for multiarch and multilib installed at same time

Steve McIntyre <[email protected]>
Newsgroups gmane.linux.debian.devel.general,gmane.linux.debian.ports.mips
Message-ID <[email protected]>
On Fri, Apr 25, 2014 at 06:49:49PM +0800, Yunqiang Su wrote:
>On Fri, Apr 25, 2014 at 5:58 PM, Steve McIntyre <[email protected]> wrote:
>> Yunqiang Su wrote:
>>>On amd64 system:
>>>
>>> libc6-i386  make /lib/ld-linux.so.2  link to /lib32/ld-linux.so.2 and link to
>>>       /lib32/ld-2.18.so
>>>
>>>libc6:i386 make /lib/ld-linux.so.2 link to /lib/i386-linux-gnu/ld-2.18.so
>>>
>>>when these 2 packages installed at the same time
>>>     /lib/ld-linux.so.2 is linked to /lib/i386-linux-gnu/ld-2.18.so
>>>
>>>And dpkg is happy about that this happens.
>>
>> What's responsible for making the links? Are they directly in the
>> package, or made by postinst etc.? Are the 2 packages sensible in
>> terms of multi-arch setup?
>
>ldso is the load of binary, it is the entrance of any binary execution.
>On any system, it is fixed
>
>please see:
>https://wiki.debian.org/Multiarch/LibraryPathOverview#ELF interpreter

Oh yes, I lnow that bit. I've got patches in ld.so in Debian and
upstream... :-)

>It is directly in these packages.

ACK. I was asking (specifically) more how the links are created in
those packages. Looking, you're correct and they're directly in the
package contents:

$ dpkg --contents libc6-i386_2.18-4_amd64.deb | grep -e ld-2. -e ld-linux.so
-rwxr-xr-x root/root    134308 2014-03-02 17:58 ./lib32/ld-2.18.so
lrwxrwxrwx root/root         0 2014-03-02 17:58 ./lib32/ld-linux.so.2 -> ld-2.18.so
lrwxrwxrwx root/root         0 2014-03-02 17:58 ./lib/ld-linux.so.2 -> /lib32/ld-linux.so.2

$ dpkg --contents libc6_2.18-4_i386.deb | grep -e ld-2. -e ld-linux.so
-rwxr-xr-x root/root    134380 2014-03-02 17:47 ./lib/i386-linux-gnu/ld-2.18.so
lrwxrwxrwx root/root         0 2014-03-02 17:47 ./lib/ld-linux.so.2 -> i386-linux-gnu/ld-2.18.so
lrwxrwxrwx root/root         0 2014-03-02 17:47 ./lib/i386-linux-gnu/ld-linux.so.2 -> ld-2.18.so

I'm not sure I understand how dpkg works here either... :-/

>>>On mips64el system:
>>>
>>>libc6-mips32 make /lib/ld.so.1 link to /lib/ld-2.18.so
>>>         (yes, quite strange, mips system asks for use /lib as o32
>>>multilib path)
>>
>> Meh, it's not doing the braindead /lib32 thing. That shouldn't be a
>> problem. :-)
>
>lib32 is left for n32 multilib on mips* systems.

OK, cool.

>> Well, you're still trying to replace the same file (link) on
>> disk. dpkg is not going to be happy with that, unless they're
>> consistent for multi-arch.
>
>The problems is why on amd64, dpkg is happy about it?

No idea, I'm afraid. I was hoping I'd be able to help here, but...

-- 
Steve McIntyre, Cambridge, UK.                                [email protected]
Welcome my son, welcome to the machine.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.