From: Mike Frysinger <vapier@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: Re: [gentoo-dev] Re: crossdev and multilib interference
Date: Thu, 27 Mar 2014 02:07:36 -0400 [thread overview]
Message-ID: <4273026.i7QpdYDi0u@vapier> (raw)
In-Reply-To: <1395895307.23327.25.camel@rook>
[-- Attachment #1: Type: text/plain, Size: 3381 bytes --]
On Thu 27 Mar 2014 00:41:47 Alexandre Rostovtsev wrote:
> On Wed, 2014-03-26 at 22:41 -0400, Mike Frysinger wrote:
> > On Wed 26 Mar 2014 12:23:53 Ian Stakenvicius wrote:
> > > On 26/03/14 12:12 PM, Mike Frysinger wrote:
> > > > that's bs. people install crossdev to get a cross-compile
> > > > environment, not to get something that only works through `emerge`.
> > > > attempting to restrict it so it only works through `emerge` is
> > > > unacceptable and it has never been that way.
> > >
> > > it -does- make sense though to limit anything that one wants to EMERGE
> > > with the crossdev, to require the use of cross-emerge. Would it not
> > > be possible to somehow ensure the crossdev tools are ignored
> > > in/removed from/cannot pollute the standard emerge environment? Are
> > > there any use cases where one -would- want the crossdev to be used in
> > > a standard emerge environment instead of using cross-emerge ?
> >
> > you've lost me. when you `emerge-$CTARGET`, that package doesn't go
> > anywhere near your ROOT=/ system. it's entirely contained in
> > /usr/$CTARGET/.
> >
> > when you run `crossdev $CTARGET`, it installs all the standard
> > $CTARGET-xxx
> > tools in /usr/bin. this isn't "polluting" the environment at all ... in
> > fact, they're living right alongside existing tools.
> >
> > as i pointed out elsewhere in this thread, the problem is that multilib
> > relies on automatic detection of the toolchain *failing* so that it falls
> > back to the native value. in other words, when you run `./configure
> > --host=i686-pc-linux- gnu`, it tries to find e.g. i686-pc-linux-gnu-ar.
> > it doesn't exist so the fallback is used (plain `ar`). multilib is using
> > these tuples so that the standard checks (autoconf/eclasses/etc...)
> > trigger in the right ways for the cpu/os/userland combinations.
> >
> > since crossdev installs a full proper toolchain for the target, the one
> > multilib was using to lie now exists and its toolchain is used instead.
>
> Crossdev is "polluting the environment" in the specific case that we are
> talking about - secondary native ABIs on a multilib system.
>
> An amd64 multilib system is not expected to build MIPS binaries that
> would be hosted on itself. So of course anyone using amd64 undersands
> that mips-pc-linux-gnu-ar is part of a cross-compile toolchain, no
> matter whether it's in /usr/bin or /usr/libexec/crossdev or anywhere in
> the filesystem.
>
> However, an i686 crossdev on an amd64 multilib system is a fundamentally
> different situation.
no, it is not
> An amd64 multilib system *is* expected to build x86
> binaries that would be hosted on itself. So i686-pc-linux-gnu-ar is
> expected to be not a part of any cross-compile toolchain, but a part of
> the native toolchain for the machine's secondary native ABI. Especially
> when i686-pc-linux-gnu-ar is in /usr/bin.
sure, and it works just fine when you use the correct toolchain. if the user
wants to build an ABI using their default toolchain, they can pass the right
ABI flag for it.
but that's irrelevant to how our multilib implementation picks its fake
CHOST_$ABI to take care of implementing things. if anything, the current
system is provably broken because the default ends up executing unqualified
`ar` and `ranlib` friends.
-mike
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2014-03-27 6:07 UTC|newest]
Thread overview: 85+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-12 15:46 [gentoo-dev] crossdev and multilib interference hasufell
2014-03-12 16:06 ` Alexandre Rostovtsev
2014-03-12 18:56 ` Alexis Ballier
2014-03-16 11:50 ` Greg Turner
2014-03-26 6:07 ` Mike Frysinger
2014-03-26 12:25 ` [gentoo-dev] " Steven J. Long
2014-03-26 16:12 ` Mike Frysinger
2014-03-26 16:23 ` Ian Stakenvicius
2014-03-27 2:41 ` Mike Frysinger
2014-03-27 4:41 ` Alexandre Rostovtsev
2014-03-27 6:07 ` Mike Frysinger [this message]
2014-03-27 6:31 ` Alexandre Rostovtsev
2014-03-27 6:41 ` Mike Frysinger
2014-03-27 6:51 ` Michał Górny
2014-03-27 7:23 ` Mike Frysinger
2014-03-27 6:58 ` Samuli Suominen
2014-03-27 8:41 ` [gentoo-dev] " Steven J. Long
2014-03-28 6:36 ` Mike Frysinger
2014-03-30 9:53 ` [gentoo-dev] " Steven J. Long
2014-06-15 20:35 ` hasufell
2014-06-15 20:43 ` Chí-Thanh Christopher Nguyễn
2014-06-16 13:37 ` hasufell
2014-06-16 18:42 ` Steev Klimaszewski
2014-06-16 19:31 ` hasufell
2014-06-16 19:42 ` Jeroen Roovers
2014-06-16 19:47 ` hasufell
2014-06-16 20:05 ` Joshua Kinard
2014-06-16 20:24 ` hasufell
2014-06-16 20:59 ` Joshua Kinard
2014-06-16 22:10 ` hasufell
2014-06-16 23:38 ` Joshua Kinard
2014-06-17 1:47 ` hasufell
2014-06-17 2:17 ` Joshua Kinard
2014-06-17 12:30 ` hasufell
2014-06-17 12:49 ` Rich Freeman
2014-06-17 13:53 ` hasufell
2014-06-17 14:17 ` Joshua Kinard
2014-06-17 14:56 ` Alexandre Rostovtsev
2014-06-17 15:10 ` Michał Górny
2014-06-18 15:24 ` Peter Stuge
2014-06-19 7:58 ` Michał Górny
2014-06-17 15:20 ` Joshua Kinard
2014-06-18 5:08 ` Alexandre Rostovtsev
2014-06-18 6:24 ` Joshua Kinard
2014-06-18 14:18 ` Ian Stakenvicius
2014-06-19 21:20 ` [gentoo-dev] " Steven J. Long
2014-06-20 20:10 ` [gentoo-dev] " Ian Stakenvicius
2014-06-21 10:31 ` Greg Turner
2014-06-21 20:47 ` Michał Górny
2014-08-01 9:05 ` Steven J. Long
2014-08-01 14:36 ` Ian Stakenvicius
2014-08-01 18:17 ` [gentoo-dev] " Steven J. Long
2014-06-18 4:29 ` [gentoo-dev] " Ryan Hill
2014-06-17 14:04 ` [gentoo-dev] Re: " Joshua Kinard
2014-06-17 14:38 ` hasufell
2014-06-17 15:02 ` Joshua Kinard
2014-06-17 15:18 ` hasufell
2014-06-17 15:37 ` hasufell
2014-06-17 12:48 ` hasufell
2014-06-17 14:31 ` Joshua Kinard
2014-06-17 13:25 ` Ian Stakenvicius
2014-06-17 14:22 ` Michał Górny
2014-06-17 14:34 ` Joshua Kinard
2014-06-16 23:25 ` Patrick Lauer
2014-06-16 20:27 ` Ian Stakenvicius
2014-06-16 21:42 ` [gentoo-dev] " Jeroen Roovers
2014-06-17 0:03 ` Joshua Kinard
2014-06-16 20:25 ` [gentoo-dev] Re: Re: " hasufell
2014-06-16 2:24 ` [gentoo-dev] " Ryan Hill
2014-06-16 13:27 ` hasufell
2014-06-17 4:52 ` Ryan Hill
2014-06-17 12:29 ` hasufell
2014-03-29 1:21 ` [gentoo-dev] " Maciej Mrozowski
2014-03-16 12:01 ` Greg Turner
2014-03-13 8:55 ` Michał Górny
2014-03-13 12:20 ` Alexandre Rostovtsev
2014-03-26 5:17 ` Mike Frysinger
2014-03-27 6:13 ` Mike Frysinger
2014-03-27 6:51 ` Michał Górny
2014-03-27 7:18 ` Mike Frysinger
2014-03-27 9:10 ` Michał Górny
2014-03-27 14:23 ` Mike Frysinger
2014-03-27 14:31 ` Michał Górny
2014-03-28 6:33 ` Mike Frysinger
2014-03-29 21:39 ` Michał Górny
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4273026.i7QpdYDi0u@vapier \
--to=vapier@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox