aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2016-06-02 11:26:55 -0400
committerMike Frysinger <vapier@gentoo.org>2016-06-02 11:26:55 -0400
commit0bdbb5fb2d15cd433a8a7d0176ae3c5a3a957373 (patch)
treead4e8ee75254d1a46531e8cdbf2775340bb1c2e3
parentcrossdev: handle multiple repos at same prio level (diff)
downloadcrossdev-0bdbb5fb2d15cd433a8a7d0176ae3c5a3a957373.tar.gz
crossdev-0bdbb5fb2d15cd433a8a7d0176ae3c5a3a957373.tar.bz2
crossdev-0bdbb5fb2d15cd433a8a7d0176ae3c5a3a957373.zip
crossdev: make multilib eclass loading/parsing more robust
Be a bit more proactive in detecting errors so we don't hit another infinite loop. URL: https://bugs.gentoo.org/531044 Reported-by: Ulrar <lemonnier.k@gmail.com> Reported-by: Samuel Loewen <samuellwn@gmail.com>
-rwxr-xr-xcrossdev11
1 files changed, 7 insertions, 4 deletions
diff --git a/crossdev b/crossdev
index 686b906..5cb319c 100755
--- a/crossdev
+++ b/crossdev
@@ -739,7 +739,7 @@ if [[ -e ${d}/env ]] ; then
fi
# parse multilib settings until profiles are sane
-multilib_env() {
+load_multilib_env() {
local var=$1
eval $(
# see what target to parse
@@ -764,7 +764,10 @@ multilib_env() {
else
single_abi=false
fi
- multilib_env
+ if ! multilib_env ; then
+ echo "die 'could not load multilib settings for ${var}'"
+ exit 1
+ fi
${single_abi} && MULTILIB_ABIS=${DEFAULT_ABI}
# output the desired env
@@ -792,10 +795,10 @@ multilib_env() {
)
}
# Load settings for the host.
-MULTILIB_ABIS=${HOST_ABI} multilib_env HCHOST
+MULTILIB_ABIS=${HOST_ABI} load_multilib_env HCHOST
HOST_ABI=${_MULTILIB_ABIS}
# Load settings for the target.
-multilib_env CTARGET
+load_multilib_env CTARGET
DEFAULT_ABI=${MULTILIB_ABIS%% *}
if [[ -z ${MULTILIB_USE} ]] ; then