diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-12-06 20:11:50 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-12-06 20:11:50 +0000 |
commit | a82237c4548c2b4eadfdd38549ccb41617444e72 (patch) | |
tree | cf3d3ba869afd360ba0fdc2e50efbe03f9b64cf3 /eclass | |
parent | Fix automagic bzip2 dep. Remove ald versions (diff) | |
download | gentoo-2-a82237c4548c2b4eadfdd38549ccb41617444e72.tar.gz gentoo-2-a82237c4548c2b4eadfdd38549ccb41617444e72.tar.bz2 gentoo-2-a82237c4548c2b4eadfdd38549ccb41617444e72.zip |
fix multilib assumptions when setting up LDPATH (that there is only "32" and "64" subdirs), and make it work regardless of active profile
Diffstat (limited to 'eclass')
-rw-r--r-- | eclass/toolchain.eclass | 49 |
1 files changed, 16 insertions, 33 deletions
diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass index 9e885b4b0646..218024b82995 100644 --- a/eclass/toolchain.eclass +++ b/eclass/toolchain.eclass @@ -1,6 +1,6 @@ # Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain.eclass,v 1.502 2011/12/06 05:22:24 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/toolchain.eclass,v 1.503 2011/12/06 20:11:50 vapier Exp $ # # Maintainer: Toolchain Ninjas <toolchain@gentoo.org> @@ -468,39 +468,21 @@ create_gcc_env_entry() { echo "ROOTPATH=\"${BINPATH}\"" >> ${gcc_envd_file} echo "GCC_PATH=\"${BINPATH}\"" >> ${gcc_envd_file} - if is_multilib ; then - LDPATH="${LIBPATH}" - for path in 32 64 ; do - [[ -d ${D}${LIBPATH}/${path} ]] && LDPATH="${LDPATH}:${LIBPATH}/${path}" - done - else - local MULTIDIR - LDPATH="${LIBPATH}" - - # We want to list the default ABI's LIBPATH first so libtool - # searches that directory first. This is a temporary - # workaround for libtool being stupid and using .la's from - # conflicting ABIs by using the first one in the search path - - local abi=${DEFAULT_ABI} - local MULTIDIR=$($(XGCC) $(get_abi_CFLAGS ${abi}) --print-multi-directory) - if [[ ${MULTIDIR} == "." ]] ; then - LDPATH=${LIBPATH} - else - LDPATH=${LIBPATH}/${MULTIDIR} - fi - - for abi in $(get_all_abis) ; do - [[ ${abi} == ${DEFAULT_ABI} ]] && continue + # We want to list the default ABI's LIBPATH first so libtool + # searches that directory first. This is a temporary + # workaround for libtool being stupid and using .la's from + # conflicting ABIs by using the first one in the search path + local abi=${DEFAULT_ABI} + local MULTIDIR=$($(XGCC) $(get_abi_CFLAGS ${abi}) --print-multi-directory) + local LDPATH=${LIBPATH} + [[ ${MULTIDIR} != "." ]] && LDPATH+=/${MULTIDIR} + for abi in $(get_all_abis) ; do + [[ ${abi} == ${DEFAULT_ABI} ]] && continue - MULTIDIR=$($(XGCC) $(get_abi_CFLAGS ${abi}) --print-multi-directory) - if [[ ${MULTIDIR} == "." ]] ; then - LDPATH=${LDPATH}:${LIBPATH} - else - LDPATH=${LDPATH}:${LIBPATH}/${MULTIDIR} - fi - done - fi + MULTIDIR=$($(XGCC) $(get_abi_CFLAGS ${abi}) --print-multi-directory) + LDPATH+=:${LIBPATH} + [[ ${MULTIDIR} != "." ]] && LDPATH+=/${MULTIDIR} + done echo "LDPATH=\"${LDPATH}\"" >> ${gcc_envd_file} echo "MANPATH=\"${DATAPATH}/man\"" >> ${gcc_envd_file} @@ -1381,6 +1363,7 @@ gcc_do_filter_flags() { } toolchain_src_compile() { + multilib_env ${CTARGET} gcc_do_filter_flags einfo "CFLAGS=\"${CFLAGS}\"" einfo "CXXFLAGS=\"${CXXFLAGS}\"" |