commit:     4a3bfe56f647fd16ec529d3632030bbbcaacee06
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Mon Jun  6 07:44:47 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Jun  6 23:18:02 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4a3bfe56

toolchain.eclass: style cleanups, missing dies

Signed-off-by: Sam James <sam <AT> gentoo.org>

 eclass/toolchain.eclass | 86 +++++++++++++++++++++++++++----------------------
 1 file changed, 47 insertions(+), 39 deletions(-)

diff --git a/eclass/toolchain.eclass b/eclass/toolchain.eclass
index eadaa0d83205..ea1e8f556520 100644
--- a/eclass/toolchain.eclass
+++ b/eclass/toolchain.eclass
@@ -197,7 +197,7 @@ tc_has_feature() {
        has "$1" "${TC_FEATURES[@]}"
 }
 
-if [[ ${PN} != "kgcc64" && ${PN} != gcc-* ]] ; then
+if [[ ${PN} != kgcc64 && ${PN} != gcc-* ]] ; then
        IUSE+=" debug +cxx +nptl" TC_FEATURES+=( nptl )
        [[ -n ${PIE_VER} ]] && IUSE+=" nopie"
        [[ -n ${SPECS_VER} ]] && IUSE+=" nossp"
@@ -1161,7 +1161,7 @@ toolchain_src_configure() {
        local with_abi_map=()
        case $(tc-arch) in
                arm)
-                       # bug 264534, bug #414395
+                       # bug #264534, bug #414395
                        local a arm_arch=${CTARGET%%-*}
                        # Remove trailing endian variations first: eb el be bl 
b l
                        for a in e{b,l} {b,l}e b l ; do
@@ -1182,7 +1182,7 @@ toolchain_src_configure() {
                                confgcc+=( --with-arch=${arm_arch} )
                        fi
 
-                       # Make default mode thumb for microcontroller classes 
#418209
+                       # Make default mode thumb for microcontroller classes, 
bug #418209
                        [[ ${arm_arch} == *-m ]] && confgcc+=( 
--with-mode=thumb )
 
                        # Enable hardvfp
@@ -1211,7 +1211,7 @@ toolchain_src_configure() {
                        fi
                        ;;
                x86)
-                       # Default arch for x86 is normally i386, lets give it a 
bump
+                       # Default arch for x86 is normally i386, let's give it 
a bump
                        # since glibc will do so based on CTARGET anyways
                        confgcc+=( --with-arch=${CTARGET%%-*} )
                        ;;
@@ -1225,12 +1225,13 @@ toolchain_src_configure() {
                        [[ ${CTARGET//_/-} == *-e500v2-* ]] && confgcc+=( 
--enable-e500-double )
                        ;;
                ppc64)
-                       # On ppc64 big endian target gcc assumes elfv1 by 
default,
-                       # and elfv2 on little endian
-                       # but musl does not support elfv1 at all on any endian 
ppc64
-                       # see https://git.musl-libc.org/cgit/musl/tree/INSTALL
-                       # bug #704784
-                       # https://gcc.gnu.org/PR93157
+                       # On ppc64, the big endian target gcc assumes elfv1 by 
default,
+                       # and elfv2 on little endian.
+                       # But musl does not support elfv1 at all on any endian 
ppc64.
+                       # See:
+                       # - https://git.musl-libc.org/cgit/musl/tree/INSTALL
+                       # - bug #704784
+                       # - https://gcc.gnu.org/PR93157
                        [[ ${CTARGET} == powerpc64-*-musl ]] && confgcc+=( 
--with-abi=elfv2 )
                        ;;
                riscv)
@@ -1239,7 +1240,7 @@ toolchain_src_configure() {
                        ;;
        esac
 
-       # if the target can do biarch (-m32/-m64), enable it.  overhead should
+       # If the target can do biarch (-m32/-m64), enable it.  overhead should
        # be small, and should simplify building of 64bit kernels in a 32bit
        # userland by not needing sys-devel/kgcc64. bug #349405
        case $(tc-arch) in
@@ -1275,14 +1276,14 @@ toolchain_src_configure() {
        if in_iuse openmp ; then
                # Make sure target has pthreads support: bug #326757, bug 
#335883
                # There shouldn't be a chicken & egg problem here as openmp 
won't
-               # build without a C library, and you can't build that w/out
-               # already having a compiler ...
+               # build without a C library, and you can't build that w/ot
+               # already having a compiler...
                if ! is_crosscompile || \
                   $(tc-getCPP ${CTARGET}) -E - <<<"#include <pthread.h>" >& 
/dev/null
                then
                        confgcc+=( $(use_enable openmp libgomp) )
                else
-                       # Force disable as the configure script can be dumb 
#359855
+                       # Force disable as the configure script can be dumb, 
bug #359855
                        confgcc+=( --disable-libgomp )
                fi
        else
@@ -1296,9 +1297,10 @@ toolchain_src_configure() {
                if hardened_gcc_is_stable ssp; then
                        export gcc_cv_libc_provides_ssp=yes
                fi
+
                if _tc_use_if_iuse ssp; then
                        # On some targets USE="ssp -libssp" is an invalid
-                       # configuration as target libc does not provide
+                       # configuration as the target libc does not provide
                        # stack_chk_* functions. Do not disable libssp there.
                        case ${CTARGET} in
                                mingw*|*-mingw*)
@@ -1414,13 +1416,12 @@ toolchain_src_configure() {
        einfo "LIBPATH:         ${LIBPATH}"
        einfo "DATAPATH:        ${DATAPATH}"
        einfo "STDCXX_INCDIR:   ${STDCXX_INCDIR}"
-       echo
        einfo "Languages:       ${GCC_LANG}"
        echo
 
        # Build in a separate build tree
        mkdir -p "${WORKDIR}"/build || die
-       pushd "${WORKDIR}"/build > /dev/null
+       pushd "${WORKDIR}"/build > /dev/null || die
 
        # ...and now to do the actual configuration
        addwrite /dev/zero
@@ -1585,7 +1586,7 @@ gcc_do_filter_flags() {
                append-flags -O2
        fi
 
-       # Don't want to funk ourselves
+       # Avoid shooting self in foot
        filter-flags '-mabi*' -m31 -m32 -m64
 
        # bug #490738
@@ -1652,14 +1653,17 @@ setup_minispecs_gcc_build_specs() {
        if hardened_gcc_works pie ; then
                cat "${WORKDIR}"/specs/pie.specs >> "${WORKDIR}"/build.specs
        fi
+
        if hardened_gcc_works ssp ; then
                for s in ssp sspall ; do
                        cat "${WORKDIR}"/specs/${s}.specs >> 
"${WORKDIR}"/build.specs
                done
        fi
+
        for s in nostrict znow ; do
                cat "${WORKDIR}"/specs/${s}.specs >> "${WORKDIR}"/build.specs
        done
+
        export GCC_SPECS="${WORKDIR}"/build.specs
 }
 
@@ -1680,10 +1684,11 @@ gcc-multilib-configure() {
                local l=$(gcc-abi-map ${abi})
                [[ -n ${l} ]] && list+=",${l}"
        done
+
        if [[ -n ${list} ]] ; then
                case ${CTARGET} in
-               x86_64*)
-                       tc_version_is_at_least 4.8 && confgcc+=( 
--with-multilib-list=${list:1} )
+                       x86_64*)
+                               tc_version_is_at_least 4.8 && confgcc+=( 
--with-multilib-list=${list:1} )
                        ;;
                esac
        fi
@@ -1714,7 +1719,7 @@ gcc-abi-map() {
 #----> src_compile <----
 
 toolchain_src_compile() {
-       touch "${S}"/gcc/c-gperf.h
+       touch "${S}"/gcc/c-gperf.h || die
 
        # Do not make manpages if we do not have perl ...
        [[ ! -x /usr/bin/perl ]] \
@@ -1758,7 +1763,7 @@ gcc_do_make() {
 
        # Older versions of GCC could not do profiledbootstrap in parallel due 
to
        # collisions with profiling info.
-       if [[ ${GCC_MAKE_TARGET} == "profiledbootstrap" ]]; then
+       if [[ ${GCC_MAKE_TARGET} == "profiledbootstrap" ]] ; then
                ! tc_version_is_at_least 4.6 && export MAKEOPTS="${MAKEOPTS} 
-j1"
        fi
 
@@ -1795,7 +1800,7 @@ gcc_do_make() {
 
        einfo "Compiling ${PN} (${GCC_MAKE_TARGET})..."
 
-       pushd "${WORKDIR}"/build >/dev/null
+       pushd "${WORKDIR}"/build >/dev/null || die
 
        emake \
                LDFLAGS="${LDFLAGS}" \
@@ -1805,10 +1810,11 @@ gcc_do_make() {
                ${GCC_MAKE_TARGET}
 
        if is_ada; then
-               # Without these links it is not getting the good compiler
-               # Need to check why
+               # Without these links, it is not getting the good compiler
+               # TODO: Need to check why
                ln -s gcc ../build/prev-gcc || die
                ln -s ${CHOST} ../build/prev-${CHOST} || die
+
                # Building standard ada library
                emake -C gcc gnatlib-shared
                # Building gnat toold
@@ -1837,7 +1843,7 @@ gcc_do_make() {
                fi
        fi
 
-       popd >/dev/null
+       popd >/dev/null || die
 }
 
 #---->> src_test <<----
@@ -1854,14 +1860,14 @@ toolchain_src_test() {
 #---->> src_install <<----
 
 toolchain_src_install() {
-       cd "${WORKDIR}"/build
+       cd "${WORKDIR}"/build || die
 
        # Don't allow symlinks in private gcc include dir as this can break the 
build
-       find gcc/include*/ -type l -delete
+       find gcc/include*/ -type l -delete || die
 
        # Copy over the info pages.  We disabled their generation earlier, but 
the
        # build system only expects to install out of the build dir, not the 
source. bug #464008
-       mkdir -p gcc/doc
+       mkdir -p gcc/doc || die
        local x=
        for x in "${S}"/gcc/doc/*.info* ; do
                if [[ -f ${x} ]] ; then
@@ -1934,7 +1940,7 @@ toolchain_src_install() {
        gcc_slot_java
 
        dodir /usr/bin
-       cd "${D}"${BINPATH}
+       cd "${D}"${BINPATH} || die
        # Ugh: we really need to auto-detect this list.
        #      It's constantly out of date.
        for x in cpp gcc g++ c++ gcov g77 gcj gcjh gfortran gccgo gnat* ; do
@@ -2075,14 +2081,14 @@ toolchain_src_install() {
 
        # Disable RANDMMAP so PCH works, bug #301299
        if tc_version_is_at_least 4.3 ; then
-               pax-mark -r 
"${D}${PREFIX}/libexec/gcc/${CTARGET}/${GCC_CONFIG_VER}/cc1"
-               pax-mark -r 
"${D}${PREFIX}/libexec/gcc/${CTARGET}/${GCC_CONFIG_VER}/cc1plus"
+               pax-mark -r "${ED}/libexec/gcc/${CTARGET}/${GCC_CONFIG_VER}/cc1"
+               pax-mark -r 
"${ED}/libexec/gcc/${CTARGET}/${GCC_CONFIG_VER}/cc1plus"
        fi
 
        # Disable MPROTECT so java works, bug #574808
        if is_gcj ; then
-               pax-mark -m 
"${D}${PREFIX}/libexec/gcc/${CTARGET}/${GCC_CONFIG_VER}/ecj1"
-               pax-mark -m 
"${D}${PREFIX}/${CTARGET}/gcc-bin/${GCC_CONFIG_VER}/gij"
+               pax-mark -m 
"${ED}/libexec/gcc/${CTARGET}/${GCC_CONFIG_VER}/ecj1"
+               pax-mark -m "${ED}/${CTARGET}/gcc-bin/${GCC_CONFIG_VER}/gij"
        fi
 }
 
@@ -2153,6 +2159,7 @@ gcc_movelibs() {
        for FROMDIR in ${removedirs} ; do
                rmdir "${D}"${FROMDIR} >& /dev/null
        done
+
        find -depth "${ED}" -type d -exec rmdir {} + >& /dev/null
 }
 
@@ -2162,13 +2169,13 @@ gcc_movelibs() {
 fix_libtool_libdir_paths() {
        local libpath="$1"
 
-       pushd "${D}" >/dev/null
+       pushd "${D}" >/dev/null || die
 
-       pushd "./${libpath}" >/dev/null
+       pushd "./${libpath}" >/dev/null || die
        local dir="${PWD#${D%/}}"
        local allarchives=$(echo *.la)
        allarchives="\(${allarchives// /\\|}\)"
-       popd >/dev/null
+       popd >/dev/null || die
 
        # The libdir might not have any .la files. bug #548782
        find "./${dir}" -maxdepth 1 -name '*.la' \
@@ -2180,13 +2187,13 @@ fix_libtool_libdir_paths() {
        find "./${dir}/" -maxdepth 1 -name '*.la' \
                -exec sed -i -e "/^dependency_libs=/s:/[^ 
]*/${allarchives}:${libpath}/\1:g" {} + || die
 
-       popd >/dev/null
+       popd >/dev/null || die
 }
 
 create_gcc_env_entry() {
        dodir /etc/env.d/gcc
-       local gcc_envd_base="/etc/env.d/gcc/${CTARGET}-${GCC_CONFIG_VER}"
 
+       local gcc_envd_base="/etc/env.d/gcc/${CTARGET}-${GCC_CONFIG_VER}"
        local gcc_specs_file
        local gcc_envd_file="${ED}${gcc_envd_base}"
        if [[ -z $1 ]] ; then
@@ -2307,6 +2314,7 @@ gcc_slot_java() {
 
 toolchain_pkg_postinst() {
        do_gcc_config
+
        if [[ ! ${ROOT} && -f 
${EPREFIX}/usr/share/eselect/modules/compiler-shadow.eselect ]] ; then
                eselect compiler-shadow update all
        fi

Reply via email to