commit:     c121a1faf88221af7246c45687578f5258c416af
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Mon Jun 21 20:56:09 2021 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Mon Jun 21 20:56:09 2021 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=c121a1fa

wrappers/emerge-wrapper: fail crossdev setup when toolchain-funcs.eclass 
sourcing fails

Before the change toolchain-funcs.eclass import failure did not fail hard
and generated suboptimal default ARCH. It's not as bad as crossdev's
equivalent 'multilib.eclass' source failure, but still not perfect.

The change exposes die() calls to be visible in crossdev run:
```
$ rm -rf '@GENTOO_PORTAGE_EPREFIX <AT> /usr/foo/etc'; ./emerge-wrapper --target 
foo --init
emerge-wrapper: ERROR: toolchain-funcs.eclass: EAPI 0 not supported
emerge-wrapper: ERROR: Failed calling 'tc-arch' from toolchain-funcs.eclass.
```

Reported-by: Marco Scardovi (scardracs)
Bug: https://bugs.gentoo.org/797367
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 wrappers/emerge-wrapper | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/wrappers/emerge-wrapper b/wrappers/emerge-wrapper
index 381214e..d9ba08b 100755
--- a/wrappers/emerge-wrapper
+++ b/wrappers/emerge-wrapper
@@ -17,7 +17,7 @@ PREFIX="@PREFIX@"
 # Enable this script to be manually installed while debugging
 [[ ${PREFIX} == "@"PREFIX"@" ]] && PREFIX="/usr"
 
-err() { echo "emerge-wrapper: $*" 1>&2; exit 1; }
+err() { echo "emerge-wrapper: ERROR: $*" 1>&2; exit 1; }
 
 emit_setup_warning()
 {
@@ -47,9 +47,11 @@ cross_wrap_etc()
        # Re-use existing CHOST->portage ARCH mapping code
        ARCH=$(
                inherit() { :; }
+               die() { err "toolchain-funcs.eclass$*"; }
                . "${MAIN_REPO_PATH}"/eclass/toolchain-funcs.eclass
                tc-arch
        )
+       [[ $? -ne 0 ]] && err "Failed calling 'tc-arch' from 
toolchain-funcs.eclass."
        [[ ${ARCH} == "unknown" ]] && emit_setup_warning "No ARCH is known for 
this target."
 
        LIBC="__LIBC__"

Reply via email to