[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: AMD64 and lib64



Martin Michlmayr - Debian Project Leader <leader@debian.org> writes:

> * Tollef Fog Heen <tfheen@raw.no> [2004-07-07 13:43]:
>> lib64 is ugly and wrong, wrong, wrong.
>
> But it's in LSB which Debian wants to follow...

The pure64 port only wants to follow the amd64 LSB while mostly
ignoring then ia32 LSB. That is the best that can be done without
changing every library package in a non trivial way.

>> You were at the multiarch talk during debconf4, and that is, IMO,
>> the sane way to do it.
>
> ... and multiarch is far away.

And impossible to implement till sarge is out of the way and very hard
to port for unless multiarch is in policy and NMUs are allowed.

Some people are working on patching sarge tools to be ready to handle
a multiarch transition for sarge+1 where needed so multiarch can be
done for sarge+1 and doesn't have to wait for sarge+2. Luckily the
changes are very few and small.

>> We don't do that.  At least not for the current AMD64 port.  It's a pure
>> 64 bit port without any 32 bit compatibility.  The way to do multiarch
>
> What about people who need 32 bit compatibility?

pure64 does not intend to support 32 bit compatibility but as shown by
several people with various software it is still possible to run 32
bit binaries. pure64 does not support 32 bit developement (gcc and
binutils just fail there) and does not support installing 32bit
packages the normal way (e.g. dependencies won't work correctly). But
that is hardly news for installing rpms.

>> | For binary compatability reasons with other distributions you should
>> | be also careful that all of the application binaries refer to /lib64
>> | rather than /lib.
>> 
>> We are aware of that, and /lib64 is a symlink for the time being.
>
> This doesn't help when someone wants to run Debian binaries on another
> architecture.  Does Debian want to be perceived as incompatible with
> the rest of the world?

The LSB requires the ld.so for 32 bit to be in /lib and the ld.so for
64 bit in /lib64 and that is where pure64 has them (through the
link). Since Debian does not use rpath for system paths the ld.so is
the only thing with a hardcoded path in the binary and the hardcoded
path in Debian binaries follows the LSB.

So the only difference between Debian and other distributions (in our
binaries) would be rpaths to /usr/lib/package/something, which are part
of the package and would be there on other systems too then. Does the
LSB say anything about /usr/lib/package or /usr/lib64/package?

Problems only arise with library packages but making them compatible
has to wait for sarge+1 unless you think it is a good idea to change
_every_ library package now.

Hopefully when sarge is released the LSB people have been talked into
changing the lib/lib32/lib64 to lib/arch-kernel and then libraries can
be moved into multiarch positions even without multiarch itself being
used. Apart from sarge that is the other argument why no effort is
being made to change stuff to use lib64.

MfG
        Goswin



Reply to: