Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 600134

Summary: multilib-build.eclass: Setting MULTILIB_COMPAT prevents use by non-multilib arches
Product: Gentoo Linux Reporter: James Le Cuirot <chewi>
Component: EclassesAssignee: Michał Górny <mgorny>
Status: CONFIRMED ---    
Severity: normal CC: gentoo, sam
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description James Le Cuirot gentoo-dev 2016-11-17 22:14:36 UTC
I build icedtea-bin binaries for several arches.

KEYWORDS="-* amd64 ~arm ppc64 x86"

Recently I added multilib support.

MULTILIB_COMPAT=( abi_ppc_64 abi_x86_{32,64} )

I didn't notice till today that this sets REQUIRED_USE in such a way that arm cannot use the ebuild. It isn't present in the _MULTILIB_FLAGS list.

Multilib on this particular package is only useful in corner cases like native 32-bit proprietary code and Steam games. It is therefore behind a flag that is disabled by default. It would work fine on arm if it weren't for the REQUIRED_USE. Perhaps a way to make the REQUIRED_USE conditional on the multilib flag would help.

As just discussed on IRC, arm/arm64 multilib should probably be a thing but I'm not pushing for that. :)
Comment 1 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-03-12 09:29:02 UTC
Hmm, or maybe we could include 'arch?' conditionals in the REQUIRED_USE?
Comment 2 Alexis Ballier gentoo-dev 2017-03-12 09:50:11 UTC
(In reply to Michał Górny from comment #1)
> Hmm, or maybe we could include 'arch?' conditionals in the REQUIRED_USE?

it's probably better to just have flags for every arch

after all, arm no-multilib is just arm with 1 abi :)
Comment 3 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2017-03-12 10:32:46 UTC
Do you really think it would be beneficial to add flags for all kinds of alpha, riscv, sh, sparc...? That sounds like a lot of noise for a no-go use case.
Comment 4 Alexis Ballier gentoo-dev 2017-03-12 11:07:23 UTC
(In reply to Michał Górny from comment #3)
> Do you really think it would be beneficial to add flags for all kinds of
> alpha, riscv, sh, sparc...? That sounds like a lot of noise for a no-go use
> case.

I always assumed that at least one abi_arch_foo would be enabled, just like profiles set ABI and DEFAULT_ABI and it allows to simplify that kind of handling (e.g. in multilib_get_enabled_abi_pairs).
I'm not talking about all kinds of those arches, but at least one for their DEFAULT_ABI.

The noise is greatly reduced if those are not removed from USE_EXPAND_HIDDEN, like on x86.


One advantage is that you can enable that REQUIRED_USE thing for all multilib-build ebuilds, not just those setting _COMPAT, and it'd be clear something is wrong with a profile when hitting an unsatisfied requse.
Note: Don't rely on repoman for checking it is ok to add this REQUIRED_USE as it doesn't check its satisfiability...