public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [RFC] multilib-build.eclass and restricting unsupported ABIs
@ 2013-03-02 23:02 Michał Górny
  2013-03-03 11:41 ` Alexis Ballier
  2013-03-03 13:02 ` [gentoo-dev] " Thomas Sachau
  0 siblings, 2 replies; 36+ messages in thread
From: Michał Górny @ 2013-03-02 23:02 UTC (permalink / raw
  To: Gentoo Developer Mailing List; +Cc: amd64, tommy

[-- Attachment #1: Type: text/plain, Size: 2649 bytes --]

Hello,

With the introduction of support for x32 ABI it has become necessary to
enhance the multilib-build eclass with some kind of support for
specifying the supported/unsupported ABIs.

In this particular context, tetromino has noted that many packages
don't support the x32 ABI. From the ones currently using the eclass,
the one is app-emulation/wine.

I would like to enhance the eclass with the ability to specify
supported and unsupported ABIs. For that reason, I'd like to gather
your opinion on what would be the best solution. Preferably, I'd see
one that could work both for the eclass and multilib-portage so that we
wouldn't need to duplicate the same information.


1) opt-in or opt-out?

So far, the multilib-capable packages did get support for all multilib
ABIs on given architecture enabled (assuming that the package is
keyworded for the arch).

As a next step from that, I think an opt-out solution be the simplest
and most consistent one. In this particular context:

  MULTILIB_RESTRICT_ABIS=( ... )

which would be an optional variable disabling support for problematic
ABIs in the packages which need it.


An alternative solution would be an opt-in like in python-r1:

  MULTILIB_COMPAT=( ... )

but so far, that would mean that all current packages will have to be
updated to list the currently supported ABIs. And it all sucks a bit
due to the gray zone between amd64/x86 keyword and ABIs.


And no, optional MULTILIB_COMPAT is a no-go. It's a weird breed of
opt-in and opt-out which is just awful.



2) USE flag names or ABI names?

Next thing to decide would be: whether the restrict should specify USE
flag names (like the eclass solution) or ABI names (like
portage-multilib and profiles).

The advantage of USE flags is that they are guaranteed to be unique
and clear. As in, two arches won't ever have the same USE flag for ABI
with the same name.

  MULTILIB_RESTRICT_ABIS=( abi_x86_x32 )

The advantage of ABI names is that multilib-portage is aware of them.
So, it's mostly about supporting a poor choice done without consulting
other developers.

  MULTILIB_RESTRICT_ABIS=( x32 )

The problem with that is that a new arch can define an ABI with exactly
the same name (since all ABI variables are profile-local). In that
case, the restriction will unexpectedly apply to that arch.


By the way, maybe we should move the flag -> ABI mapping from
the eclass to some global location in profiles? That would make it
possible to use the global flags from multilib-portage as well.

What are your thoughts?

-- 
Best regards,
Michał Górny

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 966 bytes --]

^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2013-03-15 14:25 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-02 23:02 [gentoo-dev] [RFC] multilib-build.eclass and restricting unsupported ABIs Michał Górny
2013-03-03 11:41 ` Alexis Ballier
2013-03-03 12:37   ` Michał Górny
2013-03-03 13:02 ` [gentoo-dev] " Thomas Sachau
2013-03-03 15:24   ` Alexis Ballier
2013-03-03 15:47     ` Thomas Sachau
2013-03-03 16:10       ` Alexis Ballier
2013-03-03 16:27         ` Thomas Sachau
2013-03-03 16:35           ` Alexis Ballier
2013-03-03 21:39             ` Thomas Sachau
2013-03-04  9:42               ` Alexis Ballier
2013-03-03 16:58           ` Michał Górny
2013-03-03 17:18             ` Alexis Ballier
2013-03-03 22:25               ` Michał Górny
2013-03-04 10:02                 ` Alexis Ballier
2013-03-04 20:17                   ` Thomas Sachau
2013-03-07 16:29                     ` Alexis Ballier
2013-03-07 18:59                       ` Thomas Sachau
2013-03-08  3:17                         ` Davide Pesavento
2013-03-08 14:33                           ` Thomas Sachau
2013-03-08  4:47                         ` Michał Górny
2013-03-08 11:13                           ` Alexis Ballier
2013-03-08 11:10                         ` Alexis Ballier
2013-03-08 14:44                           ` Thomas Sachau
2013-03-09 10:45                             ` Alexis Ballier
2013-03-04 20:49                   ` Michał Górny
2013-03-04 22:21                     ` Thomas Sachau
2013-03-04 22:49                       ` Michał Górny
2013-03-08 18:25                       ` [gentoo-dev] " Steven J. Long
2013-03-07 16:25                     ` [gentoo-dev] " Alexis Ballier
2013-03-08 16:30                       ` Michał Górny
2013-03-09 10:10                         ` Alexis Ballier
2013-03-10 13:42                           ` Michał Górny
2013-03-15 10:32                             ` Alexis Ballier
2013-03-15 14:25                               ` Michał Górny
2013-03-03 16:00     ` Chí-Thanh Christopher Nguyễn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox