Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: Gentoo Developer Mailing List <gentoo-dev@l.g.o>
Cc: amd64@g.o, tommy@g.o
Subject: [gentoo-dev] [RFC] multilib-build.eclass and restricting unsupported ABIs
Date: Sat, 02 Mar 2013 23:02:20
Message-Id: 20130303000230.13fea8b8@pomiocik.lan
1 Hello,
2
3 With the introduction of support for x32 ABI it has become necessary to
4 enhance the multilib-build eclass with some kind of support for
5 specifying the supported/unsupported ABIs.
6
7 In this particular context, tetromino has noted that many packages
8 don't support the x32 ABI. From the ones currently using the eclass,
9 the one is app-emulation/wine.
10
11 I would like to enhance the eclass with the ability to specify
12 supported and unsupported ABIs. For that reason, I'd like to gather
13 your opinion on what would be the best solution. Preferably, I'd see
14 one that could work both for the eclass and multilib-portage so that we
15 wouldn't need to duplicate the same information.
16
17
18 1) opt-in or opt-out?
19
20 So far, the multilib-capable packages did get support for all multilib
21 ABIs on given architecture enabled (assuming that the package is
22 keyworded for the arch).
23
24 As a next step from that, I think an opt-out solution be the simplest
25 and most consistent one. In this particular context:
26
27 MULTILIB_RESTRICT_ABIS=( ... )
28
29 which would be an optional variable disabling support for problematic
30 ABIs in the packages which need it.
31
32
33 An alternative solution would be an opt-in like in python-r1:
34
35 MULTILIB_COMPAT=( ... )
36
37 but so far, that would mean that all current packages will have to be
38 updated to list the currently supported ABIs. And it all sucks a bit
39 due to the gray zone between amd64/x86 keyword and ABIs.
40
41
42 And no, optional MULTILIB_COMPAT is a no-go. It's a weird breed of
43 opt-in and opt-out which is just awful.
44
45
46
47 2) USE flag names or ABI names?
48
49 Next thing to decide would be: whether the restrict should specify USE
50 flag names (like the eclass solution) or ABI names (like
51 portage-multilib and profiles).
52
53 The advantage of USE flags is that they are guaranteed to be unique
54 and clear. As in, two arches won't ever have the same USE flag for ABI
55 with the same name.
56
57 MULTILIB_RESTRICT_ABIS=( abi_x86_x32 )
58
59 The advantage of ABI names is that multilib-portage is aware of them.
60 So, it's mostly about supporting a poor choice done without consulting
61 other developers.
62
63 MULTILIB_RESTRICT_ABIS=( x32 )
64
65 The problem with that is that a new arch can define an ABI with exactly
66 the same name (since all ABI variables are profile-local). In that
67 case, the restriction will unexpectedly apply to that arch.
68
69
70 By the way, maybe we should move the flag -> ABI mapping from
71 the eclass to some global location in profiles? That would make it
72 possible to use the global flags from multilib-portage as well.
73
74 What are your thoughts?
75
76 --
77 Best regards,
78 Michał Górny

Attachments

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

Replies