commit:     66f05bf7536ef5dadde32b0faf4ad199eef90dab
Author:     Aric Belsito <lluixhi <AT> gmail <DOT> com>
AuthorDate: Sat Jan  6 22:37:31 2018 +0000
Commit:     Aric Belsito <lluixhi <AT> gmail <DOT> com>
CommitDate: Sat Jan  6 22:37:31 2018 +0000
URL:        https://gitweb.gentoo.org/proj/musl.git/commit/?id=66f05bf7

toolchain.eclass: sync with upstream

 eclass/toolchain.eclass | 90 ++++++++++++++++++++++++-------------------------
 1 file changed, 44 insertions(+), 46 deletions(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index e3011d6..d3a06ea 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 # Maintainer: Toolchain Ninjas <toolch...@gentoo.org>
@@ -23,14 +23,13 @@ fi
 
 FEATURES=${FEATURES/multilib-strict/}
 
-EXPORTED_FUNCTIONS="pkg_setup src_unpack src_compile src_test src_install 
pkg_postinst pkg_postrm"
 case ${EAPI:-0} in
-       0|1)    die "Need to upgrade to at least EAPI=2";;
-       2|3)    EXPORTED_FUNCTIONS+=" src_prepare src_configure" ;;
-       4*|5*)  EXPORTED_FUNCTIONS+=" pkg_pretend src_prepare src_configure" ;;
-       *)      die "I don't speak EAPI ${EAPI}."
+       0|1|2|3) die "Need to upgrade to at least EAPI=4" ;;
+       4*|5*)   ;;
+       *)       die "I don't speak EAPI ${EAPI}." ;;
 esac
-EXPORT_FUNCTIONS ${EXPORTED_FUNCTIONS}
+EXPORT_FUNCTIONS pkg_pretend pkg_setup src_unpack src_prepare src_configure \
+       src_compile src_test src_install pkg_postinst pkg_postrm
 
 #---->> globals <<----
 
