It will become especially useful when more ABI flags are introduced. --- gx86/eclass/multilib-build.eclass | 59 ++++++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 25 deletions(-)
diff --git a/gx86/eclass/multilib-build.eclass b/gx86/eclass/multilib-build.eclass index d8bd5ab..20d4f1c 100644 --- a/gx86/eclass/multilib-build.eclass +++ b/gx86/eclass/multilib-build.eclass @@ -39,6 +39,23 @@ IUSE=multilib # @CODE MULTILIB_USEDEP='multilib(-)?' +# @FUNCTION: multilib_get_enabled_abis +# @DESCRIPTION: +# Return the ordered list of enabled ABIs if multilib builds +# are enabled. The best (most preferred) ABI will come last. +# +# If multilib is disabled, the default ABI will be returned +# in order to enforce consistent testing with multilib code. +multilib_get_enabled_abis() { + debug-print-function ${FUNCNAME} "${@}" + + if use multilib; then + get_all_abis + else + echo ${DEFAULT_ABI} + fi +} + # @FUNCTION: multilib_foreach_abi # @USAGE: <argv>... # @DESCRIPTION: @@ -51,15 +68,11 @@ MULTILIB_USEDEP='multilib(-)?' multilib_foreach_abi() { local initial_dir=${BUILD_DIR:-${S}} - if use multilib; then - local ABI - for ABI in $(get_all_abis); do - multilib_toolchain_setup "${ABI}" - BUILD_DIR=${initial_dir%%/}-${ABI} "${@}" - done - else - "${@}" - fi + local ABI + for ABI in $(multilib_get_enabled_abis); do + multilib_toolchain_setup "${ABI}" + BUILD_DIR=${initial_dir%%/}-${ABI} "${@}" + done } # @FUNCTION: multilib_parallel_foreach_abi @@ -77,26 +90,22 @@ multilib_foreach_abi() { multilib_parallel_foreach_abi() { local initial_dir=${BUILD_DIR:-${S}} - if use multilib; then - multijob_init + multijob_init - local ABI - for ABI in $(get_all_abis); do - ( - multijob_child_init + local ABI + for ABI in $(multilib_get_enabled_abis); do + ( + multijob_child_init - multilib_toolchain_setup "${ABI}" - BUILD_DIR=${initial_dir%%/}-${ABI} - "${@}" - ) & + multilib_toolchain_setup "${ABI}" + BUILD_DIR=${initial_dir%%/}-${ABI} + "${@}" + ) & - multijob_post_fork - done + multijob_post_fork + done - multijob_finish - else - "${@}" - fi + multijob_finish } _MULTILIB_BUILD=1 -- 1.8.1.1