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 |