@@ -390,10 +389,6 @@ toolchain_pkg_pretend() {
 #---->> pkg_setup <<----
 
 toolchain_pkg_setup() {
-       case ${EAPI} in
-       2|3) toolchain_pkg_pretend ;;
-       esac
-
        # we dont want to use the installed compiler's specs to build gcc
        unset GCC_SPECS
        unset LANGUAGES #265283
@@ -496,7 +491,7 @@ toolchain_src_prepare() {
        do_gcc_PIE_patches
        epatch_user
 
-       if ( tc_version_is_at_least 4.8.2 || use hardened ) && ! use vanilla ; 
then
+       if ( tc_version_is_at_least 4.8.2 || use_if_iuse hardened ) && ! use 
vanilla ; then
                make_gcc_hard
        fi
 
@@ -538,7 +533,7 @@ toolchain_src_prepare() {
        fi
 
        # >= gcc-4.3 doesn't bundle ecj.jar, so copy it
-       if tc_version_is_at_least 4.3 && use gcj ; then
+       if tc_version_is_at_least 4.3 && use_if_iuse gcj ; then
                if tc_version_is_at_least 4.5 ; then
                        einfo "Copying ecj-4.5.jar"
                        cp -pPR "${DISTDIR}/ecj-4.5.jar" "${S}/ecj.jar" || die
@@ -648,20 +643,20 @@ make_gcc_hard() {
 
        # Gcc >= 6.X we can use configurations options to turn pie/ssp on as 
default
        if tc_version_is_at_least 6.0 ; then
-               if use pie ; then
+               if use_if_iuse pie ; then
                        einfo "Updating gcc to use automatic PIE building ..."
                fi
-               if use ssp ; then
+               if use_if_iuse ssp ; then
                        einfo "Updating gcc to use automatic SSP building ..."
                fi
-               if use hardened ; then
+               if use_if_iuse hardened ; then
                        # Will add some optimatizion as default.
                        gcc_hard_flags+=" -DEXTRA_OPTIONS"
                        # rebrand to make bug reports easier
                        
BRANDING_GCC_PKGVERSION=${BRANDING_GCC_PKGVERSION/Gentoo/Gentoo Hardened}
                fi
        else
-               if use hardened ; then
+               if use_if_iuse hardened ; then
                        # rebrand to make bug reports easier
                        
BRANDING_GCC_PKGVERSION=${BRANDING_GCC_PKGVERSION/Gentoo/Gentoo Hardened}
                        if hardened_gcc_works ; then
@@ -909,7 +904,7 @@ toolchain_src_configure() {
 
        # Use the default ("release") checking because upstream usually neglects
        # to test "disabled" so it has a history of breaking. #317217
-       if tc_version_is_at_least 3.4 ; then
+       if tc_version_is_at_least 3.4 && in_iuse debug ; then
                # The "release" keyword is new to 4.0. #551636
                local off=$(tc_version_is_at_least 4.0 && echo release || echo 
no)
                confgcc+=( --enable-checking="${GCC_CHECKS_LIST:-$(usex debug 
yes ${off})}" )
@@ -922,7 +917,7 @@ toolchain_src_configure() {
        )
 
        # If we want hardened support with the newer piepatchset for >=gcc 4.4
-       if tc_version_is_at_least 4.4 && want_minispecs ; then
+       if tc_version_is_at_least 4.4 && want_minispecs && in_iuse hardened ; 
then
                confgcc+=( $(use_enable hardened esp) )
        fi
 
@@ -934,7 +929,7 @@ toolchain_src_configure() {
        fi
 
        # Support to disable pch when building libstdcxx
-       if tc_version_is_at_least 6.0 && ! use pch ; then
+       if tc_version_is_at_least 6.0 && ! use_if_iuse pch ; then
                confgcc+=( --disable-libstdcxx-pch )
        fi
 
@@ -998,7 +993,7 @@ toolchain_src_configure() {
                                        --disable-threads
                                        --without-headers
                                )
-                       elif built_with_use --hidden --missing false 
${CATEGORY}/${needed_libc} crosscompile_opts_headers-only ; then
+                       elif has_version 
"${CATEGORY}/${needed_libc}[crosscompile_opts_headers-only(-)]" ; then
                                confgcc+=(
                                        "${confgcc_no_libc[@]}"
                                        --with-sysroot="${PREFIX}"/${CTARGET}
@@ -1061,12 +1056,12 @@ toolchain_src_configure() {
        gcc-multilib-configure
 
        # ppc altivec support
-       confgcc+=( $(use_enable altivec) )
+       in_iuse altivec && confgcc+=( $(use_enable altivec) )
 
        # gcc has fixed-point arithmetic support in 4.3 for mips targets that 
can
        # significantly increase compile time by several hours.  This will allow
        # users to control this feature in the event they need the support.
-       tc_version_is_at_least 4.3 && confgcc+=( $(use_enable fixed-point) )
+       tc_version_is_at_least 4.3 && in_iuse fixed-point && confgcc+=( 
$(use_enable fixed-point) )
 
        case $(tc-is-softfloat) in
        yes)    confgcc+=( --with-float=soft ) ;;
@@ -1232,23 +1227,26 @@ toolchain_src_configure() {
 
        # graphite was added in 4.4 but we only support it in 4.8+ due to 
external
        # library issues.  #448024
-       if tc_version_is_at_least 5.0 ; then
+       if tc_version_is_at_least 5.0 && in_iuse graphite ; then
                confgcc+=( $(use_with graphite isl) )
                use graphite && confgcc+=( --disable-isl-version-check )
-       elif tc_version_is_at_least 4.8 ; then
+       elif tc_version_is_at_least 4.8 && in_iuse graphite ; then
                confgcc+=( $(use_with graphite cloog) )
                use graphite && confgcc+=( --disable-isl-version-check )
        elif tc_version_is_at_least 4.4 ; then
                confgcc+=( --without-{cloog,ppl} )
        fi
 
-       if tc_version_is_at_least 4.8 ; then
+       if tc_version_is_at_least 4.8 && in_iuse sanitize ; then
                confgcc+=( $(use_enable sanitize libsanitizer) )
        fi
 
-       if tc_version_is_at_least 6.0 ; then
+       if tc_version_is_at_least 6.0 && in_iuse pie ; then
+               confgcc+=( $(use_enable pie default-pie) )
+       fi
+
+       if tc_version_is_at_least 6.0 && in_iuse ssp ; then
                confgcc+=(
-                       $(use_enable pie default-pie)
                        # This defaults to -fstack-protector-strong.
                        $(use_enable ssp default-ssp)
                )
@@ -1487,7 +1485,7 @@ gcc_do_filter_flags() {
 
                # "hppa2.0-unknown-linux-gnu" -> hppa2_0_unknown_linux_gnu
                local VAR="CFLAGS_"${CTARGET//[-.]/_}
-               CXXFLAGS=${!VAR}
+               CXXFLAGS=${!VAR-${CFLAGS}}
        fi
 
        export GCJFLAGS=${GCJFLAGS:-${CFLAGS}}
@@ -1578,7 +1576,7 @@ gcc_do_make() {
                # resulting binaries natively ^^;
                GCC_MAKE_TARGET=${GCC_MAKE_TARGET-all}
        else
-               if tc_version_is_at_least 3.3 && use pgo; then
+               if tc_version_is_at_least 3.3 && use_if_iuse pgo; then
                        GCC_MAKE_TARGET=${GCC_MAKE_TARGET-profiledbootstrap}
                else
                        GCC_MAKE_TARGET=${GCC_MAKE_TARGET-bootstrap-lean}
@@ -1622,7 +1620,7 @@ gcc_do_make() {
                ${GCC_MAKE_TARGET} \
                || die "emake failed with ${GCC_MAKE_TARGET}"
 
-       if ! is_crosscompile && use cxx && use_if_iuse doc ; then
+       if ! is_crosscompile && use_if_iuse cxx && use_if_iuse doc ; then
                if type -p doxygen > /dev/null ; then
                        if tc_version_is_at_least 4.3 ; then
                                cd "${CTARGET}"/libstdc++-v3/doc
@@ -1789,7 +1787,7 @@ toolchain_src_install() {
 
        # Rather install the script, else portage with changing $FILESDIR
        # between binary and source package borks things ....
-       if ! is_crosscompile ; then
+       if ! is_crosscompile && [[ ${PN} != "kgcc64" ]] ; then
                insinto "${DATAPATH#${EPREFIX}}"
                newins "$(prefixify_ro 
"${FILESDIR}"/awk/fixlafiles.awk-no_gcc_la)" fixlafiles.awk || die
                exeinto "${DATAPATH#${EPREFIX}}"
@@ -2083,7 +2081,7 @@ toolchain_pkg_postinst() {
                eselect compiler-shadow update all
        fi
 
-       if ! is_crosscompile ; then
+       if ! is_crosscompile && [[ ${PN} != "kgcc64" ]] ; then
                echo
                ewarn "If you have issues with packages unable to locate 
libstdc++.la,"
                ewarn "then try running 'fix_libtool_files.sh' on the old gcc 
versions."
@@ -2248,13 +2246,13 @@ gcc-lang-supported() {
 
 is_ada() {
        gcc-lang-supported ada || return 1
-       use ada
+       use_if_iuse ada
 }
 
 is_cxx() {
        gcc-lang-supported 'c++' || return 1
        ! is_crosscompile && tc_version_is_at_least 4.8 && return 0
-       use cxx
+       use_if_iuse cxx
 }
 
 is_d() {
@@ -2264,27 +2262,27 @@ is_d() {
 
 is_f77() {
        gcc-lang-supported f77 || return 1
-       use fortran
+       use_if_iuse fortran
 }
 
 is_f95() {
        gcc-lang-supported f95 || return 1
-       use fortran
+       use_if_iuse fortran
 }
 
 is_fortran() {
        gcc-lang-supported fortran || return 1
-       use fortran
+       use_if_iuse fortran
 }
 
 is_gcj() {
        gcc-lang-supported java || return 1
-       use cxx && use_if_iuse gcj
+       use_if_iuse cxx && use_if_iuse gcj
 }
 
 is_go() {
        gcc-lang-supported go || return 1
-       use cxx && use_if_iuse go
+       use_if_iuse cxx && use_if_iuse go
 }
 
 is_jit() {
@@ -2294,7 +2292,7 @@ is_jit() {
 
 is_multilib() {
        tc_version_is_at_least 3 || return 1
-       use multilib
+       use_if_iuse multilib
 }
 
 is_objc() {
@@ -2304,7 +2302,7 @@ is_objc() {
 
 is_objcxx() {
        gcc-lang-supported 'obj-c++' || return 1
-       use cxx && use_if_iuse objc++
+       use_if_iuse cxx && use_if_iuse objc++
 }
 
 # Grab a variable from the build system (taken from linux-info.eclass)
@@ -2376,12 +2374,12 @@ want_minispecs() {
        if tc_version_is_at_least 6.0 ; then
                return 0
        fi
-       if tc_version_is_at_least 4.3.2 && use hardened ; then
+       if tc_version_is_at_least 4.3.2 && use_if_iuse hardened ; then
                if ! want_pie ; then
                        ewarn "PIE_VER or SPECS_VER is not defined in the GCC 
ebuild."
                elif use vanilla ; then
                        ewarn "You will not get hardened features if you have 
the vanilla USE-flag."
-               elif use nopie && use nossp ; then
+               elif use_if_iuse nopie && use_if_iuse nossp ; then
                        ewarn "You will not get hardened features if you have 
the nopie and nossp USE-flag."
                elif ! hardened_gcc_works ; then
                        ewarn "Your $(tc-arch) arch is not supported."
@@ -2395,11 +2393,11 @@ want_minispecs() {
 }
 
 want_pie() {
-       ! use hardened && [[ -n ${PIE_VER} ]] && use nopie && return 1
+       ! use_if_iuse hardened && [[ -n ${PIE_VER} ]] && use_if_iuse nopie && 
return 1
        [[ -n ${PIE_VER} ]] && [[ -n ${SPECS_VER} ]] && return 0
        tc_version_is_at_least 4.3.2 && return 1
        [[ -z ${PIE_VER} ]] && return 1
-       use !nopie && return 0
+       use_if_iuse nopie || return 0
        return 1
 }
 

Reply via email to