Gentoo Archives: gentoo-dev

From: Thomas Sachau <tommy@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Re: GLEP draf for cross-compile support in multilib profiles
Date: Sun, 01 Jul 2012 20:53:10
Message-Id: 4FF0B878.3080704@gentoo.org
In Reply to: Re: [gentoo-dev] Re: GLEP draf for cross-compile support in multilib profiles by Matt Turner
1 Matt Turner schrieb:
2 > On Sun, Jul 1, 2012 at 7:29 AM, Thomas Sachau <tommy@g.o> wrote:
3 >> Matt Turner schrieb:
4 >>> On Fri, Jun 29, 2012 at 10:30 AM, Thomas Sachau <tommy@g.o> wrote:
5 >>>>
6 >>>
7 >>> I'm interested in this because I'm regularly annoyed with the emul-
8 >>> packages and also because multilib is pretty important for mips.
9 >>>
10 >>>> If a package has dependencies, then those dependencies are required to have
11 >>>> at least the same targets enabled as the package
12 >>>
13 >>> That seems like the obvious (but perhaps naive) choice. What about
14 >>> depending on packages that don't install libraries, like x11-proto/
15 >>> packages or generators like dev-util/indent?
16 >>>
17 >>> Maybe I just don't understand. Would these packages even have ABI flags?
18 >>
19 >> All packages do get the ABI flags (with the needed EAPI or via enabled
20 >> portage feature, which is currently in the multilib branch).
21 >>
22 >> If a package does not install anything ABI-specific (no headers, no libs
23 >> and no binaries), then there is no overhead, since it will just get
24 >> compiled/installed for one ABI, even if multiple ABI flags are enabled.
25 >
26 > I suppose that's just for ease of implementation? Not having to
27 > special-case packages that don't install binaries.
28
29 I dont follow. Did you think about only having additional ABI flags for
30 certain cases?
31
32 >>> For mips, we'd like to have gcc built as an n64 binary, which would
33 >>> require its run-time dependencies (mpfr, mpc, gmp, etc.) to be
34 >>> available as n64 as well, but the rest of the system to be n32
35 >>> binaries. Does this fit with your understanding (and proposed
36 >>> solution) of the problem?
37 >>
38 >> I guess, you require additional n64 libs for gcc dependencies like mpfr,
39 >> mpc and others, while your default ABI will be n32.
40 >>
41 >> This should work fine with my proposal, you just have the (already
42 >> default enabled) n32 ABI flag enabled, which results in everything being
43 >> built just for n32. For the packages, where you require additional n64
44 >> libs, you just enable the n64 ABI flag in addition. And if you need n64
45 >> binaries too, you enable the abiwrapper USE flag for them.
46 >
47 > One follow-on question. Consider having a package dev-libs/libpkg
48 > already installed for ABI="n32 -n64" and wanting to emerge another
49 > package that depends on it with ABI="-n32 n64". Will dev-libs/libpkg
50 > have to be rebuilt twice (once for the existing n32 ABI and again for
51 > the newly needed n64), or can we optimize this case by recognizing
52 > that building for multiple ABIs means entirely separate builds?
53
54 Those ABI flags behave the same as other USE flags: When you change
55 them, you have to recompile the package including all the content, that
56 has been compiled previously.
57 If you want the compile for each ABI seperate, then you would have to
58 handle them more like SLOTS, but with a new syntax, with a collision
59 handler for the common content and how to handle that in the user UI. I
60 fear, that this would be way more complicated to implement in a sane
61 way, so i dont plan to go that route.
62
63
64 --
65
66 Thomas Sachau
67 Gentoo Linux Developer

Attachments

File name MIME type
signature.asc application/pgp-signature

Replies