commit:     03f39731a884d2b38f60e3ed44f93c0a3529240c
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 25 19:45:56 2017 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sat Nov 25 19:45:56 2017 +0000
URL:        https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=03f39731

sys-devel/gcc-config: sync

Package-Manager: Portage-2.3.13-prefix, Repoman-2.3.4

 sys-devel/gcc-config/Manifest                      |    2 +-
 sys-devel/gcc-config/files/gcc-config-1.5          | 1054 --------------------
 .../gcc-config-1.8-copy-gcc-libs-darwin.patch      |    4 +-
 .../files/gcc-config-1.8-copy-gcc-libs.patch       |  212 ----
 ...8-dont_source_functions_sh_from_etc_initd.patch |   47 -
 ....8-cygwin.patch => gcc-config-1.9-cygwin.patch} |   14 +-
 .../files/gcc-config-prefix-1.8-r221-r1.patch      |  342 -------
 .../files/gcc-config-prefix-1.8-r221.patch         |  344 -------
 sys-devel/gcc-config/gcc-config-1.5-r2.ebuild      |   65 --
 sys-devel/gcc-config/gcc-config-1.8-r00.1.ebuild   |   59 --
 sys-devel/gcc-config/gcc-config-1.8-r01.1.ebuild   |   62 --
 ...onfig-1.8-r1.ebuild => gcc-config-1.9.0.ebuild} |   34 +-
 12 files changed, 23 insertions(+), 2216 deletions(-)

diff --git a/sys-devel/gcc-config/Manifest b/sys-devel/gcc-config/Manifest
index 6776ccd9a6..2a177c0f99 100644
--- a/sys-devel/gcc-config/Manifest
+++ b/sys-devel/gcc-config/Manifest
@@ -1 +1 @@
-DIST gcc-config-1.8.tar.xz 15020 SHA256 
2453e2a07521b12267ca62b9b860eb2d2bc606cad0f29bf42a1c9543673f5a1b SHA512 
3b84af2d961a0527834759e047330dbab7bac0ff3d6aae103f14fca2d44bd612bd4a1005649e8b4198036231ed8a8319fb13326b4d2c40474826cf53f7bc0826
 WHIRLPOOL 
4899bc1da43a158cc486022f68661e5318db7e4e83afdb5d892fc7ce5098a4bdb059dbab3c50e632901e577cd8760b2386da3ee24f5e944db12d3e246d9c26b6
+DIST gcc-config-1.9.0.tar.xz 17468 SHA256 
3e0acf3fe683dc6193b0135fe4b26ce7f959210296fff040a10bccc33a247d1a SHA512 
658c8ce26fdddd6f3e519310001cdf0f8fb01226df2d575fec81b39c083613ef0675024b79b285fab89a930c4ada7a1aef04433eb21947b4e9c0a9cb12f8fabc
 WHIRLPOOL 
ed341f1fa72958008d4e1c1a814a2cf025be7404d21c963c6b82c36dc951ba15849f7809211fb21e5fb4a18ce5c12f4f4b36242822e568d4b4f39a8f9f26aa0a

