* [gentoo-commits] repo/proj/prefix:master commit in: sys-devel/gcc-config/, sys-devel/gcc-config/files/
@ 2017-11-25 19:46 Fabian Groffen
0 siblings, 0 replies; 3+ messages in thread
From: Fabian Groffen @ 2017-11-25 19:46 UTC (permalink / raw
To: gentoo-commits
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 <rhill@gentoo.org>
-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 <tka@kamph.org>
-Signed-off-by: Ryan Hill <rhill@gentoo.org>
----
- 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} &
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-commits] repo/proj/prefix:master commit in: sys-devel/gcc-config/, sys-devel/gcc-config/files/
@ 2018-01-19 10:44 Michael Haubenwallner
0 siblings, 0 replies; 3+ messages in thread
From: Michael Haubenwallner @ 2018-01-19 10:44 UTC (permalink / raw
To: gentoo-commits
commit: 7c116df5b34e6e8f1ae9c2121b1f01d02bb978ff
Author: Michael Haubenwallner <haubi <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 19 10:44:30 2018 +0000
Commit: Michael Haubenwallner <haubi <AT> gentoo <DOT> org>
CommitDate: Fri Jan 19 10:44:30 2018 +0000
URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=7c116df5
sys-devel/gcc-config: sync, use /usr/bin/env bash
For prefix-chaining there eventually is no EPREFIX/bin/bash, so we need
to /usr/bin/env bash instead.
Package-Manager: Portage-2.3.18-prefix, Repoman-2.3.6
sys-devel/gcc-config/Manifest | 1 +
.../files/gcc-config-1.9-usrbinenv-bash.patch | 18 +++++++
sys-devel/gcc-config/gcc-config-1.9.1.ebuild | 62 ++++++++++++++++++++++
3 files changed, 81 insertions(+)
diff --git a/sys-devel/gcc-config/Manifest b/sys-devel/gcc-config/Manifest
index ccd59688f9..3a3f29ce03 100644
--- a/sys-devel/gcc-config/Manifest
+++ b/sys-devel/gcc-config/Manifest
@@ -1 +1,2 @@
DIST gcc-config-1.9.0.tar.xz 17468 BLAKE2B 3e0b6faff3ac582fc0fed921958ff849ba8b1be5b0c25609790cd56400c05371e47ecd955b7bc79362179a559def94463a3667858a70d6edd283d2c064ff0734 SHA512 658c8ce26fdddd6f3e519310001cdf0f8fb01226df2d575fec81b39c083613ef0675024b79b285fab89a930c4ada7a1aef04433eb21947b4e9c0a9cb12f8fabc
+DIST gcc-config-1.9.1.tar.xz 17628 BLAKE2B 8fce87038d9aed625d833327a7e335c311aeb04d44a07a7738def235333a9428664314ddd4da3a1d59d030136734377a838f25ff411b249aba25ea22a88460ee SHA512 6c518c266698277a1ad00a1624fc1ada15ed7096d05a520700c60a27180885169bd2051fb6869e6a958503c8eebc1cd6c211098501c5fe258ee11d96c6a0b069
diff --git a/sys-devel/gcc-config/files/gcc-config-1.9-usrbinenv-bash.patch b/sys-devel/gcc-config/files/gcc-config-1.9-usrbinenv-bash.patch
new file mode 100644
index 0000000000..5df08b42f6
--- /dev/null
+++ b/sys-devel/gcc-config/files/gcc-config-1.9-usrbinenv-bash.patch
@@ -0,0 +1,18 @@
+--- gcc-config-1.9.0/gcc-config
++++ gcc-config-1.9.0/gcc-config
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/usr/bin/env bash
+ # Copyright 1999-2012 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+--- gcc-config-1.9.1/Makefile
++++ gcc-config-1.9.1/Makefile
+@@ -26,7 +26,6 @@
+
+ .gcc-config: gcc-config
+ sed \
+- -e '1s:/:$(EPREFIX)/:' \
+ -e 's:@GENTOO_EPREFIX@:$(EPREFIX):g' \
+ -e 's:@GENTOO_LIBDIR@:$(SUBLIBDIR):g' \
+ -e 's:@PV@:$(PV):g' \
diff --git a/sys-devel/gcc-config/gcc-config-1.9.1.ebuild b/sys-devel/gcc-config/gcc-config-1.9.1.ebuild
new file mode 100644
index 0000000000..3605471f2d
--- /dev/null
+++ b/sys-devel/gcc-config/gcc-config-1.9.1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs
+
+if [[ ${PV} == 9999 ]]; then
+ EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/gcc-config.git"
+ inherit git-r3
+else
+ SRC_URI="mirror://gentoo/${P}.tar.xz
+ https://dev.gentoo.org/~dilfridge/distfiles/${P}.tar.xz"
+ 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"
+fi
+
+DESCRIPTION="Utility to manage compilers"
+HOMEPAGE="https://gitweb.gentoo.org/proj/gcc-config.git/"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+RDEPEND=">=sys-apps/gentoo-functions-0.10"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.8-copy-gcc-libs-darwin.patch
+ "${FILESDIR}"/${PN}-1.9-cygwin.patch
+ "${FILESDIR}"/${PN}-1.9-usrbinenv-bash.patch
+)
+
+src_compile() {
+ emake CC="$(tc-getCC)" \
+ EPREFIX="${EPREFIX}" \
+ PV="${PV}" \
+ SUBLIBDIR="$(get_libdir)"
+}
+
+src_install() {
+ emake \
+ EPREFIX="${EPREFIX}" \
+ DESTDIR="${D}" \
+ PV="${PV}" \
+ SUBLIBDIR="$(get_libdir)" \
+ install
+}
+
+pkg_postinst() {
+ # Scrub eselect-compiler remains
+ rm -f "${EROOT}"/etc/env.d/05compiler &
+
+ # 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
+}
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [gentoo-commits] repo/proj/prefix:master commit in: sys-devel/gcc-config/, sys-devel/gcc-config/files/
@ 2024-10-09 7:17 Fabian Groffen
0 siblings, 0 replies; 3+ messages in thread
From: Fabian Groffen @ 2024-10-09 7:17 UTC (permalink / raw
To: gentoo-commits
commit: dff843372e572e30bd93e825c11e9d749fbbfbf8
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 9 07:06:53 2024 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Wed Oct 9 07:16:53 2024 +0000
URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=dff84337
sys-devel/gcc-config-1.9.1: cleanup old
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
.../files/gcc-config-1.9-usrbinenv-bash.patch | 18 -------
...config-1.9.0-ensure-env-update-for-prefix.patch | 46 ----------------
sys-devel/gcc-config/gcc-config-1.9.1.ebuild | 62 ----------------------
3 files changed, 126 deletions(-)
diff --git a/sys-devel/gcc-config/files/gcc-config-1.9-usrbinenv-bash.patch b/sys-devel/gcc-config/files/gcc-config-1.9-usrbinenv-bash.patch
deleted file mode 100644
index 5df08b42f6..0000000000
--- a/sys-devel/gcc-config/files/gcc-config-1.9-usrbinenv-bash.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- gcc-config-1.9.0/gcc-config
-+++ gcc-config-1.9.0/gcc-config
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/usr/bin/env bash
- # Copyright 1999-2012 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
-
---- gcc-config-1.9.1/Makefile
-+++ gcc-config-1.9.1/Makefile
-@@ -26,7 +26,6 @@
-
- .gcc-config: gcc-config
- sed \
-- -e '1s:/:$(EPREFIX)/:' \
- -e 's:@GENTOO_EPREFIX@:$(EPREFIX):g' \
- -e 's:@GENTOO_LIBDIR@:$(SUBLIBDIR):g' \
- -e 's:@PV@:$(PV):g' \
diff --git a/sys-devel/gcc-config/files/gcc-config-1.9.0-ensure-env-update-for-prefix.patch b/sys-devel/gcc-config/files/gcc-config-1.9.0-ensure-env-update-for-prefix.patch
deleted file mode 100644
index 744d8a1bc3..0000000000
--- a/sys-devel/gcc-config/files/gcc-config-1.9.0-ensure-env-update-for-prefix.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 748d20380aa1b27149dc1b80c7eaf15fde7c6aba Mon Sep 17 00:00:00 2001
-From: Fabian Groffen <grobian@gentoo.org>
-Date: Fri, 15 Dec 2017 09:30:17 +0100
-Subject: gcc-config: ensure we run env-update for prefix too
-
-The intention of commit cfbb9e94ca23c360d5801946e39da29c7d422dfc was to
-disable running ldconfig and updating ld.so.conf for prefix, but the
-implementation was too greedy and also disabled env-update, which we
-need to activate a compiler, see bug #641096.
-
-Bug: https://bugs.gentoo.org/641096
----
- gcc-config | 12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/gcc-config b/gcc-config
-index 7fcde15..ff8d8ac 100755
---- a/gcc-config
-+++ b/gcc-config
-@@ -693,16 +693,18 @@ switch_profile() {
- [[ ${FORCE} == "yes" || ${envd_changed} -gt 0 ]]
- then
- # in case python is broken ...
-- if [[ -z ${EPREFIX} ]] && ! env-update ; then
-+ 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 [[ ! -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
-+ if [[ -z ${EPREFIX} ]] ; then
-+ if [[ ! -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
-- ldconfig
- fi
- else
- envd_changed=0
---
-cgit v1.1
-
diff --git a/sys-devel/gcc-config/gcc-config-1.9.1.ebuild b/sys-devel/gcc-config/gcc-config-1.9.1.ebuild
deleted file mode 100644
index 3746c85755..0000000000
--- a/sys-devel/gcc-config/gcc-config-1.9.1.ebuild
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit toolchain-funcs
-
-if [[ ${PV} == 9999 ]]; then
- EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/gcc-config.git"
- inherit git-r3
-else
- SRC_URI="mirror://gentoo/${P}.tar.xz
- https://dev.gentoo.org/~dilfridge/distfiles/${P}.tar.xz"
- KEYWORDS="~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
-fi
-
-DESCRIPTION="Utility to manage compilers"
-HOMEPAGE="https://gitweb.gentoo.org/proj/gcc-config.git/"
-LICENSE="GPL-2"
-SLOT="0"
-IUSE=""
-
-RDEPEND=">=sys-apps/gentoo-functions-0.10"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-1.8-copy-gcc-libs-darwin.patch
- "${FILESDIR}"/${PN}-1.9-cygwin.patch
- "${FILESDIR}"/${PN}-1.9-usrbinenv-bash.patch
-)
-
-src_compile() {
- emake CC="$(tc-getCC)" \
- EPREFIX="${EPREFIX}" \
- PV="${PV}" \
- SUBLIBDIR="$(get_libdir)"
-}
-
-src_install() {
- emake \
- EPREFIX="${EPREFIX}" \
- DESTDIR="${D}" \
- PV="${PV}" \
- SUBLIBDIR="$(get_libdir)" \
- install
-}
-
-pkg_postinst() {
- # Scrub eselect-compiler remains
- rm -f "${EROOT}"/etc/env.d/05compiler &
-
- # 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
-}
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-10-09 7:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-09 7:17 [gentoo-commits] repo/proj/prefix:master commit in: sys-devel/gcc-config/, sys-devel/gcc-config/files/ Fabian Groffen
-- strict thread matches above, loose matches on Subject: below --
2018-01-19 10:44 Michael Haubenwallner
2017-11-25 19:46 Fabian Groffen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox