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. :)
Hmm, or maybe we could include 'arch?' conditionals in the REQUIRED_USE?
(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 :)
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.
(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...