diff --git a/sys-devel/gcc-config/files/gcc-config-1.5 
b/sys-devel/gcc-config/files/gcc-config-1.5
deleted file mode 100755
index 6b7d1a102f..0000000000
--- a/sys-devel/gcc-config/files/gcc-config-1.5
+++ /dev/null
@@ -1,1054 +0,0 @@
-#!/bin/bash
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc-config/files/gcc-config-1.5,v 
1.7 2011/12/07 05:42:19 vapier Exp $
-
-# Format of /etc/env.d/gcc/:
-#  config-TARGET:      CURRENT=version for TARGET
-#  TARGET-VER:         has a TARGET and VER variable
-
-: ${ROOT:=/}
-[[ ${ROOT} != */ ]] && ROOT="${ROOT}/"
-[[ ${ROOT} != /* ]] && ROOT="${PWD}${ROOT}"
-EPREFIX="@GENTOO_PORTAGE_EPREFIX@"
-EROOT="${ROOT%/}${EPREFIX}/"
-
-cd /
-
-trap ":" INT QUIT TSTP
-
-argv0=${0##*/}
-source "@GENTOO_PORTAGE_EPREFIX@"/etc/init.d/functions.sh || {
-       echo "${argv0}: Could not source 
@GENTOO_PORTAGE_EPREFIX@/etc/init.d/functions.sh!" 1>&2
-       exit 1
-}
-esyslog() { :; }
-umask 022
-
-die_eerror() {
-       eerror "${argv0}: $*"
-       exit 1
-}
-
-# *BSD are plain stupid ... copy a GNU extension but don't just copy it,
-# change it so it works differently.  Wish Darwin did selective evolution
-# on software developers.
-SED=$(type -P gsed)
-: ${SED:=$(type -P sed)}
-
-# Further pain: `tac` is not available everywhere #390179
-if ! type -P tac >/dev/null ; then
-       tac() { ${SED} -e '1!G;h;$!d' "$@" ; }
-fi
-
-GENTOO_LIBDIR="@GENTOO_LIBDIR@"
-[[ ${GENTOO_LIBDIR} == @*@ ]] && GENTOO_LIBDIR="lib"
-
-usage() {
-cat << "USAGE_END"
-Usage: gcc-config [options] [CC Profile]
-Change the current cc/gcc profile, or give info about profiles.
-
-Options:
-  -C, --nocolor              Disable color output
-  -O, --use-old              Use the old profile if one was selected.
-  -f, --force                Make sure all config files are regenerated.
-  -P, --use-portage-chost    Only set to given profile if its CHOST is the
-                             same as that set in /etc/portage/make.conf
-                             (or one of other portage config files...).
-  -c, --get-current-profile  Print current used gcc profile.
-  -l, --list-profiles        Print a list of available profiles.
-  -S, --split-profile        Split profiles into their components
-  -E, --print-environ        Print environment that can be used to setup the
-                             current gcc profile, or a specified one.
-  -B, --get-bin-path         Print path where binaries of the given/current
-                             profile are located.
-  -L, --get-lib-path         Print path where libraries of the given/current
-                             profile are located.
-
-Profile names are of the form:  <CHOST>-<gcc version>
-For example:                    i686-pc-linux-gnu-3.2.1
-USAGE_END
-       exit ${1:-1}
-}
-[[ $# -lt 1 ]] && usage 1
-
-# Usage: source_var <var> <file> [default value]
-source_var() {
-       unset $1
-       local val=$(source "$2"; echo ${!1})
-       : ${val:=$3}
-       eval $1=\"${val}\"
-}
-show_var() {
-       source_var "$@"
-       echo "${!1}"
-}
-
-try_real_hard_to_find_CHOST() {
-       #
-       # First we read make.conf
-       #
-
-       local varname=${1:-CHOST}
-       local conf=${EROOT}/etc/portage/make.conf
-       if [[ ! -e ${conf} && -e ${EROOT}/etc/make.conf ]] ; then
-               conf=${EROOT}/etc/make.conf
-       fi
-       local ret=$(source "${conf}" 2>/dev/null ; echo ${!varname})
-       if [[ -z ${ret} ]] ; then
-               # newer portage supports spaces between the var and =
-               # CHOST     =  "this-is-retarded"
-               ret=$(eval $(
-                       sed -n \
-                               -e 's:[[:space:]]::g' \
-                               -e "/^${varname}=/p" \
-                               "${conf}"
-                       ) ; echo ${!varname}
-               )
-       fi
-
-       if [[ -n ${ret} ]] ; then
-               echo ${ret}
-               return 0
-       fi
-
-       #
-       # Then we try /etc/env.d/gcc/config-${CTARGET}
-       #
-       if [[ -s ${EROOT}/etc/env.d/gcc/config-${CTARGET} ]] ; then
-               ret=$(split_gcc_ver $(show_var CURRENT 
"${EROOT}"/etc/env.d/gcc/config-${CTARGET}))
-               echo ${ret% *}
-       fi
-}
-
-get_real_chost() {
-       [[ -n ${REAL_CHOST} ]] && return 0
-
-       # shortcut for switching compilers in a cross chroot
-       if [[ -n ${CHOST} && ${ROOT} != "/" ]] ; then
-               REAL_CHOST=${CHOST}
-               return 0
-       fi
-
-       # make sure portage isnt broken
-       if python -V &>/dev/null ; then
-               export REAL_CHOST=$(env -i EPREFIX="${EPREFIX}" 
"$(PATH="${EPREFIX}/usr/bin:${PATH}" type -P portageq)" envvar CHOST 
2>/dev/null)
-       else
-               ewarn "Python seems to be broken, attempting to locate CHOST 
ourselves ..."
-               export REAL_CHOST=$(try_real_hard_to_find_CHOST)
-       fi
-
-       if [[ -z ${REAL_CHOST} ]] ; then
-               eerror "${argv0}: Could not get portage CHOST!"
-               eerror "${argv0}: You should verify that CHOST is set in one of 
these places:"
-               eerror "${argv0}:  - ${EROOT}/etc/portage/make.conf"
-               eerror "${argv0}:  - active environment"
-               exit 1
-       fi
-}
-
-is_cross_compiler() {
-       get_real_chost
-       [[ ${CC_COMP/${REAL_CHOST}} == ${CC_COMP} ]]
-}
-
-convert_profile_paths() {
-       # Older gcc's used PATH= and ROOTPATH= in the env.d files.
-       # Newer one's only use GCC_PATH=.  Convert old to new here.
-       cp -p "${GCC_ENV_D}/${CC_COMP}" 
"${GCC_ENV_D}/${CC_COMP}.gcc-config-ref" || return 1
-       GCC_PATH=$(
-               unset GCC_PATH PATH ROOTPATH
-               source "${GCC_ENV_D}/${CC_COMP}"
-               echo ${GCC_PATH:-${PATH:-${ROOTPATH}}}
-       )
-       ${SED} -i \
-               -e '/^PATH=/d' \
-               -e '/^ROOTPATH=/d' \
-               -e '/^GCC_PATH=/d' \
-               "${GCC_ENV_D}/${CC_COMP}" || return 1
-       echo "GCC_PATH=\"${GCC_PATH}\"" >> "${GCC_ENV_D}/${CC_COMP}" || return 1
-       touch -r "${GCC_ENV_D}/${CC_COMP}.gcc-config-ref" 
"${GCC_ENV_D}/${CC_COMP}" || return 1
-       rm -f "${GCC_ENV_D}/${CC_COMP}.gcc-config-ref" || return 1
-       return 0
-}
-
-update_wrappers() {
-       local CTARGET=$1
-
-       # Find the bin wrapper
-       local wrapper
-       for wrapper in ${GENTOO_LIBDIR} lib lib64 lib32 lib ; do
-               wrapper="${EROOT}usr/${wrapper}/misc/gcc-config"
-               [[ -e ${wrapper} ]] && break
-       done
-
-       # Update the wrappers for this profile.  We maintain this list
-       # by hand as the tools that are available can come & go if the
-       # user re-emerges gcc with dif USE flags.  We need to clean out
-       # the old wrappers if the functionality no longer exists.
-       # XXX: Future work: save the list of wrappers we generated in
-       # the generated env.d file so we can scrub things better.
-       # After that, we can use a dynamic list based on what tools are
-       # actually available in ${GCC_PATH}/.
-       for x in 
{,${CTARGET}-}{cpp,cc,gcc,c++,g++,f77,g77,gcj,gcjh,gcov,gdc,gdmd,gfortran,gccgo}
 ; do
-               # Obviously don't want to touch native stuff for cross-compilers
-               [[ ${x} != ${CTARGET}-* ]] && is_cross_compiler && continue
-
-               # Make sure we have no stale wrappers
-               rm -f "${EROOT}/usr/bin/${x}"
-               [[ ${x:${#x}-3} == "gcc" || ${x:${#x}-3} == "g++" ]] \
-                       && rm -f "${EROOT}/usr/bin/${x}"{32,64}
-
-               # Only install a wrapper if the binary exists ...
-               # We want to figure out the 'reference file' for each
-               # wrapper (the binary we're 'wrapping') so that we can
-               # sync mtimes together.  This makes things like ccache
-               # happy.  See Bug #70548 for more info.
-               local ref
-               case ${x} in
-                       cc)  ref=gcc;;
-                       f77) ref=g77;;
-                       *)   ref=${x};;
-               esac
-               ref="${ROOT}/${GCC_PATH}/${ref}"
-               if [[ -x ${ref} ]] ; then
-                       cp -f "${wrapper}" "${EROOT}/usr/bin/${x}"
-                       touch -r "${ref}" "${EROOT}/usr/bin/${x}"
-               fi
-       done
-       # legacy cruft, make sure we dont leave it laying around #143205
-       rm -f "${EROOT}/usr/bin/${CTARGET}-cc"
-
-       # install the canonical cpp wrapper
-       if ! is_cross_compiler ; then
-               cp -f "${wrapper}" "${EROOT}/lib/cpp"
-               touch -r "${EROOT}/usr/bin/${CTARGET}-cpp" "${EROOT}/lib/cpp"
-       fi
-}
-
-mv_if_diff() {
-       if cmp -s "$1" "$2" ; then
-               rm -f "$1"
-               return 0
-       else
-               mv -f "$1" "$2"
-               return 1
-       fi
-}
-
-switch_profile() {
-       local MY_LDPATH=
-       local GCC_PROFILES=
-       local OLD_CC_COMP=
-       local GCC_PATH=
-
-       [[ $(id -u) != $(python -c 'import portage.const as c; 
print(c.rootuid)') ]] && die_eerror "Must be root"
-
-       if is_cross_compiler ; then
-               ebegin "Switching cross-compiler to ${CC_COMP}"
-       else
-               ebegin "Switching native-compiler to ${CC_COMP}"
-       fi
-
-       if egrep -q '^(PATH|ROOTPATH)=' "${GCC_ENV_D}/${CC_COMP}" ; then
-               convert_profile_paths "${GCC_ENV_D}/${CC_COMP}" || return 1
-       fi
-       source_var GCC_PATH "${GCC_ENV_D}/${CC_COMP}"
-
-       # Setup things properly again for this profile
-       unset GCC_SPECS LDPATH
-       source "${GCC_ENV_D}/${CC_COMP}"
-       # Ignore active profile errors here since we're switching away
-       OLD_CC_COMP=$(get_current_profile 2>/dev/null)
-
-       # GCC_SPECS have long been stable, and people messing with
-       # them know better than to install bad paths, so don't bother
-       # with sanity checks.
-       local envd="${ENV_D}/05gcc-${CTARGET}"
-       cat <<-EOF > "${envd}.tmp"
-       PATH="${GCC_PATH}"
-       ROOTPATH="${GCC_PATH}"
-       GCC_SPECS="${GCC_SPECS}"
-       EOF
-       echo "CURRENT=${CC_COMP}" > "${GCC_ENV_D}/config-${CTARGET}"
-       if ! is_cross_compiler ; then
-               # Order our profiles to have the default first ...
-               # We do this so that we can have them ordered with default
-               # first in /etc/ld.so.conf, as the logical is that all
-               # compilers for default CHOST will be used to compile stuff,
-               # and thus we want all their lib paths in /etc/ld.so.conf ...
-               get_real_chost
-               MY_LDPATH=$(${SED} -n \
-                       -e '/^LDPATH=/{s|LDPATH=||;s|"||g;s|:|\n|g;p}' \
-                       "${GCC_ENV_D}"/${REAL_CHOST}-* \
-                       "${GCC_ENV_D}"/${CC_COMP} | tac
-               )
-
-               # Pass all by default
-               awk 
'!/^(STDCXX_INCDIR|LDPATH|CC|CXX|CTARGET|GCCBITS|GCC_SPECS|GCC_PATH)=/ {print 
$0}' \
-                       "${GCC_ENV_D}/${CC_COMP}" >> "${envd}.tmp"
-               if [[ -z ${EPREFIX} && -d ${ROOT}/etc/ld.so.conf.d ]] ; then
-                       echo "${MY_LDPATH}" > 
"${ROOT}"/etc/ld.so.conf.d/05gcc-${CTARGET}.conf
-               else
-                       echo "LDPATH=\"${MY_LDPATH}\"" >> "${envd}.tmp"
-               fi
-
-               # Punt old files; maybe globs too much, but oh well
-               rm -f \
-                       "${GCC_ENV_D}/NATIVE" "${GCC_ENV_D}/.NATIVE" \
-                       "${ENV_D}/05gcc" "${GCC_ENV_D}/config" \
-                       "${ENV_D}/05gcc-${CTARGET}"-* 
"${GCC_ENV_D}/config-${CTARGET}"-*
-
-               # Help out the gcc wrapper
-               ln -sf ${CC_COMP} "${GCC_ENV_D}/.NATIVE"
-
-
-               # Relocate random crap
-               if [[ -e 
${EROOT}/usr/${GENTOO_LIBDIR}/pkgconfig/libgcj-${CC_COMP_VERSION}.pc ]] ; then
-                       local mver=${CC_COMP_VERSION:0:3}
-                       for x in "" "-${mver}" ; do
-                               x="${EROOT}/usr/lib/pkgconfig/libgcj${x}.pc"
-                               rm -f "${x}"
-                               ln -s libgcj-${CC_COMP_VERSION}.pc "${x}"
-                       done
-               fi
-
-               # We need to make sure that libgcc_s.so / libunwind.so make it 
into /lib.
-               # On many systems (x86/amd64/etc...), this will probably never 
matter,
-               # but on other systems (arm/mips/etc...), this is quite 
critical.
-               # http://bugs.gentoo.org/60190
-               #
-               # The funky move magic is required for proper updating of 
in-use files.
-               #
-               # Need to cut out extra paths in multilib case and pray the 
first path
-               # is the "root" multilib path ... maybe some day change this to 
use
-               # `gcc -print-file-name` ...
-               LDPATH=${LDPATH%%:*}
-
-               # We can copy the other libs to /usr/lib without funky copying,
-               # don't use symlinks as on Darwin we need to fix the
-               # install_names of the objects.
-               # Remember that Prefix doesn't do multilib!
-               #
-               # To emulate properly what ld.so.conf magic does for non-prefix,
-               # we have to copy the libs of all installed (native) GCC's and
-               # make sure we do the current one as last, such that the
-               # pointers for the unversioned libs point to the currently
-               # selected version.
-               GCC_PROFILES=$(LC_ALL="C" ls ${GCC_ENV_D}/${REAL_CHOST}-*)
-
-               local dstlibgcc=${EROOT}/usr/${REAL_CHOST}/lib/gcc
-               local dstlib=${EROOT}/lib
-
-               # Prepare empty directories first
-               local temporary=.gcc.config.new
-               rm -rf   "${dstlib}"/${temporary} "${dstlibgcc}"/${temporary} 
|| return 1
-               mkdir -p "${dstlib}"/${temporary} "${dstlibgcc}"/${temporary} 
|| return 1
-
-               dumpargs() {
-                       return 0
-                       local x
-                       echo "$1 \\"; shift
-                       for x in "$@"; do
-                               echo "  '$x' \\"
-                       done
-                       echo
-               }
-
-               case ${REAL_CHOST} in
-               *-mint*)
-                       do_single_runtime() {
-                               return 0
-                       }
-                       finish_runtime_dir() {
-                               return 0
-                       }
-                       ;;
-               *-aix*)
-                       LIBSUFFIX="a"
-                       AIXLIBS=
-
-                       do_single_runtime() {
-                               dumpargs do_single_runtime "$@"
-                               local sourcedir=$1; shift
-                               local libname=$1; shift
-                               local targetdir=$1; shift
-                               local finaldir=$1; shift
-
-                               aixdll \
-                                       --merge-runtime \
-                                       --finish=false \
-                                       
--target="${targetdir}"/lib${libname}.${LIBSUFFIX} \
-                                       
"${sourcedir}"/lib${libname}.${LIBSUFFIX} \
-                               || return 1
-                               [[ ${AIXLIBS} == 
*":${targetdir}/lib${libname}.${LIBSUFFIX}:"* ]] \
-                               || 
AIXLIBS="${AIXLIBS}:${targetdir}/lib${libname}.${LIBSUFFIX}:"
-                       }
-
-                       finish_runtime_dir() {
-                               dumpargs finish_runtime_dir "$@"
-                               local sourcedir=$1; shift
-                               local targetdir=$1; shift
-                               local cleanup=$1; shift
-
-                               local f save_IFS
-                               save_IFS=$IFS; IFS=:
-                               for f in ${AIXLIBS}; do
-                                       IFS=$save_IFS
-                                       [[ -n ${f} ]] || continue
-                                       aixdll \
-                                               --finish-merge \
-                                               --keepdir=false \
-                                               "${f}" \
-                                       || return 1
-                               done
-                               IFS=$save_IFS
-                               unset AIXLIBS
-
-                               finish_runtime_dir_elf \
-                                       "${sourcedir}" \
-                                       "${targetdir}" \
-                                       ${cleanup} \
-                               || return 1
-                       }
-                       ;;
-               *-darwin*)
-                       LIBSUFFIX="dylib"
-
-                       do_single_runtime() {
-                               local sourcedir=$1; shift
-                               local libname=$1; shift
-                               local targetdir=$1; shift
-                               local finaldir=$1; shift
-                       
-                               do_single_runtime_elf \
-                                       "${sourcedir}" \
-                                       ${libname} \
-                                       "${targetdir}" \
-                                       "${finaldir}" \
-                               || return 1
-
-                               # fix install_name on Darwin
-                               local lib
-                               for lib in "${targetdir}"/lib*; do
-                                       # we use otool because scanmacho need 
not to be
-                                       # available yet during bootstrap
-                                       soname=$(otool -LX "${lib}" | sed -e 
'1!d' -e 's/^\t//' -e 's/ (compatibility.*$//')
-                                       install_name_tool \
-                                               -id "${finaldir}"/${soname##*/} 
\
-                                               "${lib}" \
-                                               &> /dev/null || true
-                               done
-                       }
-
-                       finish_runtime_dir() {
-                               finish_runtime_dir_elf "$@" 
-                       }
-                       ;;
-               hppa64*-hpux*)
-                       LIBSUFFIX="sl"
-                       do_single_runtime() {
-                               do_single_runtime_elf "$@"
-                       }
-                       finish_runtime_dir() {
-                               finish_runtime_dir_elf "$@" 
-                       }
-                       ;;
-               hppa*-hpux*)
-                       LIBSUFFIX="sl"
-                       do_single_runtime() {
-                               dumpargs do_single_runtime "$@"
-                               local sourcedir=$1; shift
-                               local libname=$1; shift
-                               local targetdir=$1; shift
-                               local finaldir=$1; shift
-
-                               # when using some simple shell script wrappers 
(again :)),
-                               # there may be no libs around!
-                               if [[ -n $(ls 
"${sourcedir}"/lib${libname}.*${LIBSUFFIX}* 2>/dev/null) ]]; then
-                                       cp -fpP 
"${sourcedir}"/lib${libname}.*${LIBSUFFIX}* "${targetdir}" || return 1
-                                       # gcc creates "libgcc_s.4" with symlink 
"libgcc_s.sl -> libgcc_s.4", and
-                                       # we patch it to also set the 'internal 
name' (=soname) (gcc-PR40913).
-                                       if [[ ${libname} == 'gcc_s' ]]; then
-                                               if [[ -n $(ls 
"${sourcedir}"/lib${libname}.[0-9] 2>/dev/null) ]]; then
-                                                       cp -fpP 
"${sourcedir}"/lib${libname}.[0-9] "${targetdir}" || return 1
-                                               fi
-                                       fi
-                                       # we do not need the unversioned lib, 
as linking
-                                       # is done against the used gcc's 
private copy.
-                                       rm -f 
"${targetdir}"/lib${libname}.${LIBSUFFIX} || return 1
-                               fi
-                       }
-                       finish_runtime_dir() {
-                               finish_runtime_dir_elf "$@" 
-                       }
-                       ;;
-               *)
-                       LIBSUFFIX="so"
-                       do_single_runtime() {
-                               do_single_runtime_elf "$@"
-                       }
-                       finish_runtime_dir() {
-                               finish_runtime_dir_elf "$@" 
-                       }
-                       ;;
-               esac
-
-               do_single_runtime_elf() {
-                       dumpargs do_single_runtime_elf "$@"
-                       local sourcedir=$1; shift
-                       local libname=$1; shift
-                       local targetdir=$1; shift
-                       local finaldir=$1; shift
-
-                       # when using some simple shell script wrappers (again 
:)),
-                       # there may be no libs around!
-                       if [[ -n $(ls 
"${sourcedir}"/lib${libname}.*${LIBSUFFIX}* 2>/dev/null) ]]; then
-                               cp -fpP 
"${sourcedir}"/lib${libname}.*${LIBSUFFIX}* "${targetdir}" || return 1
-                               # we do not need the unversioned lib, as linking
-                               # is done against the used gcc's private copy.
-                               rm -f "${targetdir}"/lib${libname}.${LIBSUFFIX} 
|| return 1
-                       fi
-               }
-
-               finish_runtime_dir_elf() {
-                       dumpargs finish_runtime_dir_elf "$@"
-                       local sourcedir=$1; shift
-                       local targetdir=$1; shift
-                       local cleanup=$1; shift
-
-                       if [[ ${cleanup} == clean ]]; then
-                               if [[ ${targetdir} == *${EPREFIX}/lib ]]; then
-                                       echo "WARNING: not cleaning 
${targetdir}" >&2
-                               else
-                                       for f in "${targetdir}"/*; do
-                                               [[ ${f} == ${sourcedir} ]] && 
continue
-                                               [[ -e "${sourcedir}/${f##*/}" 
]] && continue
-                                               rm -f "${f}"
-                                       done
-                               fi
-                       fi
-
-                       # move symlinks first:
-                       # because of file ordering, the real files may be
-                       # moved before the symlinks, causing the symlinks
-                       # going broken.
-                       for f in "${sourcedir}"/*; do
-                               [[ -e ${f} && -L ${f} ]] || continue
-                               # use backups: hpux cannot overwrite sharedlibs 
in use: "Text file busy"
-                               rm -f "${targetdir}"/${f##*/}*'~' >/dev/null 
2>&1
-                               mv -f --backup=numbered --suffix='~' "${f}" 
"${targetdir}"/${f##*/} || return 1
-                               rm -f "${targetdir}"/${f##*/}*'~' >/dev/null 
2>&1
-                       done
-
-                       for f in "${sourcedir}"/*; do
-                               [[ -f "${f}" ]] || continue
-                               # use backups: hpux cannot overwrite sharedlibs 
in use: "Text file busy"
-                               rm -f "${targetdir}"/${f##*/}*'~' >/dev/null 
2>&1
-                               mv -f --backup=numbered --suffix='~' "${f}" 
"${targetdir}"/${f##*/} || return 1
-                               rm -f "${targetdir}"/${f##*/}*'~' >/dev/null 
2>&1
-                       done
-                       rmdir "${sourcedir}"
-               }
-
-               for x in ${GCC_PROFILES} ; do
-
-                       unset GCC_PATH LDPATH
-                       eval $(
-                               source "${x}"
-                               echo "GCC_PATH='${GCC_PATH}'"
-                               echo "LDPATH='${LDPATH%%:*}'"
-                       )
-
-                       for multilib in $(
-                               # ensure we always operate on base libdir first
-                               [[ -n ${EPREFIX} ]] && echo ".;@X" ;
-                               "${ROOT}/${GCC_PATH}"/gcc -print-multi-lib
-                       ); do
-
-                       multiarg=${multilib#*;}
-                       multiarg=${multiarg/@/-}
-                       multilibdir=${multilib%;*}
-                       # in Prefix we don't do multilib, and the os-directory 
call
-                       # from below results in getting a subdir for our 64-bits
-                       # targets which breaks things badly...
-                       if [[ ${multilib} == ".;@X" ]] ; then
-                               libdir="lib/${multilibdir}"
-                       else
-                               libdir="lib/"$("${ROOT}/${GCC_PATH}"/gcc 
${multiarg} -print-multi-os-directory)
-                       fi
-
-                       pushd "${ROOT%/}${LDPATH}/${multilibdir}" > /dev/null 
|| return 1
-
-                       local donelibs=
-                       for lib in lib*.${LIBSUFFIX}; do
-                               [[ ${lib} != *.la ]] || continue # skip libtool 
files.
-                               gcclib=${lib#lib}
-                               gcclib=${gcclib%.${LIBSUFFIX}}
-                               gcclib=${gcclib%%.[0-9]*} # we need the 
unversioned libname.
-                               [[ ${donelibs} != *" ${gcclib} "* ]] || continue
-                               donelibs="${donelibs} ${gcclib} "
-                               if [[ ${gcclib} == gcc_s* || ${gcclib} == 
unwind* ]]; then
-
-                                       targetdir="${EPREFIX}/${libdir}"
-
-                                       # finish lib/lib* at first, as the 
others may depend on it, and newer
-                                       # libs normally are compatible to older 
ones with same soname.
-                                       [[ ${targetdirs} == *":${targetdir},:"* 
]] ||
-                                               
targetdirs=":${targetdir},:${targetdirs}"
-
-                                       do_single_runtime \
-                                               
"${ROOT%/}${LDPATH}/${multilibdir}" \
-                                               ${gcclib} \
-                                               
"${ROOT%/}${targetdir}"/${temporary} \
-                                               "${targetdir}" \
-                                       || return 1
-
-                                       continue
-                               fi
-
-                               
targetdir="${EPREFIX}/usr/${REAL_CHOST}/lib/gcc/${multilibdir}"
-
-                               # finish usr/<chost>/lib/gcc/lib* after lib/lib*
-                               [[ ${targetdirs} == *":${targetdir},clean:"* ]] 
||
-                                       
targetdirs="${targetdirs}:${targetdir},clean:"
-
-                               do_single_runtime \
-                                       "${ROOT%/}${LDPATH}/${multilibdir}" \
-                                       ${gcclib} \
-                                       "${ROOT%/}${targetdir}"/${temporary} \
-                                       "${targetdir}" \
-                               || return 1
-
-                       done
-                       popd > /dev/null
-
-                       # we do not do multilib in Prefix any more, so stop
-                       [[ ${multilib} == ".;@X" ]] && break
-
-                       done # multilib
-               done # GCC_PROFILES
-
-               save_IFS=$IFS
-               IFS=:
-               for targetdir in ${targetdirs}; do
-                       IFS=$save_IFS
-                       [[ -n ${targetdir} ]] || continue
-
-                       # eventually cleanup old files (not from $EPREFIX/lib)
-                       clean=${targetdir##*,}
-
-                       targetdir=${targetdir%,*}
-
-                       finish_runtime_dir \
-                               "${ROOT%/}${targetdir}"/${temporary} \
-                               "${ROOT%/}${targetdir}" \
-                               ${clean} \
-                       || return 1
-               done
-               IFS=$save_IFS
-
-               unset dstlibgcc dstlib temporary
-               unset LIBSUFFIX AIXLIBS
-               unset targetdirs targetdir
-               unset x
-               unset multilib
-               unset multilibdir
-               unset multiarg
-               unset libdir
-       fi
-       mv_if_diff "${envd}.tmp" "${envd}"
-       local envd_changed=$?
-
-       # reset correct value, since we have overwritten it in the above loop
-       source_var GCC_PATH "${GCC_ENV_D}/${CC_COMP}"
-       update_wrappers ${CTARGET}
-
-       if [[ ${ROOT} == "/" ]] && \
-          [[ ${OLD_CC_COMP} != ${CC_COMP} || ${FORCE} == "yes" ]] && \
-          [[ ${envd_changed} -eq 1 ]]
-       then
-               # in case python is broken ...
-               if ! env-update ; then
-                       echo ""
-                       ewarn "env-update failed to work properly; making sure 
ld.so.conf paths"
-                       ewarn "are setup properly.  Please rerun gcc-config 
with the -f option."
-                       echo ""
-                       if [[ -z ${EPREFIX} && ! -d /etc/ld.so.conf.d ]] ; then
-                               show_var LDPATH 
"${ROOT}"/etc/env.d/05gcc-${CTARGET} \
-                                       | sed -e 's|:|\n|g' >> /etc/ld.so.conf
-                       fi
-                       ldconfig
-               fi
-       else
-               envd_changed=0
-       fi
-
-       eend 0
-
-       if [[ ${envd_changed} -ne 0 ]] ; then
-               echo
-               ewarn "If you intend to use the gcc from the new profile in an 
already"
-               ewarn "running shell, please remember to do:"
-               echo
-               ewarn " (bash) # . ${EPREFIX}/etc/profile"
-               ewarn "or"
-               ewarn " (tcsh) # source ${EPREFIX}/etc/csh.login"
-               echo
-       fi
-
-       return 0
-}
-
-get_current_profile() {
-       local conf="${GCC_ENV_D}/config-${CTARGET}"
-       if [[ ! -f ${conf} ]] ; then
-               conf="${GCC_ENV_D}/config" # old name
-       elif [[ -n ${CC_COMP} ]] && is_cross_compiler ; then
-               conf="${conf}-${CC_COMP}"
-       fi
-
-       if [[ ! -f ${conf} ]] ; then
-               eerror "${argv0}: No gcc profile is active!"
-               return 1
-       fi
-
-       source_var CURRENT "${conf}"
-
-       if [[ -z ${CURRENT} ]] ; then
-               eerror "${argv0}: No gcc profile is active!"
-               return 1
-       elif [[ ! -f ${GCC_ENV_D}/${CURRENT} ]] ; then
-               eerror "${argv0}: Active gcc profile is invalid!"
-               return 1
-       fi
-
-       echo "${CURRENT}"
-
-       return 0
-}
-
-list_profiles() {
-       local i=0
-       local filter=
-
-       if [[ ${ROOT} != "/" ]] ; then
-               echo "Using gcc-config info in ${ROOT}"
-       fi
-
-       if [[ ! -f ${GCC_ENV_D}/config-${CTARGET} ]] ; then
-               if ! is_cross_compiler && [[ -e ${GCC_ENV_D}/config ]] ; then
-                       [[ -w ${GCC_ENV_D}/config ]] && mv ${GCC_ENV_D}/config 
${GCC_ENV_D}/config-${CTARGET}
-               else
-                       # get_current_profile already warns
-                       #eerror "${argv0}: No gcc profile is active; please 
select one!"
-                       filter=${CTARGET}
-               fi
-       fi
-
-       source_var CURRENT "${GCC_ENV_D}"/config-${CTARGET}
-       CURRENT_NATIVE=${CURRENT}
-       local target=
-       for x in "${GCC_ENV_D}"/* ; do
-               [[ -f ${x} ]] || continue
-               [[ ${x} == */config* ]] && continue
-
-               source_var CTARGET "${x}"
-
-               ((++i))
-
-               [[ -n ${filter} ]] && [[ ${filter} != ${CTARGET} ]] && continue
-
-               if [[ ${target} != ${CTARGET} ]] ; then
-                       [[ ${i} -gt 1 ]] && echo
-                       target=${CTARGET}
-                       CTARGET=""
-               fi
-
-               x=${x##*/}
-               if [[ ${x} == ${CURRENT_NATIVE} ]] ; then
-                       x="${x} ${GOOD}*${NORMAL}"
-               elif [[ -e ${GCC_ENV_D}/config-${target} ]] ; then
-                       source "${GCC_ENV_D}/config-${target}"
-                       [[ ${x} == ${CURRENT} ]] && x="${x} ${HILITE}*${NORMAL}"
-               fi
-               echo " [${i}] ${x}"
-       done
-}
-
-print_environ() {
-       local GCC_PATH=
-       local ENV_CMD=
-       local SET_ELEMENT=
-
-       source_var GCC_PATH "${GCC_ENV_D}/${CC_COMP}" "${PATH}"
-
-       case ${SHELL} in
-               */csh|*/tcsh)
-                       ENV_CMD="setenv"
-                       SET_ELEMENT=" "
-                       ;;
-               *)
-                       ENV_CMD="export"
-                       SET_ELEMENT="="
-                       ;;
-       esac
-
-       (
-       PATH=${GCC_PATH}:${PATH}
-       for var in PATH GCC_SPECS ; do
-               echo "${ENV_CMD} ${var}${SET_ELEMENT}\"${!var}\""
-       done
-       )
-}
-
-get_bin_path() { show_var GCC_PATH "${GCC_ENV_D}/${CC_COMP}" ; }
-get_lib_path() { show_var LDPATH "${GCC_ENV_D}/${CC_COMP}" ; }
-
-split_gcc_ver() {
-       # Split up the gcc profile into components:
-       # TARGET-VER[-specs] -> TARGET VER [specs]
-       # arm-linux-3.3.6 -> arm-linux 3.3.6
-       # x86_64-linux-4.0.1-pre1234 -> x86_64-linux 4.0.1-pre1234
-       # sh-linux-3.4.4-hardened -> sh-linux 3.4.4 hardened
-       #
-       # So below we will start at the end and run a small state machine ...
-       # specs [3]
-       #    accept everything
-       # specs -> version transition [3->2]
-       #    when we find a version component
-       # version [2]
-       #    accept only version components (see the regex)
-       # version -> target transition [2->1]
-       #    when we hit a non version component
-       # target [1]
-       #    accept everything we have left
-       #
-       echo "$@" | awk -F- '
-       function pushit(onme, pushee) {
-               return (onme == "" ? pushee : pushee"-"onme);
-       }
-       {
-               state=3
-               targ=""
-               ver=""
-               spec=""
-               for (i=NF; i > 0; --i) {
-                       if (state >= 2) {
-                               if ($i ~ 
/^(alpha|beta|pre|rc|p)?[[:digit:].]+$/) {
-                                       ver=pushit(ver, $i)
-                                       state=2
-                               } else if (state == 3)
-                                       spec=pushit(spec, $i)
-                               else
-                                       state=1
-                       }
-                       if (state == 1)
-                               targ = pushit(targ, $i)
-               }
-
-               if (targ == "") {
-                       if (ver == "") {
-                               ver=spec
-                               spec=""
-                       }
-                       targ=ver
-                       ver=""
-               }
-               print targ " " ver (spec != "" ? " " spec : "")
-       }'
-}
-chop_gcc_ver_spec() {
-       local splitTED=$(split_gcc_ver $@) # target ver spec
-       splitTED=${splitTED#* }            # ver spec
-       echo ${splitTED/ /-}               # ver-spec
-}
-
-SET_X=false
-NEED_ACTION="yes"
-DOIT="switch_profile"
-CHECK_CHOST="no"
-FORCE="no"
-
-CC_COMP=
-ENV_D="${EROOT}etc/env.d"
-GCC_ENV_D="${ENV_D}/gcc"
-
-for x in "$@" ; do
-       case "${x}" in
-               # Only use specified compiler if one is not already selected.
-               -O|--use-old)
-                       : ${CTARGET:=$(try_real_hard_to_find_CHOST)}
-                       if get_current_profile &>/dev/null ; then
-                               CC_COMP=$(get_current_profile)
-                       else
-                               die_eerror "No profile selected, unable to 
utilize --use-old"
-                       fi
-                       ;;
-               -f|--force)
-                       FORCE="yes"
-                       ;;
-               -P|--use-portage-chost)
-                       CHECK_CHOST="yes"
-                       ;;
-               -c|--get-current-profile)
-                       if [[ ${NEED_ACTION} == "yes" ]] ; then
-                               NEED_ACTION="no"
-                               DOIT="get_current_profile"
-                       fi
-                       ;;
-               -l|--list-profiles)
-                       if [[ ${NEED_ACTION} == "yes" ]] ; then
-                               NEED_ACTION="no"
-                               DOIT="list_profiles"
-                       fi
-                       ;;
-               -S|--split-profile)
-                       if [[ ( $1 != "-S" && $1 != "--split-profile" ) || $# 
-eq 1 ]] ; then
-                               usage 1
-                       fi
-                       shift # push -S out
-                       for x in "$@" ; do
-                               split_gcc_ver ${x}
-                       done
-                       exit 0
-                       ;;
-               -E|--print-environ)
-                       if [[ ${NEED_ACTION} == "yes" ]] ; then
-                               NEED_ACTION="no"
-                               DOIT="print_environ"
-                       fi
-                       ;;
-               -B|--get-bin-path)
-                       if [[ ${NEED_ACTION} == "yes" ]] ; then
-                               NEED_ACTION="no"
-                               DOIT="get_bin_path"
-                       fi
-                       ;;
-               -L|--get-lib-path)
-                       if [[ ${NEED_ACTION} == "yes" ]] ; then
-                               NEED_ACTION="no"
-                               DOIT="get_lib_path"
-                       fi
-                       ;;
-               -x|--debug)
-                       SET_X=true
-                       ;;
-               -C|--nocolor)
-                       # nothing to do; functions.sh parsed this for us
-                       ;;
-               -h|--help)
-                       usage 0
-                       ;;
-               -V|--version)
-                       unset RCSfile Revision Date
-                       rcsfile="$RCSfile: gcc-config-1.5,v $"
-                       rcsfile=${rcsfile#: }
-                       rcsfile=${rcsfile%,v*}
-                       cvsrev="$Revision: 1.7 $"
-                       cvsrev=${cvsrev#: }
-                       cvsdate="$Date: 2011/12/07 05:42:19 $"
-                       cvsdate=${cvsdate#: }
-                       echo "${rcsfile} (r${cvsrev% *} @ ${cvsdate% *})"
-                       exit 0
-                       ;;
-               -*)
-                       die_eerror "Invalid switch!  Run ${argv0} without 
parameters for help."
-                       ;;
-               *)
-                       ${SET_X} && set -x
-                       if [[ -z ${CC_COMP} ]] ; then
-                               if [[ -z $(echo ${x} | tr -d '[:digit:]') ]] ; 
then
-                                       # User gave us a # representing the 
profile
-                                       i=1
-                                       for y in "${GCC_ENV_D}"/* ; do
-                                               [[ -f ${y} ]] || continue
-                                               [[ ${y} == */config* ]] && 
continue
-
-                                               if [[ -f ${y} ]] && [[ ${x} == 
${i} ]] ; then
-                                                       CC_COMP=${y##*/}
-                                                       break
-                                               fi
-                                               ((++i))
-                                       done
-                                       if [[ -z ${CC_COMP} ]] ; then
-                                               die_eerror "Could not locate 
profile #$x !"
-                                       fi
-                               else
-                                       # User gave us a full HOST-gccver
-                                       x=${x##*/}
-                                       if [[ ${DOIT} == "get_current_profile" 
&& -z $(ls "${GCC_ENV_D}"/${x}-* 2>/dev/null) ]] || \
-                                          [[ ${DOIT} != "get_current_profile" 
&& ! -f ${GCC_ENV_D}/${x} ]]
-                                       then
-                                               # Maybe they just gave us a 
gccver ...
-                                               get_real_chost
-                                               if [[ -f 
${GCC_ENV_D}/${REAL_CHOST}-${x} ]] ; then
-                                                       x=${REAL_CHOST}-${x}
-                                               else
-                                                       die_eerror "Could not 
locate '$x' in '${GCC_ENV_D}/' !"
-                                               fi
-                                       fi
-                                       CC_COMP=${x}
-                               fi
-                       else
-                               die_eerror "Too many arguments!  Run ${argv0} 
without parameters for help."
-                       fi
-                       ;;
-       esac
-done
-
-${SET_X} && set -x
-
-if [[ ${DOIT} == "switch_profile" ]] && [[ -z ${CC_COMP} ]] ; then
-       usage 1
-fi
-
-get_real_chost
-[[ ${DOIT} == "get_current_profile" ]] \
-       && : ${CTARGET:=${CC_COMP:-${REAL_CHOST}}} \
-       || : ${CTARGET:=${REAL_CHOST}}
-
-if [[ -z ${CC_COMP} ]] ; then
-       CC_COMP=$(get_current_profile)
-       if [[ $? -ne 0 ]] ; then
-               echo "${CC_COMP}"
-               list_profiles
-               exit 1
-       fi
-fi
-
-if [[ ${DOIT} != "get_current_profile" ]] ; then
-       GCC_LIB=$(
-               show_var LDPATH "${GCC_ENV_D}/${CC_COMP}" | \
-                       sed -e "s|${EPREFIX}/*|/|g" | \
-                       awk -F/ '{ print "/"$2"/"$3"/"$4"/" }'
-       )
-
-       CC_COMP_VERSION=$(chop_gcc_ver_spec ${CC_COMP})
-       CC_COMP_TARGET=${CC_COMP%-${CC_COMP_VERSION}*}
-
-       if [[ ! -d ${EROOT}/${GCC_LIB}/${CC_COMP_TARGET}/${CC_COMP_VERSION} ]]; 
then
-               CC_COMP_VERSION=${CC_COMP_VERSION%-*}
-       fi
-
-       if [[ ! -d ${EROOT}/${GCC_LIB}/${CC_COMP_TARGET}/${CC_COMP_VERSION} ]] 
|| \
-          [[ ! -f ${GCC_ENV_D}/${CC_COMP} ]]
-       then
-               eerror "${argv0}: Profile does not exist or invalid setting for 
${GCC_ENV_D}/${CC_COMP}" 1>&2
-               #exit 1
-       fi
-fi
-
-if [[ ${CHECK_CHOST} == "yes" ]] ; then
-       # Chosen CHOST are not the same as the real CHOST according to
-       # make.conf, and --use-portage-chost option was given, so do nothing
-       get_real_chost
-       CC_COMP_VERSION=$(chop_gcc_ver_spec ${CC_COMP})
-       CC_COMP_TARGET=${CC_COMP:0:${#CC_COMP}-${#CC_COMP_VERSION}-1}
-       [[ ${CC_COMP_TARGET} != ${REAL_CHOST} ]] && exit 0
-fi
-
-${DOIT}
-
-# vim:ts=4

diff --git 
a/sys-devel/gcc-config/files/gcc-config-1.8-copy-gcc-libs-darwin.patch 
b/sys-devel/gcc-config/files/gcc-config-1.8-copy-gcc-libs-darwin.patch
index bfcae2df60..28d666e22e 100644
--- a/sys-devel/gcc-config/files/gcc-config-1.8-copy-gcc-libs-darwin.patch
+++ b/sys-devel/gcc-config/files/gcc-config-1.8-copy-gcc-libs-darwin.patch
@@ -1,7 +1,7 @@
 diff --git a/a/gcc-config b/b/gcc-config
 index d747840..b1e0517 100755
---- a/a/gcc-config
-+++ b/b/gcc-config
+--- a/gcc-config
++++ b/gcc-config
 @@ -364,11 +364,6 @@ prefix_copy_gcc_libs() {
                        # static only, nothing to do here
                        return 0

diff --git a/sys-devel/gcc-config/files/gcc-config-1.8-copy-gcc-libs.patch 
b/sys-devel/gcc-config/files/gcc-config-1.8-copy-gcc-libs.patch
deleted file mode 100644
index 3e62f85bec..0000000000
--- a/sys-devel/gcc-config/files/gcc-config-1.8-copy-gcc-libs.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-essential missing bit that makes sure libgcc_s.so.1 (amongst others)
-remains available on Solaris
-
-diff --git a/gcc-config b/gcc-config
---- a/gcc-config
-+++ b/gcc-config
-@@ -336,6 +339,197 @@ handle_split_usr() {
-       return 0
- }
- 
-+prefix_copy_gcc_libs() {
-+      # no business here if not Prefix
-+      [[ -z ${EPREFIX} ]] && return 0
-+
-+      # To emulate properly what ld.so.conf magic does for non-prefix,
-+      # we have to copy the libs of all installed (native) GCC's and
-+      # make sure we do the current one as last, such that the
-+      # pointers for the unversioned libs point to the currently
-+      # selected version.  This is only necessary for platforms that use
-+      # shared libs, and only record the object name (not the full path).
-+      case ${CHOST} in
-+              *-mint*)
-+                      # static only, nothing to do here
-+                      return 0
-+                      ;;
-+              *-darwin*)
-+                      # Mach-O records all references with full path, hence 
each
-+                      # object has links to the GCC-specific version of the 
lib.
-+                      return 0
-+                      ;;
-+      esac
-+
-+      # dstlibgcc location is added to RPATH by the binutils wrapper
-+      local dstlibgcc=${EROOT}/usr/${CHOST}/lib/gcc
-+
-+      # Prepare empty directories first
-+      local temporary=.gcc.config.new
-+      rm -rf   "${dstlibgcc}"/${temporary} || return 1
-+      mkdir -p "${dstlibgcc}"/${temporary} || return 1
-+
-+      local LIBSUFFIX
-+      case ${CHOST} in
-+              hppa64*-hpux*)
-+                      LIBSUFFIX="sl"
-+                      do_single_runtime() {
-+                              do_single_runtime_elf "$@"
-+                      }
-+                      finish_runtime_dir() {
-+                              finish_runtime_dir_elf "$@" 
-+                      }
-+                      ;;
-+              hppa*-hpux*)
-+                      LIBSUFFIX="sl"
-+                      do_single_runtime() {
-+                              local sourcedir=$1; shift
-+                              local libname=$1; shift
-+                              local targetdir=$1; shift
-+                              local finaldir=$1; shift
-+
-+                              # when using some simple shell script wrappers 
(again :)),
-+                              # there may be no libs around!
-+                              if [[ -n $(ls 
"${sourcedir}"/lib${libname}.*${LIBSUFFIX}* 2>/dev/null) ]]; then
-+                                      cp -fpP 
"${sourcedir}"/lib${libname}.*${LIBSUFFIX}* "${targetdir}" || return 1
-+                                      # gcc creates "libgcc_s.4" with symlink 
"libgcc_s.sl -> libgcc_s.4", and
-+                                      # we patch it to also set the 'internal 
name' (=soname) (gcc-PR40913).
-+                                      if [[ ${libname} == 'gcc_s' ]]; then
-+                                              if [[ -n $(ls 
"${sourcedir}"/lib${libname}.[0-9] 2>/dev/null) ]]; then
-+                                                      cp -fpP 
"${sourcedir}"/lib${libname}.[0-9] "${targetdir}" || return 1
-+                                              fi
-+                                      fi
-+                                      # we do not need the unversioned lib, 
as linking
-+                                      # is done against the used gcc's 
private copy.
-+                                      rm -f 
"${targetdir}"/lib${libname}.${LIBSUFFIX} || return 1
-+                              fi
-+                      }
-+                      finish_runtime_dir() {
-+                              finish_runtime_dir_elf "$@" 
-+                      }
-+                      ;;
-+              *)
-+                      LIBSUFFIX="so"
-+                      do_single_runtime() {
-+                              do_single_runtime_elf "$@"
-+                      }
-+                      finish_runtime_dir() {
-+                              finish_runtime_dir_elf "$@" 
-+                      }
-+                      ;;
-+      esac
-+
-+      do_single_runtime_elf() {
-+              local sourcedir=$1; shift
-+              local libname=$1; shift
-+              local targetdir=$1; shift
-+              local finaldir=$1; shift
-+
-+              # when using some simple shell script wrappers (again :)),
-+              # there may be no libs around!
-+              if [[ -n $(ls "${sourcedir}"/lib${libname}.*${LIBSUFFIX}* 
2>/dev/null) ]]; then
-+                      cp -fpP "${sourcedir}"/lib${libname}.*${LIBSUFFIX}* 
"${targetdir}" || return 1
-+                      # we do not need the unversioned lib, as linking
-+                      # is done against the used gcc's private copy.
-+                      rm -f "${targetdir}"/lib${libname}.${LIBSUFFIX} || 
return 1
-+              fi
-+      }
-+
-+      finish_runtime_dir_elf() {
-+              local sourcedir=$1; shift
-+              local targetdir=$1; shift
-+              local cleanup=$1; shift
-+
-+              if [[ ${cleanup} == clean ]]; then
-+                      if [[ ${targetdir} == *${EPREFIX}/lib ]]; then
-+                              echo "WARNING: not cleaning ${targetdir}" >&2
-+                      else
-+                              for f in "${targetdir}"/*; do
-+                                      [[ ${f} == ${sourcedir} ]] && continue
-+                                      [[ -e "${sourcedir}/${f##*/}" ]] && 
continue
-+                                      rm -f "${f}"
-+                              done
-+                      fi
-+              fi
-+
-+              # move symlinks first:
-+              # because of file ordering, the real files may be
-+              # moved before the symlinks, causing the symlinks
-+              # going broken.
-+              for f in "${sourcedir}"/*; do
-+                      [[ -e ${f} && -L ${f} ]] || continue
-+                      # use backups: hpux cannot overwrite sharedlibs in use: 
"Text file busy"
-+                      rm -f "${targetdir}"/${f##*/}*'~' >/dev/null 2>&1
-+                      mv -f --backup=numbered --suffix='~' "${f}" 
"${targetdir}"/${f##*/} || return 1
-+                      rm -f "${targetdir}"/${f##*/}*'~' >/dev/null 2>&1
-+              done
-+
-+              for f in "${sourcedir}"/*; do
-+                      [[ -f "${f}" ]] || continue
-+                      # use backups: hpux cannot overwrite sharedlibs in use: 
"Text file busy"
-+                      rm -f "${targetdir}"/${f##*/}*'~' >/dev/null 2>&1
-+                      mv -f --backup=numbered --suffix='~' "${f}" 
"${targetdir}"/${f##*/} || return 1
-+                      rm -f "${targetdir}"/${f##*/}*'~' >/dev/null 2>&1
-+              done
-+              rmdir "${sourcedir}"
-+      }
-+
-+      local GCC_PROFILES=$(LC_ALL="C" ls ${GCC_ENV_D}/${CHOST}-*)
-+
-+      local targetdirs=
-+      for x in ${GCC_PROFILES} ; do
-+              unset GCC_PATH LDPATH
-+              eval $(
-+                      source "${x}"
-+                      echo "GCC_PATH='${GCC_PATH}'"
-+                      echo "LDPATH='${LDPATH%%:*}'"
-+              )
-+
-+              pushd "${ROOT%/}${LDPATH}" > /dev/null || return 1
-+
-+              local donelibs= lib= gcclib=
-+              for lib in lib*.${LIBSUFFIX}; do
-+                      gcclib=${lib#lib}
-+                      gcclib=${gcclib%.${LIBSUFFIX}}
-+                      gcclib=${gcclib%%.[0-9]*} # we need the unversioned 
libname.
-+                      [[ ${donelibs} != *" ${gcclib} "* ]] || continue
-+                      donelibs="${donelibs} ${gcclib} "
-+
-+                      [[ ${targetdirs} == *":${dstlibgcc},clean:"* ]] ||
-+                              targetdirs="${targetdirs}:${dstlibgcc},clean:"
-+
-+                      do_single_runtime \
-+                              "${ROOT%/}${LDPATH}" \
-+                              ${gcclib} \
-+                              "${ROOT%/}${dstlibgcc}"/${temporary} \
-+                              "${dstlibgcc}" \
-+                      || return 1
-+              done
-+
-+              popd > /dev/null
-+      done
-+
-+      local clean= targetdir=
-+      local save_IFS=$IFS
-+      IFS=:
-+      for targetdir in ${targetdirs}; do
-+              IFS=$save_IFS
-+              [[ -n ${targetdir} ]] || continue
-+
-+              # eventually cleanup old files (not from $EPREFIX/lib)
-+              clean=${targetdir##*,}
-+
-+              targetdir=${targetdir%,*}
-+
-+              finish_runtime_dir \
-+                      "${ROOT%/}${targetdir}"/${temporary} \
-+                      "${ROOT%/}${targetdir}" \
-+                      ${clean} \
-+              || return 1
-+      done
-+      IFS=$save_IFS
-+}
-+
- switch_profile() {
-       local OLD_CC_COMP OLD_CC_COMP_VERSION OLD_GCC_PATH OLD_GCC_VER
-       local GCC_PATH
-@@ -443,6 +637,7 @@ switch_profile() {
-               done
- 
-+              prefix_copy_gcc_libs
-               handle_split_usr
-               : $(( envd_changed += $? ))
-       fi
-       mv_if_diff "${envd}.tmp" "${envd}"

diff --git 
a/sys-devel/gcc-config/files/gcc-config-1.8-dont_source_functions_sh_from_etc_initd.patch
 
b/sys-devel/gcc-config/files/gcc-config-1.8-dont_source_functions_sh_from_etc_initd.patch
deleted file mode 100644
index a4b7de2ffc..0000000000
--- 
a/sys-devel/gcc-config/files/gcc-config-1.8-dont_source_functions_sh_from_etc_initd.patch
+++ /dev/null
@@ -1,47 +0,0 @@
---- gcc-config-1.8/gcc-config
-+++ gcc-config-1.8/gcc-config
-@@ -15,8 +15,9 @@
- trap ":" INT QUIT TSTP
- 
- argv0=${0##*/}
--source /etc/init.d/functions.sh || {
--      echo "${argv0}: Could not source /etc/init.d/functions.sh!" 1>&2
-+functions_script="/lib/gentoo/functions.sh"
-+source ${functions_script} || {
-+      echo "${argv0}: Could not source ${functions_script}!" 1>&2
-       exit 1
- }
- esyslog() { :; }
-
-From d45de09450ffb63b138bbb7f78cae43e1101e2ec Mon Sep 17 00:00:00 2001
-From: Ryan Hill <[email protected]>
-Date: Tue, 12 May 2015 22:09:28 -0600
-Subject: [PATCH] Ignore whitespace when diffing test results.
-
-The amount of whitespace output by ebegin/eend from gentoo-functions
-is dynamic (seems to be dependent on terminal width).  Since we can't
-predict this we have to ignore all whitespace differences.
-
-URL: https://bugs.gentoo.org/547586
-Reported-by: tka <[email protected]>
-Signed-off-by: Ryan Hill <[email protected]>
----
- tests/run_tests | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/run_tests b/tests/run_tests
-index 2ff7d77..397d667 100755
---- a/tests/run_tests
-+++ b/tests/run_tests
-@@ -44,7 +44,7 @@ cmp_log() {
-       args+=( -e "s|: line [0-9]*: |: |g" )
-       sed "${args[@]}" "${exp}" > "${exp}.tmp"
-       sed "${args[@]}" "${log}" > "${log}.tmp"
--      diff -u "${exp}.tmp" "${log}.tmp" > "${log}.diff"
-+      diff -uw "${exp}.tmp" "${log}.tmp" > "${log}.diff"
-       ret=$?
-       rm "${exp}.tmp"
-       return ${ret}
--- 
-2.4.4
-

diff --git a/sys-devel/gcc-config/files/gcc-config-1.8-cygwin.patch 
b/sys-devel/gcc-config/files/gcc-config-1.9-cygwin.patch
similarity index 75%
rename from sys-devel/gcc-config/files/gcc-config-1.8-cygwin.patch
rename to sys-devel/gcc-config/files/gcc-config-1.9-cygwin.patch
index 267d85990f..26bc7428e9 100644
--- a/sys-devel/gcc-config/files/gcc-config-1.8-cygwin.patch
+++ b/sys-devel/gcc-config/files/gcc-config-1.9-cygwin.patch
@@ -1,14 +1,14 @@
---- gcc-config-1.8/gcc-config.orig     2016-11-21 17:50:00.700959745 +0100
-+++ gcc-config-1.8/gcc-config  2016-11-21 17:55:03.354280232 +0100
+--- a/gcc-config
++++ b/gcc-config
 @@ -9,6 +9,7 @@
  : ${ROOT:=/}
  [[ ${ROOT} != */ ]] && ROOT="${ROOT}/"
  [[ ${ROOT} != /* ]] && ROOT="${PWD%/}/${ROOT}"
 +[[ // -ef / ]] || ROOT="/.${ROOT}" # stick to filesystem (Cygwin)
- BPREFIX="@GENTOO_PORTAGE_EPREFIX@"
- : ${EPREFIX:=${BPREFIX}}
+ EPREFIX="@GENTOO_EPREFIX@"
+ [[ ${EPREFIX} == @*@ ]] && EPREFIX=""
  EROOT="${ROOT%/}${EPREFIX}/"
-@@ -181,6 +182,8 @@
+@@ -182,6 +183,8 @@
  
  uniq_wrapper_list() {
        local ver=$1; shift
@@ -17,7 +17,7 @@
        # We want to normalize away existing target prefix.
        set -- "${@#${CTARGET}-*}"
        # And we want to filter out any version suffixed progs.
-@@ -659,7 +662,7 @@
+@@ -693,7 +696,7 @@
  
        update_wrappers ${CTARGET}
  
@@ -26,7 +26,7 @@
           [[ ${FORCE} == "yes" || ${envd_changed} -gt 0 ]]
        then
                # in case python is broken ...
-@@ -720,7 +723,7 @@
+@@ -752,7 +755,7 @@
        local i=0
        local filter=
  

diff --git a/sys-devel/gcc-config/files/gcc-config-prefix-1.8-r221-r1.patch 
b/sys-devel/gcc-config/files/gcc-config-prefix-1.8-r221-r1.patch
deleted file mode 100644
index 4aa3e6fbb6..0000000000
--- a/sys-devel/gcc-config/files/gcc-config-prefix-1.8-r221-r1.patch
+++ /dev/null
@@ -1,342 +0,0 @@
-diff --git a/a/Makefile b/b/Makefile
---- a/a/Makefile
-+++ b/b/Makefile
-@@ -5,7 +5,8 @@ PN = gcc-config
- PV = git
- P = $(PN)-$(PV)
- 
--PREFIX = /usr
-+EPREFIX =
-+PREFIX = $(EPREFIX)/usr
- BINDIR = $(PREFIX)/bin
- SUBLIBDIR = lib
- LIBDIR = $(PREFIX)/$(SUBLIBDIR)
-@@ -16,6 +17,11 @@ INSTALL_EXE = install -m 755
- 
- all: wrapper
- 
-+wrapper.c: wrapper.c.in
-+      sed \
-+              -e 's:@GENTOO_PORTAGE_EPREFIX@:$(EPREFIX):g' \
-+              wrapper.c.in > wrapper.c
-+
- clean:
-       rm -f wrapper *.o core
- 
-@@ -23,6 +29,7 @@ install: all
-       $(MKDIR_P) $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBEXECDIR)
-       $(INSTALL_EXE) wrapper $(DESTDIR)$(LIBEXECDIR)/$(PN)
-       sed \
-+              -e 's:@GENTOO_PORTAGE_EPREFIX@:$(EPREFIX):g' \
-               -e 's:@GENTOO_LIBDIR@:$(SUBLIBDIR):g' \
-               -e 's:@PV@:$(PV):g' \
-               gcc-config > $(DESTDIR)$(BINDIR)/gcc-config
-diff --git a/a/gcc-config b/b/gcc-config
-index 18d0b48..935b4c8 100755
---- a/a/gcc-config
-+++ b/b/gcc-config
-@@ -9,13 +9,16 @@
- : ${ROOT:=/}
- [[ ${ROOT} != */ ]] && ROOT="${ROOT}/"
- [[ ${ROOT} != /* ]] && ROOT="${PWD%/}/${ROOT}"
-+BPREFIX="@GENTOO_PORTAGE_EPREFIX@"
-+: ${EPREFIX:=${BPREFIX}}
-+EROOT="${ROOT%/}${EPREFIX}/"
- 
- cd /
- 
- trap ":" INT QUIT TSTP
- 
- argv0=${0##*/}
--functions_script="/lib/gentoo/functions.sh"
-+functions_script="${BPREFIX}/lib/gentoo/functions.sh"
- source ${functions_script} || {
-       echo "${argv0}: Could not source ${functions_script}!" 1>&2
-       exit 1
-@@ -84,16 +87,16 @@ try_real_hard_to_find_CHOST() {
-       #
- 
-       local varname=${1:-CHOST}
--      local conf=${ROOT}/etc/portage/make.conf
--      if [[ ! -e ${conf} && -e ${ROOT}/etc/make.conf ]] ; then
--              conf=${ROOT}/etc/make.conf
-+      local conf=${EROOT}/etc/portage/make.conf
-+      if [[ ! -e ${conf} && -e ${EROOT}/etc/make.conf ]] ; then
-+              conf=${EROOT}/etc/make.conf
-       fi
-       local ret=$(source "${conf}" 2>/dev/null ; echo ${!varname})
-       if [[ -z ${ret} ]] ; then
-               # newer portage supports spaces between the var and =
-               # CHOST     =  "this-is-retarded"
-               ret=$(eval $(
--                      sed -n \
-+                      ${SED} -n \
-                               -e 's:[[:space:]]::g' \
-                               -e "/^${varname}=/p" \
-                               "${conf}"
-@@ -109,8 +112,8 @@ try_real_hard_to_find_CHOST() {
-       #
-       # Then we try /etc/env.d/gcc/config-${CTARGET}
-       #
--      if [[ -s ${ROOT}/etc/env.d/gcc/config-${CTARGET} ]] ; then
--              ret=$(split_gcc_ver $(show_var CURRENT 
"${ROOT}"/etc/env.d/gcc/config-${CTARGET}))
-+      if [[ -s ${EROOT}/etc/env.d/gcc/config-${CTARGET} ]] ; then
-+              ret=$(split_gcc_ver $(show_var CURRENT 
"${EROOT}"/etc/env.d/gcc/config-${CTARGET}))
-               echo ${ret% *}
-       fi
- }
-@@ -124,7 +127,7 @@ get_chost() {
- 
-       # make sure portage isnt broken
-       if python -V &>/dev/null ; then
--              CHOST=$(portageq envvar CHOST 2>/dev/null)
-+              CHOST=$(env -i EPREFIX="${BPREFIX}" 
"$(PATH="${BPREFIX}/usr/bin:${PATH}" type -P portageq)" envvar CHOST 
2>/dev/null)
-       else
-               ewarn "Python seems to be broken, attempting to locate CHOST 
ourselves ..."
-               CHOST=$(try_real_hard_to_find_CHOST)
-@@ -133,7 +136,7 @@ get_chost() {
-       if [[ -z ${CHOST} ]] ; then
-               eerror "${argv0}: Could not get portage CHOST!"
-               eerror "${argv0}: You should verify that CHOST is set in one of 
these places:"
--              eerror "${argv0}:  - ${ROOT}/etc/portage/make.conf"
-+              eerror "${argv0}:  - ${EROOT}/etc/portage/make.conf"
-               eerror "${argv0}:  - active environment"
-               exit 1
-       fi
-@@ -196,7 +199,7 @@ update_wrappers() {
-       # Find the bin wrapper
-       local wrapper
-       for wrapper in ${GENTOO_LIBDIR} lib lib64 lib32 lib ; do
--              wrapper="${ROOT}usr/${wrapper}/misc/gcc-config"
-+              wrapper="${EROOT}usr/${wrapper}/misc/gcc-config"
-               [[ -e ${wrapper} ]] && break
-       done
- 
-@@ -222,7 +225,7 @@ update_wrappers() {
-       # new one does not.
-       for x in "${old_wrappers[@]}" ; do
-               has "${x}" "${new_wrappers[@]}" && continue
--              rm -f "${ROOT}usr/bin/${x}" "${ROOT}usr/bin/${CTARGET}-${x}"
-+              rm -f "${EROOT}usr/bin/${x}" "${EROOT}usr/bin/${CTARGET}-${x}"
-       done
- 
-       # For all toolchains, we want to create the fully qualified
-@@ -259,20 +262,19 @@ update_wrappers() {
- 
-               # Now do the actual wrapper copy with paths to the reference 
binary
-               if [[ -x ${ref} ]] ; then
--                      atomic_cp "${wrapper}" "${ROOT}usr/bin" "${x}" "${ref}"
-+                      atomic_cp "${wrapper}" "${EROOT}usr/bin" "${x}" "${ref}"
-               else
-                       ewarn "double insanity with ${x} and ${ref}"
-                       # Make sure we have no stale wrappers
--                      rm -f "${ROOT}usr/bin/${x}"
-+                      rm -f "${EROOT}usr/bin/${x}"
-               fi
-       done
-       # legacy cruft, make sure we dont leave it laying around #143205
--      rm -f "${ROOT}usr/bin/${CTARGET}-cc" 
"${ROOT}usr/bin"/{${CTARGET}-,}g{cc,++}{32,64}
-+      rm -f "${EROOT}usr/bin/${CTARGET}-cc" 
"${EROOT}usr/bin"/{${CTARGET}-,}g{cc,++}{32,64}
- 
-       # install the canonical cpp wrapper
--      [[ ${CTARGET} == *-solaris* ]] && return 0
-       if ! is_cross_compiler ; then
--              atomic_cp "${wrapper}" "${ROOT}lib" "cpp" "${ROOT}usr/bin/cpp"
-+              atomic_cp "${wrapper}" "${EROOT}lib" "cpp" "${EROOT}usr/bin/cpp"
-       fi
- }
- 
-@@ -301,33 +303,45 @@ handle_split_usr() {
-       eval $(grep -h '^LDPATH=' "${GCC_ENV_D}"/${CHOST}-* | tail -1)
-       LDPATH=${LDPATH%%:*}
- 
--      # If /usr isn't a sep mount, then don't bother with linking stuff.
--      if ln "${ROOT}/${LDPATH}/libgcc.a" "${ROOT}"/lib/.gcc.config.$$ 
2>/dev/null ; then
--              rm -f "${ROOT}"/lib/.gcc.config.$$
--              if [[ -n $(find "${ROOT}"/lib*/lib{gcc_s,unwind}.so* 
2>/dev/null) ]] ; then
-+      # If /usr isn't a sep mount or EPREFIX is set, then don't bother with 
linking stuff.
-+      if [[ -n ${EPREFIX} ]] || ln "${ROOT}/${LDPATH}/libgcc.a" 
"${EROOT}"/lib/.gcc.config.$$ 2>/dev/null ; then
-+              rm -f "${EROOT}"/lib/.gcc.config.$$
-+              if [[ -n $(find "${EROOT}"/lib*/lib{gcc_s,unwind}{.so*,*dylib} 
2>/dev/null) ]] ; then
-                       # If we previously had stuff in /, make sure ldconfig 
gets re-run.
--                      rm -f "${ROOT}"/lib*/lib{gcc_s,unwind}.so*
-+                      rm -f "${EROOT}"/lib*/lib{gcc_s,unwind}{.so*,*dylib}
-                       return 1
-               fi
-               return 0
-       fi
- 
--      # Only bother with this stuff for the native ABI.  We assume the user
--      # doesn't have critical binaries for non-native ABIs which is fair.
--      local gcclib
--      local libdir="${ROOT}${GENTOO_LIBDIR}"
--      mkdir -p "${libdir}"/.gcc.config.new || return 0 # !?!?!
--      for gcclib in gcc_s unwind ; do
--              # This assumes that we always have the .so symlink,
--              # but for now, that should be safe ...
--              for gcclib in "${ROOT}${LDPATH}"/lib${gcclib}.so.* ; do
--                      [[ -e ${gcclib} ]] || continue
--                      cp -pP "${gcclib}" "${libdir}"/.gcc.config.new/
--                      # no need to sanity `rm` this as the `mv` should take 
care
--                      # of it.  we also need this step to be completely atomic
--                      # for systems that have even `mv` linked against 
libgcc_s.so.
--                      # http://bugs.gentoo.org/150257
--                      mv -f "${libdir}"/.gcc.config.new/* "${libdir}"/
-+      gcc="${ROOT}${LATEST_GCC_PATH}/gcc"
-+
-+      local multilib
-+      for multilib in $("${gcc}" -print-multi-lib); do
-+              local multiarg=${multilib#*;}
-+              multiarg=${multiarg/@/-}
-+              local multilibdir=${multilib%;*}
-+              local libdir="${EROOT}lib/"$("${gcc}" ${multiarg} 
-print-multi-os-directory)
-+
-+              mkdir -p "${libdir}"/.gcc.config.new || continue # !?!?!
-+
-+              # Only bother with this stuff for the native ABI.  We assume 
the user
-+              # doesn't have critical binaries for non-native ABIs which is 
fair.
-+              local gcclib
-+              local libdir="${ROOT}${GENTOO_LIBDIR}"
-+              mkdir -p "${libdir}"/.gcc.config.new || return 0 # !?!?!
-+              for gcclib in gcc_s unwind ; do
-+                      # This assumes that we always have the .so symlink,
-+                      # but for now, that should be safe ...
-+                      for gcclib in "${ROOT}${LDPATH}"/lib${gcclib}.so.* ; do
-+                              [[ -e ${gcclib} ]] || continue
-+                              cp -pP "${gcclib}" "${libdir}"/.gcc.config.new/
-+                              # no need to sanity `rm` this as the `mv` 
should take care
-+                              # of it.  we also need this step to be 
completely atomic
-+                              # for systems that have even `mv` linked 
against libgcc_s.so.
-+                              # http://bugs.gentoo.org/150257
-+                              mv -f "${libdir}"/.gcc.config.new/* "${libdir}"/
-+                      done
-               done
-       done
-       rmdir "${libdir}"/.gcc.config.new
-@@ -341,7 +355,7 @@ switch_profile() {
- 
-       # Make sure we have write access to the dirs.  Do not require `root`
-       # so that we work with prefix/cross/etc... setups that run as user.
--      [[ ! -w ${ROOT} ]] && die "need write access to ${ROOT}"
-+      [[ ! -w ${EROOT} ]] && die "need write access to ${EROOT}"
- 
-       if is_cross_compiler ; then
-               ebegin "Switching cross-compiler to ${CC_COMP}"
-@@ -408,7 +422,7 @@ switch_profile() {
-               # Pass all by default
-               awk 
'!/^(STDCXX_INCDIR|LDPATH|CC|CXX|CTARGET|GCCBITS|GCC_SPECS|GCC_PATH|MULTIOSDIRS)=/
 {print $0}' \
-                       "${GCC_ENV_D}/${CC_COMP}" >> "${envd}.tmp"
--              if [[ -d ${ROOT}/etc/ld.so.conf.d ]] ; then
-+              if [[ -z ${EPREFIX} && -d ${ROOT}/etc/ld.so.conf.d ]] ; then
-                       echo "${MY_LDPATH}" > 
"${ROOT}"/etc/ld.so.conf.d/05gcc-${CTARGET}.conf
-               else
-                       echo "LDPATH=\"${MY_LDPATH}\"" >> "${envd}.tmp"
-@@ -427,7 +441,7 @@ switch_profile() {
-               local x libdir pkgconfdir
-               local mver=${CC_COMP_VERSION:0:3}
-               for libdir in ${MULTIOSDIRS//:/ } ; do
--                      pkgconfdir="${ROOT}/usr/lib/${libdir}/pkgconfig"
-+                      pkgconfdir="${EROOT}/usr/lib/${libdir}/pkgconfig"
-                       for x in "" "-${mver}" ; do
-                               x="${pkgconfdir}/libgcj${x}.pc"
-                               if [[ -e 
${pkgconfdir}/libgcj-${CC_COMP_VERSION}.pc ]] ; then
-@@ -458,7 +472,7 @@ switch_profile() {
-                       ewarn "env-update failed to work properly; making sure 
ld.so.conf paths"
-                       ewarn "are setup properly.  Please rerun gcc-config 
with the -f option."
-                       echo ""
--                      if [[ ! -d /etc/ld.so.conf.d ]] ; then
-+                      if [[ -z ${EPREFIX} && ! -d /etc/ld.so.conf.d ]] ; then
-                               show_var LDPATH 
"${ROOT}"/etc/env.d/05gcc-${CTARGET} \
-                                       | sed -e 's|:|\n|g' >> /etc/ld.so.conf
-                       fi
-@@ -475,7 +489,9 @@ switch_profile() {
-               ewarn "If you intend to use the gcc from the new profile in an 
already"
-               ewarn "running shell, please remember to do:"
-               echo
--              ewarn "  . /etc/profile"
-+              ewarn " (bash) # . ${EPREFIX}/etc/profile"
-+              ewarn "or"
-+              ewarn " (tcsh) # source ${EPREFIX}/etc/csh.login"
-               echo
-       fi
- 
-@@ -653,7 +669,7 @@ DOIT=""
- FORCE="no"
- 
- CC_COMP=
--ENV_D="${ROOT}etc/env.d"
-+ENV_D="${EROOT}etc/env.d"
- GCC_ENV_D="${ENV_D}/gcc"
- 
- for x in "$@" ; do
-@@ -784,7 +800,11 @@ if [[ -z ${CC_COMP} ]] ; then
- fi
- 
- if [[ ${DOIT} != "get_current_profile" ]] ; then
--      GCC_LIB=$(get_lib_path | awk -F/ '{ print  "/"$2"/"$3"/"$4"/" }')
-+      GCC_LIB=$(
-+              get_lib_path | \
-+                      sed -e "s|${EPREFIX}/*|/|g" | \
-+                      awk -F/ '{ print "/"$2"/"$3"/"$4"/" }'
-+      )
- 
-       # For people who insist on using funky version strings ("4.6.x"
-       # rather than "4.6.2"), allow them to manually specify it.
-@@ -797,11 +817,11 @@ if [[ ${DOIT} != "get_current_profile" ]] ; then
-               CC_COMP_TARGET=${CC_COMP%-${CC_COMP_VERSION}*}
-       fi
- 
--      if [[ ! -d ${ROOT}/${GCC_LIB}/${CC_COMP_TARGET}/${CC_COMP_VERSION} ]]; 
then
-+      if [[ ! -d ${EROOT}/${GCC_LIB}/${CC_COMP_TARGET}/${CC_COMP_VERSION} ]]; 
then
-               CC_COMP_VERSION=${CC_COMP_VERSION%-*}
-       fi
- 
--      if [[ ! -d ${ROOT}/${GCC_LIB}/${CC_COMP_TARGET}/${CC_COMP_VERSION} ]] 
|| \
-+      if [[ ! -d ${EROOT}/${GCC_LIB}/${CC_COMP_TARGET}/${CC_COMP_VERSION} ]] 
|| \
-          [[ ! -f ${GCC_ENV_D}/${CC_COMP} ]]
-       then
-               eerror "${argv0}: Profile does not exist or invalid setting for 
${GCC_ENV_D}/${CC_COMP}" 1>&2
-diff --git a/a/wrapper.c.in b/b/wrapper.c.in
-index 65e5317..afa03bc 100644
---- a/a/wrapper.c.in
-+++ b/b/wrapper.c.in
-@@ -21,8 +21,8 @@
- #include <sys/stat.h>
- #include <sys/types.h>
- 
--#define GCC_CONFIG "/usr/bin/gcc-config"
--#define ENVD_BASE  "/etc/env.d/05gcc"
-+#define GCC_CONFIG "@GENTOO_PORTAGE_EPREFIX@/usr/bin/gcc-config"
-+#define ENVD_BASE  "@GENTOO_PORTAGE_EPREFIX@/etc/env.d/05gcc"
- 
- #define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
- 
-@@ -146,7 +146,7 @@ static int find_target_in_envd(struct wrapper_data *data, 
int cross_compile)
-               /* for the sake of speed, we'll keep a symlink around for
-                * the native compiler.  #190260
-                */
--              snprintf(envd_file, sizeof(envd_file)-1, 
"/etc/env.d/gcc/.NATIVE");
-+              snprintf(envd_file, sizeof(envd_file)-1, 
"@GENTOO_PORTAGE_EPREFIX@/etc/env.d/gcc/.NATIVE");
-       } else {
-               char *ctarget, *end = strrchr(data->name, '-');
-               if (end == NULL)
-@@ -213,7 +213,7 @@ static void find_wrapper_target(struct wrapper_data *data)
-       /* Only our wrapper is in PATH, so get the CC path using
-        * gcc-config and execute the real binary in there ...
-        */
--      FILE *inpipe = popen("ROOT= " GCC_CONFIG " --get-bin-path", "r");
-+      FILE *inpipe = popen("ROOT= EPREFIX=\"@GENTOO_PORTAGE_EPREFIX@\" " 
GCC_CONFIG " --get-bin-path", "r");
-       if (inpipe == NULL)
-               wrapper_errp("could not open pipe");
- 
-@@ -289,8 +289,8 @@ int main(int argc, char *argv[])
-                       data.name = wrapper_aliases[i].target;
- 
-       /* What is the full name of our wrapper? */
--      data.fullname = xmalloc(strlen(data.name) + sizeof("/usr/bin/") + 1);
--      sprintf(data.fullname, "/usr/bin/%s", data.name);
-+      data.fullname = xmalloc(strlen(data.name) + 
sizeof("@GENTOO_PORTAGE_EPREFIX@/usr/bin/") + 1);
-+      sprintf(data.fullname, "@GENTOO_PORTAGE_EPREFIX@/usr/bin/%s", 
data.name);
- 
-       find_wrapper_target(&data);
- 

diff --git a/sys-devel/gcc-config/files/gcc-config-prefix-1.8-r221.patch 
b/sys-devel/gcc-config/files/gcc-config-prefix-1.8-r221.patch
deleted file mode 100644
index cef133812b..0000000000
--- a/sys-devel/gcc-config/files/gcc-config-prefix-1.8-r221.patch
+++ /dev/null
@@ -1,344 +0,0 @@
-diff --git a/a/Makefile b/b/Makefile
---- a/a/Makefile
-+++ b/b/Makefile
-@@ -5,7 +5,8 @@ PN = gcc-config
- PV = git
- P = $(PN)-$(PV)
- 
--PREFIX = /usr
-+EPREFIX =
-+PREFIX = $(EPREFIX)/usr
- BINDIR = $(PREFIX)/bin
- SUBLIBDIR = lib
- LIBDIR = $(PREFIX)/$(SUBLIBDIR)
-@@ -16,6 +17,11 @@ INSTALL_EXE = install -m 755
- 
- all: wrapper
- 
-+wrapper.c: wrapper.c.in
-+      sed \
-+              -e 's:@GENTOO_PORTAGE_EPREFIX@:$(EPREFIX):g' \
-+              wrapper.c.in > wrapper.c
-+
- clean:
-       rm -f wrapper *.o core
- 
-@@ -23,6 +29,7 @@ install: all
-       $(MKDIR_P) $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBEXECDIR)
-       $(INSTALL_EXE) wrapper $(DESTDIR)$(LIBEXECDIR)/$(PN)
-       sed \
-+              -e 's:@GENTOO_PORTAGE_EPREFIX@:$(EPREFIX):g' \
-               -e 's:@GENTOO_LIBDIR@:$(SUBLIBDIR):g' \
-               -e 's:@PV@:$(PV):g' \
-               gcc-config > $(DESTDIR)$(BINDIR)/gcc-config
-diff --git a/a/gcc-config b/b/gcc-config
-index 18d0b48..935b4c8 100755
---- a/a/gcc-config
-+++ b/b/gcc-config
-@@ -9,14 +9,17 @@
- : ${ROOT:=/}
- [[ ${ROOT} != */ ]] && ROOT="${ROOT}/"
- [[ ${ROOT} != /* ]] && ROOT="${PWD%/}/${ROOT}"
-+BPREFIX="@GENTOO_PORTAGE_EPREFIX@"
-+: ${EPREFIX:=${BPREFIX}}
-+EROOT="${ROOT%/}${EPREFIX}/"
- 
- cd /
- 
- trap ":" INT QUIT TSTP
- 
- argv0=${0##*/}
--source /etc/init.d/functions.sh || {
--      echo "${argv0}: Could not source /etc/init.d/functions.sh!" 1>&2
-+source "${BPREFIX}"/etc/init.d/functions.sh || {
-+      echo "${argv0}: Could not source ${BPREFIX}/etc/init.d/functions.sh!" 
1>&2
-       exit 1
- }
- esyslog() { :; }
-@@ -84,16 +87,16 @@ try_real_hard_to_find_CHOST() {
-       #
- 
-       local varname=${1:-CHOST}
--      local conf=${ROOT}/etc/portage/make.conf
--      if [[ ! -e ${conf} && -e ${ROOT}/etc/make.conf ]] ; then
--              conf=${ROOT}/etc/make.conf
-+      local conf=${EROOT}/etc/portage/make.conf
-+      if [[ ! -e ${conf} && -e ${EROOT}/etc/make.conf ]] ; then
-+              conf=${EROOT}/etc/make.conf
-       fi
-       local ret=$(source "${conf}" 2>/dev/null ; echo ${!varname})
-       if [[ -z ${ret} ]] ; then
-               # newer portage supports spaces between the var and =
-               # CHOST     =  "this-is-retarded"
-               ret=$(eval $(
--                      sed -n \
-+                      ${SED} -n \
-                               -e 's:[[:space:]]::g' \
-                               -e "/^${varname}=/p" \
-                               "${conf}"
-@@ -109,8 +112,8 @@ try_real_hard_to_find_CHOST() {
-       #
-       # Then we try /etc/env.d/gcc/config-${CTARGET}
-       #
--      if [[ -s ${ROOT}/etc/env.d/gcc/config-${CTARGET} ]] ; then
--              ret=$(split_gcc_ver $(show_var CURRENT 
"${ROOT}"/etc/env.d/gcc/config-${CTARGET}))
-+      if [[ -s ${EROOT}/etc/env.d/gcc/config-${CTARGET} ]] ; then
-+              ret=$(split_gcc_ver $(show_var CURRENT 
"${EROOT}"/etc/env.d/gcc/config-${CTARGET}))
-               echo ${ret% *}
-       fi
- }
-@@ -124,7 +127,7 @@ get_chost() {
- 
-       # make sure portage isnt broken
-       if python -V &>/dev/null ; then
--              CHOST=$(portageq envvar CHOST 2>/dev/null)
-+              CHOST=$(env -i EPREFIX="${BPREFIX}" 
"$(PATH="${BPREFIX}/usr/bin:${PATH}" type -P portageq)" envvar CHOST 
2>/dev/null)
-       else
-               ewarn "Python seems to be broken, attempting to locate CHOST 
ourselves ..."
-               CHOST=$(try_real_hard_to_find_CHOST)
-@@ -133,7 +136,7 @@ get_chost() {
-       if [[ -z ${CHOST} ]] ; then
-               eerror "${argv0}: Could not get portage CHOST!"
-               eerror "${argv0}: You should verify that CHOST is set in one of 
these places:"
--              eerror "${argv0}:  - ${ROOT}/etc/portage/make.conf"
-+              eerror "${argv0}:  - ${EROOT}/etc/portage/make.conf"
-               eerror "${argv0}:  - active environment"
-               exit 1
-       fi
-@@ -196,7 +199,7 @@ update_wrappers() {
-       # Find the bin wrapper
-       local wrapper
-       for wrapper in ${GENTOO_LIBDIR} lib lib64 lib32 lib ; do
--              wrapper="${ROOT}usr/${wrapper}/misc/gcc-config"
-+              wrapper="${EROOT}usr/${wrapper}/misc/gcc-config"
-               [[ -e ${wrapper} ]] && break
-       done
- 
-@@ -222,7 +225,7 @@ update_wrappers() {
-       # new one does not.
-       for x in "${old_wrappers[@]}" ; do
-               has "${x}" "${new_wrappers[@]}" && continue
--              rm -f "${ROOT}usr/bin/${x}" "${ROOT}usr/bin/${CTARGET}-${x}"
-+              rm -f "${EROOT}usr/bin/${x}" "${EROOT}usr/bin/${CTARGET}-${x}"
-       done
- 
-       # For all toolchains, we want to create the fully qualified
-@@ -259,20 +262,19 @@ update_wrappers() {
- 
-               # Now do the actual wrapper copy with paths to the reference 
binary
-               if [[ -x ${ref} ]] ; then
--                      atomic_cp "${wrapper}" "${ROOT}usr/bin" "${x}" "${ref}"
-+                      atomic_cp "${wrapper}" "${EROOT}usr/bin" "${x}" "${ref}"
-               else
-                       ewarn "double insanity with ${x} and ${ref}"
-                       # Make sure we have no stale wrappers
--                      rm -f "${ROOT}usr/bin/${x}"
-+                      rm -f "${EROOT}usr/bin/${x}"
-               fi
-       done
-       # legacy cruft, make sure we dont leave it laying around #143205
--      rm -f "${ROOT}usr/bin/${CTARGET}-cc" 
"${ROOT}usr/bin"/{${CTARGET}-,}g{cc,++}{32,64}
-+      rm -f "${EROOT}usr/bin/${CTARGET}-cc" 
"${EROOT}usr/bin"/{${CTARGET}-,}g{cc,++}{32,64}
- 
-       # install the canonical cpp wrapper
--      [[ ${CTARGET} == *-solaris* ]] && return 0
-       if ! is_cross_compiler ; then
--              atomic_cp "${wrapper}" "${ROOT}lib" "cpp" "${ROOT}usr/bin/cpp"
-+              atomic_cp "${wrapper}" "${EROOT}lib" "cpp" "${EROOT}usr/bin/cpp"
-       fi
- }
- 
-@@ -301,33 +303,45 @@ handle_split_usr() {
-       eval $(grep -h '^LDPATH=' "${GCC_ENV_D}"/${CHOST}-* | tail -1)
-       LDPATH=${LDPATH%%:*}
- 
--      # If /usr isn't a sep mount, then don't bother with linking stuff.
--      if ln "${ROOT}/${LDPATH}/libgcc.a" "${ROOT}"/lib/.gcc.config.$$ 
2>/dev/null ; then
--              rm -f "${ROOT}"/lib/.gcc.config.$$
--              if [[ -n $(find "${ROOT}"/lib*/lib{gcc_s,unwind}.so* 
2>/dev/null) ]] ; then
-+      # If /usr isn't a sep mount or EPREFIX is set, then don't bother with 
linking stuff.
-+      if [[ -n ${EPREFIX} ]] || ln "${ROOT}/${LDPATH}/libgcc.a" 
"${EROOT}"/lib/.gcc.config.$$ 2>/dev/null ; then
-+              rm -f "${EROOT}"/lib/.gcc.config.$$
-+              if [[ -n $(find "${EROOT}"/lib*/lib{gcc_s,unwind}{.so*,*dylib} 
2>/dev/null) ]] ; then
-                       # If we previously had stuff in /, make sure ldconfig 
gets re-run.
--                      rm -f "${ROOT}"/lib*/lib{gcc_s,unwind}.so*
-+                      rm -f "${EROOT}"/lib*/lib{gcc_s,unwind}{.so*,*dylib}
-                       return 1
-               fi
-               return 0
-       fi
- 
--      # Only bother with this stuff for the native ABI.  We assume the user
--      # doesn't have critical binaries for non-native ABIs which is fair.
--      local gcclib
--      local libdir="${ROOT}${GENTOO_LIBDIR}"
--      mkdir -p "${libdir}"/.gcc.config.new || return 0 # !?!?!
--      for gcclib in gcc_s unwind ; do
--              # This assumes that we always have the .so symlink,
--              # but for now, that should be safe ...
--              for gcclib in "${ROOT}${LDPATH}"/lib${gcclib}.so.* ; do
--                      [[ -e ${gcclib} ]] || continue
--                      cp -pP "${gcclib}" "${libdir}"/.gcc.config.new/
--                      # no need to sanity `rm` this as the `mv` should take 
care
--                      # of it.  we also need this step to be completely atomic
--                      # for systems that have even `mv` linked against 
libgcc_s.so.
--                      # http://bugs.gentoo.org/150257
--                      mv -f "${libdir}"/.gcc.config.new/* "${libdir}"/
-+      gcc="${ROOT}${LATEST_GCC_PATH}/gcc"
-+
-+      local multilib
-+      for multilib in $("${gcc}" -print-multi-lib); do
-+              local multiarg=${multilib#*;}
-+              multiarg=${multiarg/@/-}
-+              local multilibdir=${multilib%;*}
-+              local libdir="${EROOT}lib/"$("${gcc}" ${multiarg} 
-print-multi-os-directory)
-+
-+              mkdir -p "${libdir}"/.gcc.config.new || continue # !?!?!
-+
-+              # Only bother with this stuff for the native ABI.  We assume 
the user
-+              # doesn't have critical binaries for non-native ABIs which is 
fair.
-+              local gcclib
-+              local libdir="${ROOT}${GENTOO_LIBDIR}"
-+              mkdir -p "${libdir}"/.gcc.config.new || return 0 # !?!?!
-+              for gcclib in gcc_s unwind ; do
-+                      # This assumes that we always have the .so symlink,
-+                      # but for now, that should be safe ...
-+                      for gcclib in "${ROOT}${LDPATH}"/lib${gcclib}.so.* ; do
-+                              [[ -e ${gcclib} ]] || continue
-+                              cp -pP "${gcclib}" "${libdir}"/.gcc.config.new/
-+                              # no need to sanity `rm` this as the `mv` 
should take care
-+                              # of it.  we also need this step to be 
completely atomic
-+                              # for systems that have even `mv` linked 
against libgcc_s.so.
-+                              # http://bugs.gentoo.org/150257
-+                              mv -f "${libdir}"/.gcc.config.new/* "${libdir}"/
-+                      done
-               done
-       done
-       rmdir "${libdir}"/.gcc.config.new
-@@ -341,7 +355,7 @@ switch_profile() {
- 
-       # Make sure we have write access to the dirs.  Do not require `root`
-       # so that we work with prefix/cross/etc... setups that run as user.
--      [[ ! -w ${ROOT} ]] && die "need write access to ${ROOT}"
-+      [[ ! -w ${EROOT} ]] && die "need write access to ${EROOT}"
- 
-       if is_cross_compiler ; then
-               ebegin "Switching cross-compiler to ${CC_COMP}"
-@@ -408,7 +422,7 @@ switch_profile() {
-               # Pass all by default
-               awk 
'!/^(STDCXX_INCDIR|LDPATH|CC|CXX|CTARGET|GCCBITS|GCC_SPECS|GCC_PATH|MULTIOSDIRS)=/
 {print $0}' \
-                       "${GCC_ENV_D}/${CC_COMP}" >> "${envd}.tmp"
--              if [[ -d ${ROOT}/etc/ld.so.conf.d ]] ; then
-+              if [[ -z ${EPREFIX} && -d ${ROOT}/etc/ld.so.conf.d ]] ; then
-                       echo "${MY_LDPATH}" > 
"${ROOT}"/etc/ld.so.conf.d/05gcc-${CTARGET}.conf
-               else
-                       echo "LDPATH=\"${MY_LDPATH}\"" >> "${envd}.tmp"
-@@ -427,7 +441,7 @@ switch_profile() {
-               local x libdir pkgconfdir
-               local mver=${CC_COMP_VERSION:0:3}
-               for libdir in ${MULTIOSDIRS//:/ } ; do
--                      pkgconfdir="${ROOT}/usr/lib/${libdir}/pkgconfig"
-+                      pkgconfdir="${EROOT}/usr/lib/${libdir}/pkgconfig"
-                       for x in "" "-${mver}" ; do
-                               x="${pkgconfdir}/libgcj${x}.pc"
-                               if [[ -e 
${pkgconfdir}/libgcj-${CC_COMP_VERSION}.pc ]] ; then
-@@ -458,7 +472,7 @@ switch_profile() {
-                       ewarn "env-update failed to work properly; making sure 
ld.so.conf paths"
-                       ewarn "are setup properly.  Please rerun gcc-config 
with the -f option."
-                       echo ""
--                      if [[ ! -d /etc/ld.so.conf.d ]] ; then
-+                      if [[ -z ${EPREFIX} && ! -d /etc/ld.so.conf.d ]] ; then
-                               show_var LDPATH 
"${ROOT}"/etc/env.d/05gcc-${CTARGET} \
-                                       | sed -e 's|:|\n|g' >> /etc/ld.so.conf
-                       fi
-@@ -475,7 +489,9 @@ switch_profile() {
-               ewarn "If you intend to use the gcc from the new profile in an 
already"
-               ewarn "running shell, please remember to do:"
-               echo
--              ewarn "  . /etc/profile"
-+              ewarn " (bash) # . ${EPREFIX}/etc/profile"
-+              ewarn "or"
-+              ewarn " (tcsh) # source ${EPREFIX}/etc/csh.login"
-               echo
-       fi
- 
-@@ -653,7 +669,7 @@ DOIT=""
- FORCE="no"
- 
- CC_COMP=
--ENV_D="${ROOT}etc/env.d"
-+ENV_D="${EROOT}etc/env.d"
- GCC_ENV_D="${ENV_D}/gcc"
- 
- for x in "$@" ; do
-@@ -784,7 +800,11 @@ if [[ -z ${CC_COMP} ]] ; then
- fi
- 
- if [[ ${DOIT} != "get_current_profile" ]] ; then
--      GCC_LIB=$(get_lib_path | awk -F/ '{ print  "/"$2"/"$3"/"$4"/" }')
-+      GCC_LIB=$(
-+              get_lib_path | \
-+                      sed -e "s|${EPREFIX}/*|/|g" | \
-+                      awk -F/ '{ print "/"$2"/"$3"/"$4"/" }'
-+      )
- 
-       # For people who insist on using funky version strings ("4.6.x"
-       # rather than "4.6.2"), allow them to manually specify it.
-@@ -797,11 +817,11 @@ if [[ ${DOIT} != "get_current_profile" ]] ; then
-               CC_COMP_TARGET=${CC_COMP%-${CC_COMP_VERSION}*}
-       fi
- 
--      if [[ ! -d ${ROOT}/${GCC_LIB}/${CC_COMP_TARGET}/${CC_COMP_VERSION} ]]; 
then
-+      if [[ ! -d ${EROOT}/${GCC_LIB}/${CC_COMP_TARGET}/${CC_COMP_VERSION} ]]; 
then
-               CC_COMP_VERSION=${CC_COMP_VERSION%-*}
-       fi
- 
--      if [[ ! -d ${ROOT}/${GCC_LIB}/${CC_COMP_TARGET}/${CC_COMP_VERSION} ]] 
|| \
-+      if [[ ! -d ${EROOT}/${GCC_LIB}/${CC_COMP_TARGET}/${CC_COMP_VERSION} ]] 
|| \
-          [[ ! -f ${GCC_ENV_D}/${CC_COMP} ]]
-       then
-               eerror "${argv0}: Profile does not exist or invalid setting for 
${GCC_ENV_D}/${CC_COMP}" 1>&2
-diff --git a/a/wrapper.c.in b/b/wrapper.c.in
-index 65e5317..afa03bc 100644
---- a/a/wrapper.c.in
-+++ b/b/wrapper.c.in
-@@ -21,8 +21,8 @@
- #include <sys/stat.h>
- #include <sys/types.h>
- 
--#define GCC_CONFIG "/usr/bin/gcc-config"
--#define ENVD_BASE  "/etc/env.d/05gcc"
-+#define GCC_CONFIG "@GENTOO_PORTAGE_EPREFIX@/usr/bin/gcc-config"
-+#define ENVD_BASE  "@GENTOO_PORTAGE_EPREFIX@/etc/env.d/05gcc"
- 
- #define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0]))
- 
-@@ -146,7 +146,7 @@ static int find_target_in_envd(struct wrapper_data *data, 
int cross_compile)
-               /* for the sake of speed, we'll keep a symlink around for
-                * the native compiler.  #190260
-                */
--              snprintf(envd_file, sizeof(envd_file)-1, 
"/etc/env.d/gcc/.NATIVE");
-+              snprintf(envd_file, sizeof(envd_file)-1, 
"@GENTOO_PORTAGE_EPREFIX@/etc/env.d/gcc/.NATIVE");
-       } else {
-               char *ctarget, *end = strrchr(data->name, '-');
-               if (end == NULL)
-@@ -213,7 +213,7 @@ static void find_wrapper_target(struct wrapper_data *data)
-       /* Only our wrapper is in PATH, so get the CC path using
-        * gcc-config and execute the real binary in there ...
-        */
--      FILE *inpipe = popen("ROOT= " GCC_CONFIG " --get-bin-path", "r");
-+      FILE *inpipe = popen("ROOT= EPREFIX=\"@GENTOO_PORTAGE_EPREFIX@\" " 
GCC_CONFIG " --get-bin-path", "r");
-       if (inpipe == NULL)
-               wrapper_errp("could not open pipe");
- 
-@@ -289,8 +289,8 @@ int main(int argc, char *argv[])
-                       data.name = wrapper_aliases[i].target;
- 
-       /* What is the full name of our wrapper? */
--      data.fullname = xmalloc(strlen(data.name) + sizeof("/usr/bin/") + 1);
--      sprintf(data.fullname, "/usr/bin/%s", data.name);
-+      data.fullname = xmalloc(strlen(data.name) + 
sizeof("@GENTOO_PORTAGE_EPREFIX@/usr/bin/") + 1);
-+      sprintf(data.fullname, "@GENTOO_PORTAGE_EPREFIX@/usr/bin/%s", 
data.name);
- 
-       find_wrapper_target(&data);
- 

diff --git a/sys-devel/gcc-config/gcc-config-1.5-r2.ebuild 
b/sys-devel/gcc-config/gcc-config-1.5-r2.ebuild
deleted file mode 100644
index b8ae28c836..0000000000
--- a/sys-devel/gcc-config/gcc-config-1.5-r2.ebuild
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: 
/var/cvsroot/gentoo-x86/sys-devel/gcc-config/gcc-config-1.5-r2.ebuild,v 1.7 
2012/03/15 15:45:05 vapier Exp $
-
-inherit eutils flag-o-matic toolchain-funcs multilib prefix
-
-# Version of .c wrapper to use
-W_VER="1.5.2"
-
-DESCRIPTION="Utility to change the gcc compiler being used"
-HOMEPAGE="http://www.gentoo.org/";
-SRC_URI=""
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos 
~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE=""
-
-RDEPEND="!app-admin/eselect-compiler
-       >=sys-devel/binutils-config-1.9-r04.3"
-
-S=${WORKDIR}
-
-src_unpack() {
-       cp "${FILESDIR}"/wrapper-${W_VER}.c "${S}"/wrapper.c || die
-       cp "${FILESDIR}"/${PN}-${PV}  "${S}/"${PN}-${PV} || die
-       eprefixify "${S}"/wrapper.c "${S}"/${PN}-${PV}
-}
-
-src_compile() {
-       strip-flags
-
-       emake CC="$(tc-getCC)" wrapper || die "compile wrapper"
-}
-
-src_install() {
-       newbin ${PN}-${PV} ${PN} || die "install gcc-config"
-       sed -i \
-               -e "s:@GENTOO_LIBDIR@:$(get_libdir):g" \
-               "${ED}"/usr/bin/${PN}
-
-       exeinto /usr/$(get_libdir)/misc
-       newexe wrapper gcc-config || die "install wrapper"
-}
-
-pkg_postinst() {
-       # Scrub eselect-compiler remains
-       if [[ -e ${EROOT}/etc/env.d/05compiler ]] ; then
-               rm -f "${EROOT}"/etc/env.d/05compiler
-       fi
-
-       # Make sure old versions dont exist #79062
-       rm -f "${EROOT}"/usr/sbin/gcc-config
-
-       # We not longer use the /usr/include/g++-v3 hacks, as
-       # it is not needed ...
-       [[ -L ${EROOT}/usr/include/g++ ]] && rm -f "${EROOT}"/usr/include/g++
-       [[ -L ${EROOT}/usr/include/g++-v3 ]] && rm -f 
"${EROOT}"/usr/include/g++-v3
-
-       # Do we have a valid multi ver setup ?
-       local x
-       for x in $(gcc-config -C -l 2>/dev/null | awk '$NF == "*" { print $2 
}') ; do
-               gcc-config ${x}
-       done
-}

diff --git a/sys-devel/gcc-config/gcc-config-1.8-r00.1.ebuild 
b/sys-devel/gcc-config/gcc-config-1.8-r00.1.ebuild
deleted file mode 100644
index bd400001c9..0000000000
--- a/sys-devel/gcc-config/gcc-config-1.8-r00.1.ebuild
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: 
/var/cvsroot/gentoo-x86/sys-devel/gcc-config/gcc-config-1.8.ebuild,v 1.2 
2014/01/18 03:08:29 vapier Exp $
-
-EAPI=3
-
-inherit unpacker toolchain-funcs multilib eutils
-
-# 
http://prefix.gentooexperimental.org:8000/gcc-config-prefix/graph/6d287a1709c6
-PREFIXREV=221
-
-DESCRIPTION="utility to manage compilers"
-HOMEPAGE="http://git.overlays.gentoo.org/gitweb/?p=proj/gcc-config.git";
-SRC_URI="mirror://gentoo/${P}.tar.xz
-       http://dev.gentoo.org/~vapier/dist/${P}.tar.xz";
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~ppc-aix ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos 
~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris ~x86-winnt"
-IUSE=""
-
-src_prepare() {
-       mv wrapper.c wrapper.c.in || die
-       epatch "${FILESDIR}"/${PN}-prefix-${PV}-r${PREFIXREV}.patch
-       epatch "${FILESDIR}"/${P}-copy-gcc-libs.patch
-}
-
-src_compile() {
-       emake EPREFIX="${EPREFIX}" CC="$(tc-getCC)" || die
-}
-
-src_install() {
-       emake \
-               EPREFIX="${EPREFIX}" \
-               DESTDIR="${D}" \
-               PV="${PV}" \
-               SUBLIBDIR="$(get_libdir)" \
-               install || die
-}
-
-pkg_postinst() {
-       # Scrub eselect-compiler remains
-       rm -f "${EROOT}"/etc/env.d/05compiler &
-
-       # Make sure old versions dont exist #79062
-       rm -f "${EROOT}"/usr/sbin/gcc-config &
-
-       # We not longer use the /usr/include/g++-v3 hacks, as
-       # it is not needed ...
-       rm -f "${EROOT}"/usr/include/g++{,-v3} &
-
-       # Do we have a valid multi ver setup ?
-       local x
-       for x in $(gcc-config -C -l 2>/dev/null | awk '$NF == "*" { print $2 
}') ; do
-               gcc-config ${x}
-       done
-
-       wait
-}

diff --git a/sys-devel/gcc-config/gcc-config-1.8-r01.1.ebuild 
b/sys-devel/gcc-config/gcc-config-1.8-r01.1.ebuild
deleted file mode 100644
index a3b63564e5..0000000000
--- a/sys-devel/gcc-config/gcc-config-1.8-r01.1.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: 
/var/cvsroot/gentoo-x86/sys-devel/gcc-config/gcc-config-1.8.ebuild,v 1.1 
2012/11/19 06:55:06 vapier Exp $
-
-EAPI=3
-
-inherit unpacker toolchain-funcs multilib eutils
-
-# 
http://prefix.gentooexperimental.org:8000/gcc-config-prefix/graph/6d287a1709c6
-PREFIXREV=221
-
-DESCRIPTION="utility to manage compilers"
-HOMEPAGE="http://git.overlays.gentoo.org/gitweb/?p=proj/gcc-config.git";
-SRC_URI="mirror://gentoo/${P}.tar.xz
-       http://dev.gentoo.org/~vapier/dist/${P}.tar.xz";
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos 
~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris 
~x86-winnt"
-IUSE=""
-
-src_prepare() {
-       epatch 
"${FILESDIR}/${PN}-1.8-dont_source_functions_sh_from_etc_initd.patch" # 504118
-       mv wrapper.c wrapper.c.in || die
-       epatch "${FILESDIR}"/${PN}-prefix-${PV}-r${PREFIXREV}-r1.patch
-       epatch "${FILESDIR}"/${P}-copy-gcc-libs.patch
-       epatch "${FILESDIR}"/${P}-copy-gcc-libs-darwin.patch
-       epatch "${FILESDIR}"/${P}-cygwin.patch
-}
-
-src_compile() {
-       emake EPREFIX="${EPREFIX}" CC="$(tc-getCC)" || die
-}
-
-src_install() {
-       emake \
-               EPREFIX="${EPREFIX}" \
-               DESTDIR="${D}" \
-               PV="${PV}" \
-               SUBLIBDIR="$(get_libdir)" \
-               install || die
-}
-
-pkg_postinst() {
-       # Scrub eselect-compiler remains
-       rm -f "${EROOT}"/etc/env.d/05compiler &
-
-       # Make sure old versions dont exist #79062
-       rm -f "${EROOT}"/usr/sbin/gcc-config &
-
-       # We not longer use the /usr/include/g++-v3 hacks, as
-       # it is not needed ...
-       rm -f "${EROOT}"/usr/include/g++{,-v3} &
-
-       # Do we have a valid multi ver setup ?
-       local x
-       for x in $(gcc-config -C -l 2>/dev/null | awk '$NF == "*" { print $2 
}') ; do
-               gcc-config ${x}
-       done
-
-       wait
-}

diff --git a/sys-devel/gcc-config/gcc-config-1.8-r1.ebuild 
b/sys-devel/gcc-config/gcc-config-1.9.0.ebuild
similarity index 50%
rename from sys-devel/gcc-config/gcc-config-1.8-r1.ebuild
rename to sys-devel/gcc-config/gcc-config-1.9.0.ebuild
index f0c022f072..6c39598837 100644
--- a/sys-devel/gcc-config/gcc-config-1.8-r1.ebuild
+++ b/sys-devel/gcc-config/gcc-config-1.9.0.ebuild
@@ -1,34 +1,29 @@
 # Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: 
/var/cvsroot/gentoo-x86/sys-devel/gcc-config/gcc-config-1.8.ebuild,v 1.1 
2012/11/19 06:55:06 vapier Exp $
 
-EAPI=3
+EAPI=6
 
-inherit unpacker toolchain-funcs multilib eutils
+inherit eutils toolchain-funcs multilib
 
-# 
http://prefix.gentooexperimental.org:8000/gcc-config-prefix/graph/6d287a1709c6
-PREFIXREV=221
-
-DESCRIPTION="utility to manage compilers"
-HOMEPAGE="http://git.overlays.gentoo.org/gitweb/?p=proj/gcc-config.git";
+DESCRIPTION="Utility to manage compilers"
+HOMEPAGE="https://gitweb.gentoo.org/proj/gcc-config.git/";
 SRC_URI="mirror://gentoo/${P}.tar.xz
-       http://dev.gentoo.org/~vapier/dist/${P}.tar.xz";
+       https://dev.gentoo.org/~dilfridge/distfiles/${P}.tar.xz";
 
 LICENSE="GPL-2"
 SLOT="0"
 KEYWORDS="~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos 
~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris 
~x86-winnt"
 IUSE=""
 
-src_prepare() {
-       mv wrapper.c wrapper.c.in || die
-       epatch "${FILESDIR}"/${PN}-prefix-${PV}-r${PREFIXREV}.patch
-       epatch "${FILESDIR}"/${P}-copy-gcc-libs.patch
-       epatch "${FILESDIR}"/${P}-copy-gcc-libs-darwin.patch
-       epatch "${FILESDIR}"/${P}-cygwin.patch
-}
+RDEPEND=">=sys-apps/gentoo-functions-0.10"
+
+PATCHES=(
+       "${FILESDIR}"/${PN}-1.8-copy-gcc-libs-darwin.patch
+       "${FILESDIR}"/${PN}-1.9-cygwin.patch
+)
 
 src_compile() {
-       emake EPREFIX="${EPREFIX}" CC="$(tc-getCC)" || die
+       emake EPREFIX="${EPREFIX}" CC="$(tc-getCC)"
 }
 
 src_install() {
@@ -37,16 +32,13 @@ src_install() {
                DESTDIR="${D}" \
                PV="${PV}" \
                SUBLIBDIR="$(get_libdir)" \
-               install || die
+               install
 }
 
 pkg_postinst() {
        # Scrub eselect-compiler remains
        rm -f "${EROOT}"/etc/env.d/05compiler &
 
-       # Make sure old versions dont exist #79062
-       rm -f "${EROOT}"/usr/sbin/gcc-config &
-
        # We not longer use the /usr/include/g++-v3 hacks, as
        # it is not needed ...
        rm -f "${EROOT}"/usr/include/g++{,-v3} &

Reply via email to