Gentoo Archives: gentoo-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-dev@l.g.o
Cc: amd64@g.o, releng@g.o, x11@g.o, "Michał Górny" <mgorny@g.o>
Subject: [gentoo-dev] [PATCH 1/5] Introduce a common function to obtain enabled ABIs.
Date: Sat, 26 Jan 2013 22:09:36
Message-Id: 1359238096-13232-2-git-send-email-mgorny@gentoo.org
In Reply to: [gentoo-dev] [PATCHES] x86 multilib flags, ver. 2 by "Michał Górny"
1 It will become especially useful when more ABI flags are introduced.
2 ---
3 gx86/eclass/multilib-build.eclass | 59 ++++++++++++++++++++++-----------------
4 1 file changed, 34 insertions(+), 25 deletions(-)
5
6 diff --git a/gx86/eclass/multilib-build.eclass b/gx86/eclass/multilib-build.eclass
7 index d8bd5ab..20d4f1c 100644
8 --- a/gx86/eclass/multilib-build.eclass
9 +++ b/gx86/eclass/multilib-build.eclass
10 @@ -39,6 +39,23 @@ IUSE=multilib
11 # @CODE
12 MULTILIB_USEDEP='multilib(-)?'
13
14 +# @FUNCTION: multilib_get_enabled_abis
15 +# @DESCRIPTION:
16 +# Return the ordered list of enabled ABIs if multilib builds
17 +# are enabled. The best (most preferred) ABI will come last.
18 +#
19 +# If multilib is disabled, the default ABI will be returned
20 +# in order to enforce consistent testing with multilib code.
21 +multilib_get_enabled_abis() {
22 + debug-print-function ${FUNCNAME} "${@}"
23 +
24 + if use multilib; then
25 + get_all_abis
26 + else
27 + echo ${DEFAULT_ABI}
28 + fi
29 +}
30 +
31 # @FUNCTION: multilib_foreach_abi
32 # @USAGE: <argv>...
33 # @DESCRIPTION:
34 @@ -51,15 +68,11 @@ MULTILIB_USEDEP='multilib(-)?'
35 multilib_foreach_abi() {
36 local initial_dir=${BUILD_DIR:-${S}}
37
38 - if use multilib; then
39 - local ABI
40 - for ABI in $(get_all_abis); do
41 - multilib_toolchain_setup "${ABI}"
42 - BUILD_DIR=${initial_dir%%/}-${ABI} "${@}"
43 - done
44 - else
45 - "${@}"
46 - fi
47 + local ABI
48 + for ABI in $(multilib_get_enabled_abis); do
49 + multilib_toolchain_setup "${ABI}"
50 + BUILD_DIR=${initial_dir%%/}-${ABI} "${@}"
51 + done
52 }
53
54 # @FUNCTION: multilib_parallel_foreach_abi
55 @@ -77,26 +90,22 @@ multilib_foreach_abi() {
56 multilib_parallel_foreach_abi() {
57 local initial_dir=${BUILD_DIR:-${S}}
58
59 - if use multilib; then
60 - multijob_init
61 + multijob_init
62
63 - local ABI
64 - for ABI in $(get_all_abis); do
65 - (
66 - multijob_child_init
67 + local ABI
68 + for ABI in $(multilib_get_enabled_abis); do
69 + (
70 + multijob_child_init
71
72 - multilib_toolchain_setup "${ABI}"
73 - BUILD_DIR=${initial_dir%%/}-${ABI}
74 - "${@}"
75 - ) &
76 + multilib_toolchain_setup "${ABI}"
77 + BUILD_DIR=${initial_dir%%/}-${ABI}
78 + "${@}"
79 + ) &
80
81 - multijob_post_fork
82 - done
83 + multijob_post_fork
84 + done
85
86 - multijob_finish
87 - else
88 - "${@}"
89 - fi
90 + multijob_finish
91 }
92
93 _MULTILIB_BUILD=1
94 --
95 1.8.1.1