1 |
On Wed 26 Mar 2014 12:23:53 Ian Stakenvicius wrote: |
2 |
> On 26/03/14 12:12 PM, Mike Frysinger wrote: |
3 |
> > that's bs. people install crossdev to get a cross-compile |
4 |
> > environment, not to get something that only works through `emerge`. |
5 |
> > attempting to restrict it so it only works through `emerge` is |
6 |
> > unacceptable and it has never been that way. |
7 |
> |
8 |
> it -does- make sense though to limit anything that one wants to EMERGE |
9 |
> with the crossdev, to require the use of cross-emerge. Would it not |
10 |
> be possible to somehow ensure the crossdev tools are ignored |
11 |
> in/removed from/cannot pollute the standard emerge environment? Are |
12 |
> there any use cases where one -would- want the crossdev to be used in |
13 |
> a standard emerge environment instead of using cross-emerge ? |
14 |
|
15 |
you've lost me. when you `emerge-$CTARGET`, that package doesn't go anywhere |
16 |
near your ROOT=/ system. it's entirely contained in /usr/$CTARGET/. |
17 |
|
18 |
when you run `crossdev $CTARGET`, it installs all the standard $CTARGET-xxx |
19 |
tools in /usr/bin. this isn't "polluting" the environment at all ... in fact, |
20 |
they're living right alongside existing tools. |
21 |
|
22 |
as i pointed out elsewhere in this thread, the problem is that multilib relies |
23 |
on automatic detection of the toolchain *failing* so that it falls back to the |
24 |
native value. in other words, when you run `./configure --host=i686-pc-linux- |
25 |
gnu`, it tries to find e.g. i686-pc-linux-gnu-ar. it doesn't exist so the |
26 |
fallback is used (plain `ar`). multilib is using these tuples so that the |
27 |
standard checks (autoconf/eclasses/etc...) trigger in the right ways for the |
28 |
cpu/os/userland combinations. |
29 |
|
30 |
since crossdev installs a full proper toolchain for the target, the one |
31 |
multilib was using to lie now exists and its toolchain is used instead. |
32 |
-mike |