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

Re: how to support 32- & 64-bit versions of libraries



"Steve M. Robbins" <steve@sumost.ca> writes:

> Hi,
>
> For package "gmp", I have two open requests to provide 64-bit versions
> of the libraries on ppc.  One of the requests also asks for a 32-bit
> version on amd64.
>
> What is the best way to do this?  

On amd64:

apt-get install ia32-apt-get
apt-get update
apt-get remove --purge libc6-i386   # Due to missing conflicts/replaces
apt-get install ia32-libgmp3c2

> Is this related to "biarch" or "multiarch"?  I can not find any
> information on the former, while the wiki page on the latter [1] has a
> lot of old design proposals, but no current status?  Can someone
> summarize the status of these things?

Biarch comes from supporting 2 archs, specifically 32bit and 64bit
code, on a single system. This is currently only present by packages
that use gcc-multilib to build both 32bit and 64bit flavours of their
package. But then there is mips/mipsel that actualy has tri-arch as
there is an old 32bit and new 32bit abi as well as 64bit. An example
for this would be zlib1g building zlib1g, lib32z1, lib64z1, libn32z1.
The problem is that you need to build each flavour of the library on
every architecture and building 64bit code on a 32bit cpu usualy fails
the configure tests. So biarch packages easily require a 64bit cpu to
be build, which sucks for anyone that doesn't haveone.

If you want to support 64bit (and n32) gmp on ppc, s390, sparc, mips
and mipsel NOW then look at zlib as an example.



The multiarch proposal is an unification of biarch, triarch,
cross-compiling and qemus emulation support all packed into one neat
little design. Simply put the basic idea is to have a unique place for
every architecture. Through that library packages for different archs
will have no files in the same place and can both be installed without
a file conflict. A little bit of magic in apt/dpkg then handles
coordinating that the right library is installed for the right binary.

You then only build the native ABI on each architecture (32bit on i386
and 64bit on amd64 for example) and apt/dpkg will pull in the i386
and/or amd64 package as needed. No more build problems for 32bit users.

But so far that is only a plan and some patches outside of
debian. Nothing you can use now.

> Thanks,
> -Steve
>
> [1] http://wiki.debian.org/multiarch/

MfG
        Goswin


Reply to: