Gentoo Archives: gentoo-dev

From: Ambroz Bizjak <ambrop7@×××××.com>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFC: method of checking for cross compilation from ebuild functions
Date: Sat, 22 Sep 2012 17:15:54
Message-Id: CAOA3yKLwwZ5TWJKziF99Kshf=6uE=zUHL4c_zZ8+Ra4q95nzcA@mail.gmail.com
In Reply to: Re: [gentoo-dev] RFC: method of checking for cross compilation from ebuild functions by Zac Medico
1 Yes, sysroot is much better, thanks :)
2
3 So, does anyone have any objections to just having a sysroot condition
4 and no --crosscompile or FEATURES=crosscompile?
5
6 Essentially, there's still tc-is-cross-compiler, if you want the real
7 cross-compile semantic, and sysroot conditional dependencies cover any
8 host programs you may need within a tc-is-cross-compiler block, even
9 though it may occasionally install stuff that is not used. But I think
10 it's worth the reduction of complexity. (yes, tc-is-cross-compiler
11 doesn't work at install time, but from my experience you really want
12 the sysroot semantic there, which is available via use sysroot)
13
14 If all is well, I'll proceed to implement this.
15
16 On Sat, Sep 22, 2012 at 7:01 PM, Zac Medico <zmedico@g.o> wrote:
17 > On 09/22/2012 09:48 AM, Ambroz Bizjak wrote:
18 >> Zac, I think you misunderstood me here. Crosscompile-only HDEPEND is
19 >> definitely necessary, I've seen many packages need this. But what I'm
20 >> suggesting is that we also, and maybe only, need "ROOT != /" - only
21 >> HDEPEND dependencies. This means that the dependency would only be
22 >> required if the package is being built for a ROOT that is not /. The
23 >> idea is to eliminate the strange case that is ROOT!=/ but FEATURES has
24 >> no crosscompile. If the package requires tools that it would build
25 >> itself if ROOT was /, it will use the host's version of the tool
26 >> whenever ROOT!=/ It wouldn't have to worry about whether the tools it
27 >> builds link to libraries in ROOT.
28 >>
29 >> So my proposal is basically, instead of:
30 >> HDEPEND="crosscompile? ( ~${CATEGORY}/${P} ) (yes, that seems to be
31 >> the most common case)
32 >>
33 >> there would also, and maybe only, be:
34 >> HDEPEND="root_not_slash? ( ~${CATEGORY}/${P} )"
35 >>
36 >> root_not_slash (or another name) would essentially be a superset of
37 >> crosscompile, since crosscompile implies ROOT!=/.
38 >
39 > Maybe call it "sysroot" instead of root_not_slash, since gcc and other
40 > tools seem to refer to it as sysroot.
41 > --
42 > Thanks,
43 > Zac

Replies