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

Re: Multiarch and ABI support

Hector Oron <hector.oron@gmail.com> writes:

> Dear Steve,
> 2010/7/24, Steve Langasek <vorlon@debian.org>:
>> On Mon, Jul 19, 2010 at 07:02:32PM +0100, Hector Oron wrote:
>>> 2010/7/18 Steve Langasek <vorlon@debian.org>:
>>> AFAICS `dpkg' relais on -dumpmachine from `gcc'
>>> scripts/Dpkg/Arch.pm:68:        my $gcc_host_gnu_type = `\${CC:-gcc}
>>> -dumpmachine`;
>> It wouldn't.  I don't see a compelling reason for dpkg to do this at all.
>> Your quote shows that dpkg *does* do this today, which I didn't remember
>> before this conversation, but that's not an explanation for *why* it does -
>> as opposed to dpkg directly recording what its current architecture is.
> I am not `dpkg' maintainer, nor I did such change, so *why* it does
> that I do not know, but surely there is a reason which stands valid or
> it is outdated.

Compiling dpkg on a system that has no dpkg. No dpkg-architecture to get
the current architecture from.

>>> Using sysroot approach you might be able to co-install foreign (other
>>> arches) libraries into the sysroot for case a) - it even lets the user
>>> have multiple systems with same ABI and architecture, but with
>>> different libraries (in the case you want to cross build non Debian
>>> systems).
>> sysroot is irrelevant to what multiarch aims to achieve.
> Sorry, I think I have not yet understand you. Would you mind to expand
> your point here?
> While sysroot is just a tool which it is probably very helpful on
> multiarch design. What is orthogonal on sysroot and multiarch are the
> hardcoded paths (/usr/lib/<triplet>) which we had discussed above that
> are wrong.

/sysroot/usr/lib/ is the normal directory.
/sysroot/usr/lib/<triplet> is the multiarch directory under a sysroot

Are you thinking of the special case of multiarch with sysroot=/?

What is wrong with the path is that the triplet is not unique and
sometimes differs when it shouldn't. So instead of the triplet use a
different string that uniquely identifies the abi. In the past the
triplet has just been the standard for that.

Could I suggest dpkg-architecture -qDEB_HOST_ABI? The string should only
be hardcoded in one single spot.


Reply to: