Gentoo Archives: gentoo-dev

From: Alexis Ballier <aballier@g.o>
To: gentoo-dev@l.g.o
Cc: tommy@g.o
Subject: Re: [gentoo-dev] Re: [RFC] multilib-build.eclass and restricting unsupported ABIs
Date: Sun, 03 Mar 2013 16:36:01
Message-Id: 20130303173546.0ce7ab31@portable
In Reply to: Re: [gentoo-dev] Re: [RFC] multilib-build.eclass and restricting unsupported ABIs by Thomas Sachau
1 On Sun, 03 Mar 2013 17:27:50 +0100
2 Thomas Sachau <tommy@g.o> wrote:
3
4 > Alexis Ballier schrieb:
5 > > On Sun, 03 Mar 2013 16:47:43 +0100
6 > > Thomas Sachau <tommy@g.o> wrote:
7 > >
8 > >> Alexis Ballier schrieb:
9 > >>> On Sun, 03 Mar 2013 14:02:58 +0100
10 > >>> Thomas Sachau <tommy@g.o> wrote:
11 > >>>>
12 > >>>> Once the eclass has per-ABI header
13 > >>>
14 > >>> I think this is needed.
15 > >>>
16 > >>>> and binaries support,
17 > >>>
18 > >>> but here, could you enlighten me on its use cases ? I can't
19 > >>> imagine why having multi binaries support would be useful.
20 > >>>
21 > >>> Alexis.
22 > >>>
23 > >>
24 > >>
25 > >> At least some binaries do have abi-specific output, which is used
26 > >> by other applications. As a good example of this, have a look at
27 > >> qmake and qmake based build systems.
28 > >
29 > > hmm, qmake doesnt seem to be the perfect example: how do you handle
30 > > this?
31 > >
32 > > - install qmake-${abi}
33 >
34 > ok
35 >
36 > > - ln -s qmake-${DEFAULT_ABI} qmake
37 >
38 > Just the same as with headers:
39 >
40 > You dont symlink the headers for the default ABI, but instead a
41 > wrapper is placed, which does then call/include the real target, so
42 > in this case, qmake is then a symlink to the abiwrapper, which does
43 > execute the real abi-specific binary, depending on the current ABI.
44 > We can of course place this abiwrapper in every place, where it is
45 > needed instead of the symlink, but having one central and package
46 > provided wrapper instead is easier to maintain and update.
47 >
48 > > - modify eqmake4 to call the right qmake when doing multilib?
49 >
50 > not needed at all (with multilib-portage), since when any package
51 > calls qmake to get any abi-specific details, the abiwrapper executes
52 > the binary, that matches the ABI and you get the right details for
53 > your ABI.
54 >
55
56 Indeed, nice idea. The wrapper can just call argv[0]-${ABI} or argv[0]
57 if ABI is unset or argv[0]-${ABI} does not exist.
58 Do you install this abiwrapper with multilib-portage? What would you
59 think about splitting it and adding such a package to the tree?
60
61 Alexis.

Replies