[M3devel] multiarch
hendrik at topoi.pooq.com
hendrik at topoi.pooq.com
Sat Jul 4 19:02:37 CEST 2009
On Sat, Jul 04, 2009 at 06:48:19AM +0000, Jay wrote:
>
> The Python thing as I understand it, is that sometimes package foo
> depends on package bar, and they must be of the same architecture, and
> sometimes not. Specifically inproc "plugins" require matching
> architecture, but if I just run an executable, architecture doesn't
> usually have to match.
An executable has to be one of the architectures the processor will
handle. And if it uses shared libraries, they have to have matching
architecture. The whole worry about multiarch on Linux AMD-64 is to
have a consistent way of identifying the compatible one of a set
of same-names libraries, and doing this in such a way that it
generalises to more architectures (because they *will* eventually show
up) and won't confuse the package manager.
I think the real point with python is that python code is
architecture-independent, because it's handled by an
architecture-dependent interpreter. Which makes it, in effect, an
extra architecture that's available everywhere, whether you have an
AMD-64 or other multiarch CPU or not.
> OpenBSD sets an interesting counterexample -- no biarch/multiarch,
> just one architecture, "same as it ever was", "no additional
> complexity", everything is built from source anyway".
And they probably do not in any way support 32-bit proprietary
binary-only device drivers or Flash interpreters or anything like that
on AMD-64.
Building from source is the traditional Modula-3 way of handling
packages. To do this with the Debian package-manager, we'd have to
include an install-dependency on cm3-min and let the post-install
script use the compiler to compile the package and ship it to the
proper place.
How to do this multiarch is not clear -- We might end up with a number
of different architecture versions of the packages, which have identical
contents (they're source code). Being labelled with different
architectures might (here's hoping the multiarch project thinks of this)
end up invoking the appropriate cm3-min binary ...
I suspect having real binary packages for different architectures is the
Debian way, however. Using source packages is the norm on gentoo.
And cm3-min would have to be binary in any case, otherwise there would
be no way to compile it.
But the multiarch stuff might indicate where we want to ship our
libraries to. Not bin/lib, but to some other bin/lib-linux-ia32
or whatever the multiarch people choose. We're already using similar
conventions in the choince of LINUXLIBC6 and such names.
-- hendrik
More information about the M3devel
mailing list