Gentoo Archives: gentoo-dev

From: Ian Stakenvicius <axs@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: crossdev and multilib interference
Date: Fri, 01 Aug 2014 14:36:34
Message-Id: 53DBA5E0.9060809@gentoo.org
In Reply to: [gentoo-dev] Re: crossdev and multilib interference by "Steven J. Long"
1 -----BEGIN PGP SIGNED MESSAGE-----
2 Hash: SHA256
3
4 On 01/08/14 05:05 AM, Steven J. Long wrote:
5 > On Fri, Jun 20, 2014, Ian Stakenvicius wrote:
6 >> On 19/06/14 05:20 PM, Steven J. Long wrote:
7 >>> Well I've spent far too long at crossdev code, only to see this
8 >>> and realise you can simply hard-mask:
9 >>> cross-i686-pc-linux-gnu/{binutils,gcc,glibc,pkg-config} in the
10 >>> amd64 multilib profile, unless I'm missing something. You'd be
11 >>> hard-pushed to install a clashing crossdev with such a mask,
12 >>> afaict.
13 >>>
14 >>> If you do want to change crossdev[1], afaict you're looking at
15 >>> interaction between toolchain.eclass (and toolchain-binutils,
16 >>> and likely -funcs), crossdev and gcc-config. I could well be
17 >>> wrong, as ever. This is just my preliminary understanding, and
18 >>> maybe it'll provoke a more thorough explanation. [ Snip! ]
19 >>
20 >> Thank you for the explanation and research!
21 >
22 > YW :-) shove autotools.eclass (and supporting) in there too,
23 > including multiprocessing which had a simply painful attempt at
24 > cleverness. I mentioned it in #gentoo-embedded when i saw it, so
25 > hopefully it'll be corrected soon. (bashpid() function: if you
26 > can't see why it's painfully embarrassing, /join #bash and ask.)
27 >
28 >> Tangental to this, mgorny wrote a little tool yesterday that
29 >> might work well as an alternative to crossdev for multilib
30 >> systems. It simply wraps all the native toolchain calls with
31 >> proper -m and provides the new CTARGETs.
32 >>
33 >> If anybody wants to take a look, this is the link he posted on
34 >> -dev :
35 >>
36 >> <dead url>
37 >>
38 >> Whether or not this suits everyone's needs for an i686 crossdev
39 >> on amd64 systems, i don't know. Thoughts?
40 >
41 > It's more layer upon layer, I'm afraid. Though that file's gone
42 > from the repo, so I imagine it's already made its way to join the
43 > rest of the misguided hackery that is multilib. Still, it's good
44 > that his bash has come on, though he's still too tricksy for his
45 > own good; likely trying to emulate Frysinger, another one who needs
46 > a nice lie-down sometimes, instead of banging out more. Idiot
47 > house-"styles" will do that to you, as will C++.
48 >
49 > I don't know why we can't just mask cross-*/whatever in the
50 > multilib profile, instead of more talk of "masking crossdev" with a
51 > heavy heart.
52 >
53 > Nor do know if that's been done already, as I just found that the
54 > profiles directory Changelog stopped in 2013, for some reason, and
55 > I don't have time to chase the files right now.
56 >
57 > Sorry for delay, been away and then busy. I was hoping to read
58 > something more than "mask crossdev" yet again, when I got back.
59 >
60 > Regards, igli.
61 >
62
63 It's a package in the tree now, actually --
64 sys-devel/multilib-gcc-wrapper ; it wraps the native toolchain
65 appropriately for the different ABI's that this toolchain supports, so
66 that ie an i686-*-gcc call is implemented properly via the native gcc
67 instead of a crossdev one. Note, it *also* works on multilib
68 crossdev, too! I have a ppc crossdev installed on my amd64 host box
69 and multilib-gcc-wrapper allows it to build for both ppc32 and ppc64
70 ABIs just fine (presumably; i don't have a ppc32 or ppc64 native
71 system to actually do runtime tests).
72
73 Back to the comment on masking -- would a cross-emerge (which i think
74 uses the target's profile, right?) end up p.masking its own toolchain?
75 If it did, would that actually break anything (i'm thinking no since
76 it's the crossdev that manages toolchain updates for the target rather
77 than cross-emerge)?? I agree that masks should be minimized, at most
78 masking the conflicting cross-* packages in a profile. However if
79 this causes issues within cross-emerge too, then perhaps adjusting the
80 crossdev tool to warn or error would suffice when a target that will
81 conflict with the native toolchain is requested.
82
83
84 -----BEGIN PGP SIGNATURE-----
85 Version: GnuPG v2
86
87 iF4EAREIAAYFAlPbpeAACgkQ2ugaI38ACPCGRwD+JnA2ACNizXn9ZYG0kiaoitwO
88 wqHqahuceDxeo8z+Ps4A/158v8pElxPFZ4oWgHfVbZ43eiJm/N65Zay1x3U/vo3w
89 =m7AR
90 -----END PGP SIGNATURE-----

Replies

Subject Author
[gentoo-dev] Re: Re: crossdev and multilib interference "Steven J. Long" <slong@××××××××××××××××××.uk>