--- multilib.eclass 7 Mar 2011 02:46:28 -0000 1.80 +++ multilib.eclass 10 Mar 2011 00:25:11 -0000 @@ -678,15 +450,24 @@ multilib_toolchain_setup() { export ABI=$1 + # First restore any saved state we have laying around. + if [[ ${__DEFAULT_ABI_SAVED} == "true" ]] ; then + for v in CHOST CBUILD AS CC CXX LD ; do + vv="__abi_saved_${v}" + export ${v}="${!vv}" + unset ${vv} + done + unset __DEFAULT_ABI_SAVED + fi + # We want to avoid the behind-the-back magic of gcc-config as it # screws up ccache and distcc. See #196243 for more info. if [[ ${ABI} != ${DEFAULT_ABI} ]] ; then - if [[ ${DEFAULT_ABI_SAVED} != "true" ]] ; then - for v in CHOST CBUILD AS CC CXX LD ; do - export __abi_saved_${v}="${!v}" - done - export DEFAULT_ABI_SAVED="true" - fi + # Back that multilib-ass up so we can restore it later + for v in CHOST CBUILD AS CC CXX LD ; do + export __abi_saved_${v}="${!v}" + done + export __DEFAULT_ABI_SAVED="true" # Set the CHOST native first so that we pick up the native # toolchain and not a cross-compiler by accident #202811. @@ -697,11 +478,5 @@ multilib_toolchain_setup() { export LD="$(tc-getLD) $(get_abi_LDFLAGS)" export CHOST=$(get_abi_CHOST $1) export CBUILD=$(get_abi_CHOST $1) - - elif [[ ${DEFAULT_ABI_SAVED} == "true" ]] ; then - for v in CHOST CBUILD AS CC CXX LD ; do - vv="__abi_saved_${v}" - export ${v}="${!vv}" - done fi }