remove old files
authorMike Frysinger <vapier@gentoo.org>
Mon, 25 Oct 2004 13:57:29 +0000 (13:57 +0000)
committerMike Frysinger <vapier@gentoo.org>
Mon, 25 Oct 2004 13:57:29 +0000 (13:57 +0000)
sys-devel/gcc-config/Manifest
sys-devel/gcc-config/files/gcc-config-1.4 [deleted file]
sys-devel/gcc-config/files/gcc-config-1.4.1 [deleted file]
sys-devel/gcc-config/files/wrapper-1.4.1.c [deleted file]
sys-devel/gcc-config/files/wrapper-1.4.c [deleted file]
sys-devel/gcc-config/files/wrapper.c [deleted file]

index 77df945240e108a3fa70e1333baed4548e5ea26d..0372c1a60cccbdec41bb3607c576b99aafe4084a 100644 (file)
@@ -8,17 +8,12 @@ MD5 9a09f8d531c582e78977dbfd96edc1f2 metadata.xml 164
 MD5 04ffd7a97a3ba3f11745080e82266e16 files/gcc-config-1.3.7 10724
 MD5 d41d8cd98f00b204e9800998ecf8427e files/digest-gcc-config-1.3.6-r3 0
 MD5 d41d8cd98f00b204e9800998ecf8427e files/digest-gcc-config-1.3.7 0
-MD5 6fb6357ea1e81976c54079bbac2b5953 files/gcc-config-1.4 12017
-MD5 b2f6742e0556986c6c1f1de8e737fd6c files/gcc-config-1.4.1 12978
-MD5 44763c26bd5bb1303d5be8b5f4309c29 files/wrapper-1.4.1.c 7299
-MD5 843435f640a4b76d12f8faee16f685f3 files/wrapper-1.4.c 5636
-MD5 d9c2c81252d15436663ce61abcb87e19 files/wrapper.c 3520
 MD5 e64a89abafa7f6f7d16c2540fb0edcf4 files/wrapper-1.4.2.c 7381
 MD5 f9ac19eaceaad00963038bc3d3d11b98 files/gcc-config-1.3.6 10163
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.9.10 (GNU/Linux)
 
-iD8DBQFBbYYYHTu7gpaalycRAiqOAJ9xP8wwXds/VLXKKDGe+VXHMy43AgCg69bl
-GtwVZ3Rkjsx1sIx348ZrM44=
-=XIdo
+iD8DBQFBfQaVHTu7gpaalycRAkmFAKDsWkTx0frN+7ndNdq8k33JfF31nQCg/Io8
+Z1pB6yGz18fb++T00t74QPg=
+=ewbL
 -----END PGP SIGNATURE-----
diff --git a/sys-devel/gcc-config/files/gcc-config-1.4 b/sys-devel/gcc-config/files/gcc-config-1.4
deleted file mode 100644 (file)
index e1f9011..0000000
+++ /dev/null
@@ -1,550 +0,0 @@
-#!/bin/bash
-# Copyright 1999-2004 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.4,v 1.4 2004/10/02 12:21:18 lv Exp $
-# Author:  Martin Schlemmer <azarah@gentoo.org>
-
-source /etc/init.d/functions.sh || {
-       echo "$0: Could not source /etc/init.d/functions.sh!"
-       exit 1
-}
-
-die() {
-       echo "$*"
-       exit 1
-}
-
-usage() {
-cat << "USAGE_END"
-Usage: gcc-config [Option] [CC Profile]
-Change the current cc/gcc profile, or give info about profiles.
-
-Options:
-
-  --use-old              Use the old profile if one was selected.
-       
-  --use-portage-chost    Only set to given profile if its CHOST is the same
-                         as that set for portage in /etc/make.conf (or one of
-                         other portage config files...).
-       
-  --get-current-profile  Print current used gcc profile.
-
-  --list-profiles        Print a list of available profiles.
-
-  --print-environ        Print environment that can be used to setup things
-                         for current gcc profile, or specified one ...
-       
-  --get-bin-path         Print path where binaries of given/current profile
-                         are located.
-       
-  --get-lib-path         Print path where libraries of given/current profile
-                         are located.
-
-  --get-stdcxx-incdir    Print path to g++ include files of given/current
-                         profile.
-  
-  --install-toolchain    Install a new cross-compiling toolchain (that does
-                         not appear in the list of available profiles)
-                        and create the specified profile.
-
-The profile name is in the form of:
-
-  <CHOST>-<gcc version>
-
-For example:
-
-  i686-pc-linux-gnu-3.2.1
-
-
-
-USAGE_END
-
-       exit 1
-}
-
-if [ "$#" -lt 1 ]
-then
-       usage
-fi
-
-HAVE_WHICH="no"
-if [ -n "$(which which 2> /dev/null)" ]
-then
-       HAVE_WHICH="yes"
-fi
-
-find_path() {
-       [ -z "$1" ] && return 0
-
-       if [ "${HAVE_WHICH}" = "yes" ]
-       then
-               local fullpath="$(which $1 2> /dev/null)"
-               
-               if [ -x "${fullpath}" ]
-               then
-                       echo "${fullpath}"
-                       return 0
-               fi
-       fi
-
-       for x in /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
-       do
-               if [ -x "${x}/$1" -a -r "${x}/$1" ]
-               then
-                       echo "${x}/$1"
-                       return 0
-               fi
-       done
-
-       return 0
-}
-
-cmd_setup() {
-
-       # Sourcing /etc/env.d/gcc/${CC_COMP} is going to mess up
-       # PATH among things...
-       CP="$(find_path cp)"
-       RM="$(find_path rm)"
-       MV="$(find_path mv)"
-       LN="$(find_path ln)"
-       CAT="$(find_path cat)"
-       AWK="$(find_path gawk)"
-       GREP="$(find_path grep)"
-       FIND="$(find_path find)"
-       CHMOD="$(find_path chmod)"
-       TOUCH="$(find_path touch)"
-       ENV_UPDATE="$(find_path env-update)"
-}
-
-CC_COMP=""
-REAL_CHOST="$(/usr/bin/python -c 'import portage; print portage.settings["CHOST"];' 2> /dev/null)"
-if [ -z "${REAL_CHOST}" ]
-then
-       eerror "$0:  Could not get portage CHOST!"
-       return 1
-fi
-
-switch_profile() {
-       local MY_LDPATH=""
-       local GCC_PROFILES=""
-       local OLD_CC_COMP=""
-
-       if [ -r /etc/env.d/gcc/config ]
-       then
-               source /etc/env.d/gcc/config
-
-               if [ -n "${CURRENT}" ]
-               then
-                       OLD_CC_COMP="${CURRENT}"
-               fi
-       fi
-
-       if [ "$(id -u)" -ne 0 ]
-       then
-               eerror "$0: Must be root."
-               exit 1
-       fi
-
-       ebegin "Switching to ${CC_COMP} compiler"
-
-       # Sourcing /etc/env.d/gcc/${CC_COMP} is going to mess up
-       # PATH among things...
-       cmd_setup
-
-       # 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 ...
-       GCC_PROFILES="$(${FIND} /etc/env.d/gcc/ -name "${REAL_CHOST}-*")"
-       GCC_PROFILES="${GCC_PROFILES/\/etc\/env.d\/gcc\/${CC_COMP}}"
-       GCC_PROFILES="/etc/env.d/gcc/${CC_COMP} ${GCC_PROFILES}"
-
-       # Extract all LDPATH's for our CHOST
-       for x in ${GCC_PROFILES}
-       do
-               if [ -f "${x}" ]
-               then
-                       source "${x}"
-
-                       if [ -z "${MY_LDPATH}" ]
-                       then
-                               if [ -d "${LDPATH}" ]
-                               then
-                                       MY_LDPATH="${LDPATH}"
-                               fi
-                       else
-                               if [ -d "${LDPATH}" ]
-                               then
-                                       MY_LDPATH="${MY_LDPATH}:${LDPATH}"
-                               fi
-                       fi
-               fi
-       done
-
-       # Setup things properly again for this profile
-       source "/etc/env.d/gcc/${CC_COMP}"
-
-       # Setup /etc/env.d/05gcc
-       ${AWK} '!/^STDCXX_INCDIR=|^LDPATH=/ {print $0}' \
-               "/etc/env.d/gcc/${CC_COMP}" > /etc/env.d/05gcc
-
-       # Add our custom LDPATH
-       echo "LDPATH=\"${MY_LDPATH}\"" >> /etc/env.d/05gcc
-
-       # Make sure we do not recreate /lib/cpp and /usr/bin/cc ...
-#      echo "DISABLE_GEN_GCC_WRAPPERS=\"yes\"" >> /etc/env.d/05gcc
-       
-       echo "CURRENT=${CC_COMP}" > /etc/env.d/gcc/config
-
-       source /etc/profile
-
-       # These might not be installed, and we want to update the mtime
-       # for ccache and distcc anyhow ...
-       ${RM} -f /lib/cpp
-       ${CP} -f /usr/lib/gcc-config/wrapper /lib/cpp
-       for x in gcc cpp cc c++ g++ "${CHOST}-gcc" "${CHOST}-c++" "${CHOST}-g++"
-       do
-               ${RM} -f "/usr/bin/${x}"
-               ${CP} -f /usr/lib/gcc-config/wrapper "/usr/bin/${x}"
-
-               if [ "${OLD_CC_COMP}" != "${CC_COMP}" ]
-               then
-                       ${TOUCH} -m "/usr/bin/${x}"
-               fi
-       done
-
-
-       ${ENV_UPDATE} &> /dev/null
-
-       eend 0
-
-       if [ "${OLD_CC_COMP}" != "${CC_COMP}" ]
-       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 "  # source /etc/profile"
-               echo
-       fi
-
-       return 0
-}
-
-get_current_profile() {
-       if [ ! -f /etc/env.d/gcc/config ]
-       then
-               eerror "$0:  No gcc profile is active!"
-               return 1
-       fi
-
-       source /etc/env.d/gcc/config
-
-       if [ -z "${CURRENT}" ]
-       then
-               eerror "$0:  No gcc profile is active!"
-               return 1
-       fi
-
-       echo "${CURRENT}"
-
-       return 0
-}
-
-list_profiles() {
-       if [ ! -f /etc/env.d/gcc/config ]
-       then
-               eerror "$0:  No gcc profile is active!"
-               return 1
-       fi
-
-       for x in /etc/env.d/gcc/*
-       do
-               if [ -f "${x}" -a "${x}" != "/etc/env.d/gcc/config" ]
-               then
-                       echo "${x##*/}"
-               fi
-       done
-}
-
-print_environ() {
-       local OLDPATH="${PATH}"
-
-       source "/etc/env.d/gcc/${CC_COMP}"
-
-       echo "export PATH=\"${PATH}:${OLDPATH}\""
-
-#      if [ -z "${LD_LIBRARY_PATH}" ]
-#      then
-#              echo "export LD_LIBRARY_PATH=\"${LDPATH}\""
-#      else
-#              echo "export LD_LIBRARY_PATH=\"${LDPATH}:${LD_LIBRARY_PATH}\""
-#      fi
-
-       echo "export CC=\"${CC}\""
-       echo "export CXX=\"${CXX}\""
-}
-
-get_bin_path() {
-       source "/etc/env.d/gcc/${CC_COMP}"
-
-       echo "${PATH}"
-
-       return 0
-}
-
-get_lib_path() {
-       source "/etc/env.d/gcc/${CC_COMP}"
-
-       echo "${LDPATH}"
-
-       return 0
-}
-
-get_stdcxx_incdir() {
-       source "/etc/env.d/gcc/${CC_COMP}"
-
-       eerror "${LDPATH}/include/${STDCXX_INCDIR}"
-
-       return 0
-}
-
-# ===============================================================
-#  cross-compiler install portions
-
-install_toolchain() {
-       local ADIR PADIR x
-       local ACCHOST="${CC_COMP%-*}"
-       local AGCCVERS="${CC_COMP##*-}"
-       local AROOT="/usr/${ACCHOST}/"
-       local EMERGE="/usr/bin/emerge"
-       local PORTDIR="$(portage_setting PORTDIR)"
-
-       [ -z "${ACCHOST}" -o -z "${AGCCVERS}" ] && \
-               die "Invalid profile specification"
-
-       [ -f "/etc/env.d/gcc/${CC_COMP}" ] && \
-               die "Toolchain is already installed, use --force"
-
-       [ "${ACCHOST}" = "${REAL_CHOST}" ] && \
-               echo "gcc-config should not be used to build a native toolchain"
-
-       ebegin "Installing cross-compiling toolchain for ${ACCHOST}-${AGCCVERS}"
-
-       [ -n "${ROOT}" ] && AROOT="${ROOT}${AROOT}"
-
-       einfo "Creating ${AROOT}..."
-       mkdir -p "${AROOT}" || die "Unable to create ${AROOT}"
-       
-       # this might work....
-#      case ${ACCHOST} in
-#              i[3456]86-*)    ADIR="arch-x86" ;;
-#              alpha-*)        ADIR="arch-alpha" ;;
-#              arm-*)          ADIR="arch-arm" ;;
-#              hppa-*)         ADIR="arch-hppa" ;;
-#              mips-*)         ADIR="arch-mips" ;;
-#              powerpc-*)      ADIR="arch-powerpc" ;;
-#              sparc-*)        ADIR="arch-sparc" ;;
-#              *) echo "bad CHOST spec"; exit 0 ;;
-#      esac
-
-       # but this gives better substring matching
-       if [ $(expr "${ACCHOST}" : 'i[3456]86') -eq 4 ]; then
-               # x86
-               ADIR="arch-x86"
-       elif [ $(expr "${ACCHOST}" : alpha) -eq 5 ]; then
-               # Alpha
-               ADIR="arch-alpha"
-       elif [ $(expr "${ACCHOST}" : arm) -eq 3 ]; then
-               # ARM
-               ADIR="arch-arm"
-       elif [ $(expr "${ACCHOST}" : hppa) -eq 4 ]; then
-               # HP PA-Risc
-               ADIR="arch-hppa"
-       elif [ $(expr "${ACCHOST}" : mips) -eq 4 ]; then
-               # MIPS
-               ADIR="arch-mips"
-       elif [ $(expr "${ACCHOST}" : powerpc) -eq 7 ]; then
-               # PowerPC
-               ADIR="arch-ppc"
-       elif [ $(expr "${ACCHOST}" : sparc) -eq 5 ]; then
-               # sparc
-               ADIR="arch-sparc"
-       else
-               echo "unknown CHOST=${ACCHOST} - time to hack on gcc-config"
-               exit 1
-       fi
-
-       # create the portage arch directory, if it doesn't exist
-       PADIR="${PORTDIR}/${ADIR}"
-       if [ ! -d "${PADIR}" ]; then
-               einfo "Creating ${PADIR} directory..."
-               mkdir "${PADIR}" || die "Can't create ${PADIR}"
-               einfo "Creating ${PADIR} symlinks..."
-               ( cd "${PADIR}" && 
-                 for x in sys-devel/binutils sys-devel/gcc sys-libs/glibc \
-                       sys-kernel/linux-headers; do
-                       ln -s ../$x
-                 done ) || die "Unable to create symlinks in ${PADIR}"
-       fi
-
-       einfo "Starting on cross-binutils for ${ACCHOST}..."
-       ACCEPT_KEYWORDS="~x86" \
-       CCHOST=${ACCHOST} \
-               ${EMERGE} ${ADIR}/binutils -p || \
-               die "Unable to merge cross binutils"
-
-       einfo "Cross-compiling Linux headers for ${ACCHOST} in ${AROOT}..."
-       ACCEPT_KEYWORDS="~x86" \
-       ROOT=${AROOT} \
-       CHOST=${ACCHOST} \
-       CCHOST=${ACCHOST} \
-               ${EMERGE} ${ADIR}/linux-headers -p || \
-               die "Unable to merge cross headers"
-
-       einfo "Starting on initial cross-gcc for ${ACCHOST}..."
-       ACCEPT_KEYWORDS="~x86" \
-       CCHOST=${ACCHOST} \
-       USE=build \
-               ${EMERGE} ">=${ADIR}/gcc-${AGCCVERS}*" -p || \
-               die "Unable to merge initial cross gcc"
-
-       einfo "Cross-compiling glibc for ${ACCHOST} in ${AROOT}..."
-       ACCEPT_KEYWORDS="~x86" \
-       ROOT=${AROOT} \
-       CHOST=${ACCHOST} \
-       CCHOST=${ACCHOST} \
-       USE="build" \
-               ${EMERGE} ${ADIR}/glibc --nodeps -p || \
-               die "Unable to merge cross glibc"
-
-       einfo "Starting on full cross-gcc for ${ACCHOST}..."
-       ACCEPT_KEYWORDS="~x86" \
-       CCHOST=${ACCHOST} \
-               ${EMERGE} ">=${ADIR}/gcc-${AGCCVERS}*" -p || \
-               die "Unable to merge full cross gcc"
-
-       eend 0
-
-}
-
-# ===============================================================
-#  Main program begins here
-
-NEED_ACTION="yes"
-DOIT="switch_profile"
-CHECK_CHOST="no"
-
-for x in $*
-do
-       case "${x}" in
-               # Only use specified compiler if one is not already selected.
-               --use-old)
-                       if get_current_profile &> /dev/null
-                       then
-                               CC_COMP="$(get_current_profile)"
-                       fi
-                       ;;
-               --use-portage-chost)
-                       CHECK_CHOST="yes"
-                       ;;
-               --get-current-profile)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="get_current_profile"
-                       fi
-                       ;;
-               --list-profiles)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="list_profiles"
-                       fi
-                       ;;
-               --print-environ)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="print_environ"
-                       fi
-                       ;;
-               --get-bin-path)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="get_bin_path"
-                       fi
-                       ;;
-               --get-lib-path)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="get_lib_path"
-                       fi
-                       ;;
-               --get-stdcxx-incdir)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="get_stdcxx_incdir"
-                       fi
-                       ;;
-               --install-toolchain)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="install_toolchain"
-                       fi
-                       ;;
-               --*)
-                       eerror "$0: Invalid switch!  Run $0 without parameters for help."
-                       exit 1
-                       ;;
-               *)
-                       if [ -z "${CC_COMP}" ]
-                       then
-                               CC_COMP="${x}"
-                       fi
-                       ;;
-       esac
-done
-
-if [ \( "${DOIT}" = "install_toolchain" -o \
-        "${DOIT}" = "switch_profile" \) -a \
-     -z "${CC_COMP}" ]
-then
-       usage
-fi
-
-if [ -z "${CC_COMP}" ]
-then
-       if get_current_profile &> /dev/null
-       then
-               CC_COMP="$(get_current_profile)"
-       else
-               eerror "$0: No default profile setup!"
-               exit 1
-       fi
-fi
-
-if [ "${DOIT}" != "install_toolchain" -a \
-     \( ! -d "/usr/lib/gcc-lib/${CC_COMP%-*}/${CC_COMP##*-}" -o \
-        ! -f "/etc/env.d/gcc/${CC_COMP}" \) ]
-then
-       eerror "$0: Profile does not exist or invalid setting for /etc/env.d/gcc/${CC_COMP}"
-       #exit 1
-fi
-
-# Chosen CHOST are not the same as the real CHOST according to make.conf,
-# and --use-portage-chost option was given, so do nothing ...
-if [ "${CHECK_CHOST}" = "yes" -a "${CC_COMP%-*}" != "${REAL_CHOST}" ]
-then
-       exit 0
-fi
-
-eval ${DOIT}
-
-
-# vim:ts=4
diff --git a/sys-devel/gcc-config/files/gcc-config-1.4.1 b/sys-devel/gcc-config/files/gcc-config-1.4.1
deleted file mode 100644 (file)
index b695d0c..0000000
+++ /dev/null
@@ -1,600 +0,0 @@
-#!/bin/bash
-# Copyright 1999-2004 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.4.1,v 1.5 2004/10/02 12:21:18 lv Exp $
-# Author:  Martin Schlemmer <azarah@gentoo.org>
-# Cross-compiling toolchain contributions by: 
-#   Zach Welch <zwelch@gentoo.org> and James Boddington <aiken@gentoo.org>
-
-# handle not ROOT installs
-[ -z "${ROOT}" ] && ROOT="/"
-
-source /etc/init.d/functions.sh || {
-       echo "$0: Could not source /etc/init.d/functions.sh!"
-       exit 1
-}
-
-die() {
-       echo "$*"
-       exit 1
-}
-
-usage() {
-cat << "USAGE_END"
-Usage: gcc-config [Option] [CC Profile]
-Change the current cc/gcc profile, or give info about profiles.
-
-Options:
-
-  --use-old              Use the old profile if one was selected.
-       
-  --use-portage-chost    Only set to given profile if its CHOST is the same
-                         as that set for portage in /etc/make.conf (or one of
-                         other portage config files...).
-       
-  --get-current-profile  Print current used gcc profile.
-
-  --list-profiles        Print a list of available profiles.
-
-  --print-environ        Print environment that can be used to setup things
-                         for current gcc profile, or specified one ...
-       
-  --get-bin-path         Print path where binaries of given/current profile
-                         are located.
-       
-  --get-lib-path         Print path where libraries of given/current profile
-                         are located.
-
-  --get-stdcxx-incdir    Print path to g++ include files of given/current
-                         profile.
-  
-  --install-toolchain    Install a new cross-compiling toolchain (that does
-                         not appear in the list of available profiles)
-                         and create the specified profile.
-  --remove-toolchain     Remove a cross-compiling tollchain.
-
-The profile name is in the form of:
-
-  <CHOST>-<gcc version>
-
-For example:
-
-  i686-pc-linux-gnu-3.2.1
-
-
-USAGE_END
-
-       exit 1
-}
-
-if [ "$#" -lt 1 ]
-then
-       usage
-fi
-
-HAVE_WHICH="no"
-if [ -n "$(which which 2> /dev/null)" ]
-then
-       HAVE_WHICH="yes"
-fi
-
-find_path() {
-       [ -z "$1" ] && return 0
-
-       if [ "${HAVE_WHICH}" = "yes" ]
-       then
-               local fullpath="$(which $1 2> /dev/null)"
-               
-               if [ -x "${fullpath}" ]
-               then
-                       echo "${fullpath}"
-                       return 0
-               fi
-       fi
-
-       for x in /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
-       do
-               if [ -x "${x}/$1" -a -r "${x}/$1" ]
-               then
-                       echo "${x}/$1"
-                       return 0
-               fi
-       done
-
-       return 0
-}
-
-cmd_setup() {
-
-       # Sourcing /etc/env.d/gcc/${CC_COMP} is going to mess up
-       # PATH among things...
-       CP="$(find_path cp)"
-       RM="$(find_path rm)"
-       MV="$(find_path mv)"
-       LN="$(find_path ln)"
-       CAT="$(find_path cat)"
-       AWK="$(find_path gawk)"
-       GREP="$(find_path grep)"
-       FIND="$(find_path find)"
-       CHMOD="$(find_path chmod)"
-       TOUCH="$(find_path touch)"
-       ENV_UPDATE="$(find_path env-update)"
-}
-
-CC_COMP=""
-PORTDIR="$(portageq portdir)"
-PORTDIR_OVERLAY="$(portageq portdir_overlay)"
-
-get_real_chost() {
-       [ -n "$REAL_CHOST" ] && return 0
-
-       REAL_CHOST="$(portageq envvar CHOST)"
-
-       if [ -z "${REAL_CHOST}" ]
-       then
-               eerror "$0:  Could not get portage CHOST!"
-               return 1
-       fi
-}
-
-switch_profile() {
-       local MY_LDPATH=""
-       local GCC_PROFILES=""
-       local OLD_CC_COMP=""
-
-       if [ -r ${ROOT}etc/env.d/gcc/config ]
-       then
-               source ${ROOT}etc/env.d/gcc/config
-
-               if [ -n "${CURRENT}" ]
-               then
-                       OLD_CC_COMP="${CURRENT}"
-               fi
-       fi
-
-       if [ "$(id -u)" -ne 0 ]
-       then
-               eerror "$0: Must be root."
-               exit 1
-       fi
-
-       ebegin "Switching to ${CC_COMP} compiler"
-
-       # Sourcing ${ROOT}etc/env.d/gcc/${CC_COMP} is going to mess up
-       # PATH among things...
-       cmd_setup
-
-       # 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
-       GCC_PROFILES="$(${FIND} ${ROOT}etc/env.d/gcc/ -name "${REAL_CHOST}-*")"
-       GCC_PROFILES="${GCC_PROFILES/\/etc\/env.d\/gcc\/${CC_COMP}}"
-       GCC_PROFILES="/etc/env.d/gcc/${CC_COMP} ${GCC_PROFILES}"
-
-       # Extract all LDPATH's for our CHOST
-       for x in ${GCC_PROFILES}
-       do
-               if [ -f "${x}" ]
-               then
-                       source "${x}"
-
-                       if [ -z "${MY_LDPATH}" ]
-                       then
-                               if [ -d "${LDPATH}" ]
-                               then
-                                       MY_LDPATH="${LDPATH}"
-                               fi
-                       else
-                               if [ -d "${LDPATH}" ]
-                               then
-                                       MY_LDPATH="${MY_LDPATH}:${LDPATH}"
-                               fi
-                       fi
-               fi
-       done
-
-       # Setup things properly again for this profile
-       source "${ROOT}etc/env.d/gcc/${CC_COMP}"
-
-       # Setup ${ROOT}etc/env.d/05gcc
-       ${AWK} '!/^STDCXX_INCDIR=|^LDPATH=/ {print $0}' \
-               "/etc/env.d/gcc/${CC_COMP}" > ${ROOT}etc/env.d/05gcc
-
-       # Add our custom LDPATH
-       echo "LDPATH=\"${MY_LDPATH}\"" >> ${ROOT}etc/env.d/05gcc
-
-       # Make sure we do not recreate /lib/cpp and /usr/bin/cc ...
-#      echo "DISABLE_GEN_GCC_WRAPPERS=\"yes\"" >> ${ROOT}etc/env.d/05gcc
-       
-       echo "CURRENT=${CC_COMP}" > ${ROOT}etc/env.d/gcc/config
-
-       source /etc/profile
-
-       # These might not be installed, and we want to update the mtime
-       # for ccache and distcc anyhow ...
-       ${RM} -f ${ROOT}lib/cpp
-       ${CP} -f ${ROOT}usr/lib/gcc-config/wrapper ${ROOT}lib/cpp
-       for x in gcc cpp cc c++ g++ "${CHOST}-gcc" "${CHOST}-c++" "${CHOST}-g++"
-       do
-               ${RM} -f "${ROOT}usr/bin/${x}"
-               ${CP} -f ${ROOT}usr/lib/gcc-config/wrapper "${ROOT}usr/bin/${x}"
-
-               if [ "${OLD_CC_COMP}" != "${CC_COMP}" ]
-               then
-                       ${TOUCH} -m "${ROOT}usr/bin/${x}"
-               fi
-       done
-
-
-       ${ENV_UPDATE} &> /dev/null
-
-       eend 0
-
-       if [ "${OLD_CC_COMP}" != "${CC_COMP}" ]
-       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 "  # source /etc/profile"
-               echo
-       fi
-
-       return 0
-}
-
-get_current_profile() {
-       if [ ! -f ${ROOT}etc/env.d/gcc/config ]
-       then
-               eerror "$0:  No gcc profile is active!"
-               return 1
-       fi
-
-       source ${ROOT}etc/env.d/gcc/config
-
-       if [ -z "${CURRENT}" ]
-       then
-               eerror "$0:  No gcc profile is active!"
-               return 1
-       fi
-
-       echo "${CURRENT}"
-
-       return 0
-}
-
-list_profiles() {
-       if [ ! -f ${ROOT}etc/env.d/gcc/config ]
-       then
-               eerror "$0:  No gcc profile is active!"
-               return 1
-       fi
-
-       for x in ${ROOT}etc/env.d/gcc/*
-       do
-               if [ -f "${x}" -a "${x}" != "${ROOT}etc/env.d/gcc/config" ]
-               then
-                       echo "${x##*/}"
-               fi
-       done
-}
-
-print_environ() {
-       local OLDPATH="${PATH}"
-
-       source "${ROOT}etc/env.d/gcc/${CC_COMP}"
-
-       echo "export PATH=\"${PATH}:${OLDPATH}\""
-
-#      if [ -z "${LD_LIBRARY_PATH}" ]
-#      then
-#              echo "export LD_LIBRARY_PATH=\"${LDPATH}\""
-#      else
-#              echo "export LD_LIBRARY_PATH=\"${LDPATH}:${LD_LIBRARY_PATH}\""
-#      fi
-
-       echo "export CC=\"${CC}\""
-       echo "export CXX=\"${CXX}\""
-}
-
-get_bin_path() {
-       source "${ROOT}etc/env.d/gcc/${CC_COMP}"
-
-       echo "${PATH}"
-
-       return 0
-}
-
-get_lib_path() {
-       source "${ROOT}etc/env.d/gcc/${CC_COMP}"
-
-       echo "${LDPATH}"
-
-       return 0
-}
-
-get_stdcxx_incdir() {
-       source "${ROOT}etc/env.d/gcc/${CC_COMP}"
-
-       eerror "${LDPATH}/include/${STDCXX_INCDIR}"
-
-       return 0
-}
-
-# ===============================================================
-#  cross-compiler install portions
-
-get_arch()
-
-{
-       echo $1 | \
-       awk -F '-' '{print $1}' \
-       sed -e 's/arm.*/arm/'
-       return  
-
-       # this might work....
-#      case ${ACCHOST} in
-#              i[3456]86-*)    ADIR="arch-x86" ;;
-#              alpha-*)        ADIR="arch-alpha" ;;
-#              arm*-*)         ADIR="arch-arm" ;;
-#              hppa-*)         ADIR="arch-hppa" ;;
-#              mips-*)         ADIR="arch-mips" ;;
-#              powerpc-*)      ADIR="arch-powerpc" ;;
-#              sparc-*)        ADIR="arch-sparc" ;;
-#              *) echo "bad CHOST spec"; exit 0 ;;
-#      esac
-
-       # and this might give better substring matching
-       if [ $(expr "${ACCHOST}" : 'i[3456]86') -eq 4 ]; then
-               # x86
-               echo "x86"
-       elif [ $(expr "${ACCHOST}" : alpha) -eq 5 ]; then
-               # Alpha
-               echo "alpha"
-       elif [ $(expr "${ACCHOST}" : arm) -eq 3 ]; then
-               # ARM
-               echo "arm"
-       elif [ $(expr "${ACCHOST}" : hppa) -eq 4 ]; then
-               # HP PA-Risc
-               echo "hppa"
-       elif [ $(expr "${ACCHOST}" : mips) -eq 4 ]; then
-               # MIPS
-               echo "mips"
-       elif [ $(expr "${ACCHOST}" : powerpc) -eq 7 ]; then
-               # PowerPC
-               echo "ppc"
-       elif [ $(expr "${ACCHOST}" : sparc) -eq 5 ]; then
-               # sparc
-               echo "sparc"
-       else
-               echo "unknown CHOST=${ACCHOST} - time to hack on gcc-config"
-               exit 1
-       fi
-}
-
-EMERGE="/usr/bin/emerge"
-
-install_toolchain() {
-       local ADIR PADIR x
-       local ACCHOST="${CC_COMP%-*}"
-       local AGCCVERS="${CC_COMP##*-}"
-       local AROOT="${ROOT}usr/${ACCHOST}/"
-       local PORTDIR="$(portage_setting PORTDIR)"
-
-       get_real_chost
-
-       [ -z "${ACCHOST}" -o -z "${AGCCVERS}" ] && \
-               die "Invalid profile specification"
-
-       [ -f "${ROOT}etc/env.d/gcc/${CC_COMP}" ] && \
-               die "Toolchain is already installed, use --force"
-
-       [ "${ACCHOST}" = "${REAL_CHOST}" ] && \
-               echo "gcc-config should not be used to build a native toolchain"
-
-       ebegin "Installing cross-compiling toolchain for ${ACCHOST}-${AGCCVERS}"
-
-       [ -n "${ROOT}" ] && AROOT="${ROOT}${AROOT}"
-
-       einfo "Creating ${AROOT}..."
-       mkdir -p "${AROOT}" || die "Unable to create ${AROOT}"
-
-       AARCH="$(get-arch ${ACCHOST})"
-       ADIR="arch-${AARCH}"
-       einfo "Looking for ${AARCH}-headers..."
-       if ! emerge --pretend "sys-kernel/${AARCH}-headers"
-       then
-               einfo "Using default linux-headers..."
-               AHDRS="linux"
-       else
-               einfo "Using arch specific ${AARCH}-headers..."
-               AHDRS="${AARCH}"
-       fi
-
-       # create the portage arch directory, if it doesn't exist
-       PADIR="${PORTDIR}/${ADIR}"
-       if [ ! -d "${PADIR}" ]; then
-               einfo "Creating ${PADIR} symlinks..."
-               mkdir "${PADIR}" || die "Can't create ${PADIR}"
-               ( cd "${PADIR}" && 
-                 for x in sys-devel/binutils sys-devel/gcc sys-libs/glibc \
-                       "sys-kernel/${AHDRS}-headers"
-                 do
-                       ln -s ../$x
-                 done 
-                 ) || die "Unable to create symlinks in ${PADIR}"
-       fi
-
-       ACCEPT_KEYWORDS="${AARCH}" ARCH="${AARCH}" CCHOST="${ACCHOST}" \
-               USE="build ${AARCH}" ${EMERGE} \
-                       ${ADIR}/binutils ${ADIR}/${AHDRS}-headers \
-                       ">=${ADIR}/gcc-${AGCCVERS}*" "${ADIR}/glibc" || \
-                       die "Unable to merge cross toolchain for ${ACCHOST}"
-
-       ACCEPT_KEYWORDS="${AARCH}" CCHOST="${ACCHOST}" ARCH="${AARCH}" \
-               USE="${AARCH}" ${EMERGE} \
-                       ">=${ADIR}/gcc-${AGCCVERS}*" || \
-                       die "Unable to merge cross toolchain for ${ACCHOST}"
-
-       eend 0
-
-}
-
-#
-# Unmerge the cross compiler.
-#
-
-remove_toolchain()
-
-{
-       local AARCH="$(get_arch $1)"
-       local ADIR="arch-${AARCH}"
-       local AHDRS APKGS
-
-       if [ ! -d ${PORTDIR}/arch-${ARCH} ]; then
-               echo A compiler for $1 is not installed
-               return
-       fi
-
-       [ -d "${PORTDIR}/sys-kernel/${AARCH}-headers" ]
-               AHDRS="${AARCH}" || AHDRS="linux"
-
-       APKGS="${ADIR}/binutils ${ADIR}/${AARCH}-headers ${ADIR}/glibc ${ADIR}/gcc"
-
-       ACCEPT_KEYWORDS="${AARCH}" \
-       ARCH="${AARCH}" \
-       CCHOST=${1} \
-               ${EMERGE} unmerge ${APKGS} || \
-                       ewarn "Errors unmerging parts of the toolchain..."
-}
-
-# ===============================================================
-#  Main program begins here
-
-NEED_ACTION="yes"
-DOIT="switch_profile"
-CHECK_CHOST="no"
-
-for x in $*
-do
-       case "${x}" in
-               # Only use specified compiler if one is not already selected.
-               --use-old)
-                       if get_current_profile &> /dev/null
-                       then
-                               CC_COMP="$(get_current_profile)"
-                       fi
-                       ;;
-               --use-portage-chost)
-                       CHECK_CHOST="yes"
-                       ;;
-               --get-current-profile)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="get_current_profile"
-                       fi
-                       ;;
-               --list-profiles)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="list_profiles"
-                       fi
-                       ;;
-               --print-environ)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="print_environ"
-                       fi
-                       ;;
-               --get-bin-path)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="get_bin_path"
-                       fi
-                       ;;
-               --get-lib-path)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="get_lib_path"
-                       fi
-                       ;;
-               --get-stdcxx-incdir)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="get_stdcxx_incdir"
-                       fi
-                       ;;
-               --install-toolchain)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="install_toolchain"
-                       fi
-                       ;;
-               --remove-toolchain)
-                       if [ "${NEED_ACTION}" = "yes" ]
-                       then
-                               NEED_ACTION="no"
-                               DOIT="remove_toolchain"
-                       fi
-                       ;;
-               --*)
-                       eerror "$0: Invalid switch!  Run $0 without parameters for help."
-                       exit 1
-                       ;;
-               *)
-                       if [ -z "${CC_COMP}" ]
-                       then
-                               CC_COMP="${x}"
-                       fi
-                       ;;
-       esac
-done
-
-if [ \( "${DOIT}" = "install_toolchain" -o \
-        "${DOIT}" = "switch_profile" \) -a \
-     -z "${CC_COMP}" ]
-then
-       usage
-fi
-
-if [ -z "${CC_COMP}" ]
-then
-       if get_current_profile &> /dev/null
-       then
-               CC_COMP="$(get_current_profile)"
-       else
-               eerror "$0: No default profile setup!"
-               exit 1
-       fi
-fi
-
-if [ "${DOIT}" != "install_toolchain" -a \
-     \( ! -d "${ROOT}usr/lib/gcc-lib/${CC_COMP%-*}/${CC_COMP##*-}" -o \
-        ! -f "${ROOT}etc/env.d/gcc/${CC_COMP}" \) ]
-then
-       eerror "$0: Profile does not exist or invalid setting for /etc/env.d/gcc/${CC_COMP}"
-       #exit 1
-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%-*}" != "${REAL_CHOST}" ] && exit 0
-fi
-
-eval ${DOIT}
-
-
-# vim:ts=4
diff --git a/sys-devel/gcc-config/files/wrapper-1.4.1.c b/sys-devel/gcc-config/files/wrapper-1.4.1.c
deleted file mode 100644 (file)
index 4c4b046..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * Copyright 1999-2004 Gentoo Foundation
- * Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc-config/files/wrapper-1.4.1.c,v 1.4 2004/08/19 15:16:25 vapier Exp $
- * Author: Martin Schlemmer <azarah@gentoo.org>
- */
-
-#define _REENTRANT
-#define _GNU_SOURCE
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <unistd.h>
-#include <wait.h>
-#include <libgen.h>
-#include <string.h>
-#include <stdarg.h>
-#include <errno.h>
-
-#define GCC_CONFIG     "/usr/bin/gcc-config"
-
-#ifndef CC_PROFILE
-# define ENVD_FILE     "/etc/env.d/05gcc"
-#else
-# define ENVD_FILE     "/etc/env.d/gcc/" CC_PROFILE
-#endif
-
-struct wrapper_data {
-       char name[MAXPATHLEN + 1];
-       char fullname[MAXPATHLEN + 1];
-       char bin[MAXPATHLEN + 1];
-       char tmp[MAXPATHLEN + 1];
-       
-       char *path;
-};
-
-static const char *wrapper_strerror(int err, struct wrapper_data *data)
-{
-       strerror_r(err, data->tmp, sizeof(data->tmp));
-       return data->tmp;
-}
-
-static void wrapper_exit(char *msg, ...)
-{   
-       va_list args;
-       fprintf(stderr, "gcc-config error:");
-       va_start(args, msg);
-       vfprintf(stderr, msg, args);
-       va_end(args);
-       exit(1);
-}
-
-/* check_for_target checks in path for the file we are seeking 
- * it returns 1 if found (with data->bin setup), 0 if not and
- * negative on error
- */
-static int check_for_target(char *path, struct wrapper_data *data) 
-{
-       struct stat sbuf;
-       int result = 0;
-       char *str = data->tmp;
-       size_t len = strlen(path) + strlen(data->name) + 2;
-
-       snprintf(str, len, "%s/%s", path, data->name);
-
-       /* Stat possible file to check that
-        * 1) it exist and is a regular file, and
-        * 2) it is not the wrapper itself, and
-        * 3) it is in a /gcc-bin/ directory tree
-        */
-       result = stat(str, &sbuf);
-       if ((0 == result) && (sbuf.st_mode & S_IFREG) && 
-           (0 != strcmp(str, data->fullname)) && 
-           (0 != strstr(str, "/gcc-bin/"))) {
-               
-               strncpy(data->bin, str, MAXPATHLEN);
-               data->bin[MAXPATHLEN] = 0;
-               result = 1;
-       }
-       else
-               result = 0;
-               
-       return result;
-}
-
-static int find_target_in_path(struct wrapper_data *data)
-{
-       char *token = NULL, *str = data->tmp, *state;
-       
-       if (NULL == data->path) return 0;
-
-       /* Make a copy since strtok_r will modify path */
-       snprintf(str, MAXPATHLEN + 1, "%s", data->path);
-       
-       token = strtok_r(str, ":", &state);
-
-       /* Find the first file with suitable name in PATH.  The idea here is
-        * that we do not want to bind ourselfs to something static like the
-        * default profile, or some odd environment variable, but want to be
-        * able to build something with a non default gcc by just tweaking
-        * the PATH ... */
-       while ((NULL != token) && (strlen(token) > 0)) {
-               
-               if (check_for_target(token, data))
-                       return 1;
-               
-               token = strtok_r(NULL, ":", &state);
-       }
-       
-       return 0;
-}
-
-/* find_target_in_envd parses /etc/env.d/05gcc, and tries to
- * extract PATH, which is set to the current profile's bin
- * directory ...
- */
-static int find_target_in_envd(struct wrapper_data *data)
-{
-       FILE *envfile = NULL;
-       char *token = NULL, *str = data->tmp, *state;
-
-       if (NULL == data->path) return 0;
-
-       envfile = fopen(ENVD_FILE, "r");
-       if (NULL == envfile)
-               return 0;
-
-       while (0 != fgets(str, MAXPATHLEN, envfile)) {
-               
-               /* Keep reading ENVD_FILE until we get a line that
-                * starts with 'PATH='
-                */
-               if (((str) && (strlen(str) > strlen("PATH=")) &&
-                       0 == strncmp("PATH=", str, strlen("PATH=")))) {
-                       
-                       token = strtok_r(str, "=", &state);
-                       if ((NULL != token) && (strlen(token) > 0))
-                               /* The second token should be the value of PATH .. */
-                               token = strtok_r(NULL, "=", &state);
-                       else {
-                               fclose(envfile);
-                               return 0;
-                       }
-                       
-                       if ((NULL != token) && (strlen(token) > 0)) {
-                               
-                               str = token;
-                               /* A bash variable may be unquoted, quoted with " or
-                                * quoted with ', so extract the value without those ..
-                                */
-                               token = strsep(&str, "\n\"\'");
-
-                               while (NULL != token) {
-                                       
-                                       if (check_for_target(token, data)) {
-
-                                               fclose(envfile);
-                                               return 1;
-                                       }
-
-                                       token = strsep(&str, "\n\"\'");
-                               }
-                       }
-                       
-               }
-               str = data->tmp;
-       }
-
-       fclose(envfile);
-
-       return 0;
-}
-
-static void find_wrapper_target(struct wrapper_data *data) 
-{
-       FILE *inpipe = NULL;
-       char *str = data->tmp;
-
-#ifndef CC_PROFILE
-       if (find_target_in_path(data))
-               return;
-#endif
-
-       if (find_target_in_envd(data))
-               return;
-
-       /* Only our wrapper is in PATH, so 
-          get the CC path using gcc-config and 
-          execute the real binary in there... */
-#ifndef CC_PROFILE
-       inpipe = popen(GCC_CONFIG " --get-bin-path", "r");
-#else
-       inpipe = popen(GCC_CONFIG " --get-bin-path " CC_PROFILE, "r");
-#endif
-       if (NULL == inpipe)
-               wrapper_exit(
-                       "Could not open pipe: %s\n",
-                       wrapper_strerror(errno, data));
-
-       if (0 == fgets(str, MAXPATHLEN, inpipe))
-               wrapper_exit(
-                       "Could not get compiler binary path: %s\n",
-                       wrapper_strerror(errno, data));
-
-       strncpy(data->bin, str, sizeof(data->bin) - 1);
-       data->bin[strlen(data->bin) - 1] = '/';
-       strncat(data->bin, data->name, sizeof(data->bin) - 1);
-       data->bin[MAXPATHLEN] = 0;
-
-       pclose(inpipe);
-}
-
-/* This function modifies PATH to have gcc's bin path appended */
-static void modify_path(struct wrapper_data *data)
-{
-       char *newpath = NULL, *token = NULL, *state;
-       char dname_data[MAXPATHLEN + 1];
-       char *str = data->tmp, *str2 = dname_data, *dname = dname_data;
-       size_t len = 0;
-
-       if (NULL == data->bin)
-               return;
-
-       snprintf(str2, MAXPATHLEN + 1, "%s", data->bin);
-
-       if (NULL == (dname = dirname(str2)))
-               return;
-
-       if (NULL == data->path)
-               return;
-
-       /* Make a copy since strtok_r will modify path */
-       snprintf(str, MAXPATHLEN + 1, "%s", data->path);
-
-       token = strtok_r(str, ":", &state);
-
-       /* Check if we already appended our bin location to PATH */
-       if ((NULL != token) && (strlen(token) > 0)) {
-               if (0 == strcmp(token, dname))
-                       return;
-       }
-
-       len = strlen(dname) + strlen(data->path) + 2;
-
-       newpath = (char *)malloc(len);
-       if (NULL == newpath)
-               wrapper_exit("out of memory\n");
-       memset(newpath, 0, len);
-
-       snprintf(newpath, len, "%s:%s", dname, data->path);
-       setenv("PATH", newpath, 1);
-
-       if (newpath)
-               free(newpath);
-       newpath = NULL;
-}
-
-int main(int argc, char **argv) 
-{
-       struct wrapper_data *data;
-       size_t size;
-       char *path;
-       int result = 0;
-
-       data = alloca(sizeof(*data));
-       if (NULL == data) 
-               wrapper_exit("%s wrapper: out of memory\n", argv[0]);
-       memset(data, 0, sizeof(*data));
-
-       path = getenv("PATH");
-       if (NULL != path) {
-               data->path = strdup(getenv("PATH"));
-               if (NULL == data->path) 
-                       wrapper_exit("%s wrapper: out of memory\n", argv[0]);
-       }
-               
-       /* What should we find ? */
-       strcpy(data->name, basename(argv[0]));
-
-       /* cc calls "/full/path/to/gcc" ... */
-       if (0 == strcmp(data->name, "cc"))
-               strcpy(data->name, "gcc");
-
-       /* What is the full name of our wrapper? */
-       size = sizeof(data->fullname);
-       result = snprintf(data->fullname, size, "/usr/bin/%s", data->name);
-       if ((-1 == result) || (result > size))
-               wrapper_exit("invalid wrapper name: \"%s\"\n", data->name);
-
-       find_wrapper_target(data);
-
-       modify_path(data);
-
-       if (data->path)
-               free(data->path);
-       data->path = NULL;
-
-       /* Set argv[0] to the correct binary, else gcc do not find internal
-        * headers, etc (bug #8132). */
-       argv[0] = data->bin;
-
-       /* Ok, do it ... */
-       if (execv(data->bin, argv) < 0)
-               wrapper_exit("Could not run/locate \"%s\"\n", data->name);
-       
-       return 0;
-}
-
diff --git a/sys-devel/gcc-config/files/wrapper-1.4.c b/sys-devel/gcc-config/files/wrapper-1.4.c
deleted file mode 100644 (file)
index c3d5d04..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright 1999-2004 Gentoo Foundation
- * Distributed under the terms of the GNU General Public License v2
- * Author: Martin Schlemmer <azarah@gentoo.org>
- * $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc-config/files/wrapper-1.4.c,v 1.3 2004/09/28 01:57:58 swegener Exp $
- */
-
-#define _REENTRANT
-#define _GNU_SOURCE
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <unistd.h>
-#include <wait.h>
-#include <libgen.h>
-#include <string.h>
-#include <stdarg.h>
-#include <errno.h>
-
-struct wrapper_data {
-       char name[MAXPATHLEN + 1];
-       char fullname[MAXPATHLEN + 1];
-       char bin[MAXPATHLEN + 1];
-       char tmp[MAXPATHLEN + 1];
-       
-       char *path;
-};
-
-static const char *wrapper_strerror(int err, struct wrapper_data *data)
-{
-       strerror_r(err, data->tmp, sizeof(data->tmp));
-       return data->tmp;
-}
-
-static void wrapper_exit(char *msg, ...)
-{   
-       va_list args;
-       va_start(args, msg);
-       vfprintf(stderr, msg, args);
-       va_end(args);
-       exit(1);
-}
-
-/* find_bin checks in path for the file we are seeking 
-   it returns 1 if found (with data->bin setup), 0 if not
-    and negative on error */
-static int check_for_target(char *path, struct wrapper_data *data) 
-{
-       struct stat sbuf;
-       int result = 0;
-       char *str = data->tmp;
-       size_t len = strlen(path) + strlen(data->name) + 2;
-
-       snprintf(str, len, "%s/%s", path, data->name);
-
-       /* Stat possible file to check that
-          1) it exist and is a regular file, and
-          2) it is not the wrapper itself, and
-          3) it is in a /gcc-bin/ directory tree */
-       result = stat(str, &sbuf);
-       if ((0 == result) && (sbuf.st_mode & S_IFREG) && 
-           (0 != strcmp(str, data->fullname)) && 
-           (0 != strstr(str, "/gcc-bin/"))) {
-               strncpy(data->bin, str, MAXPATHLEN);
-               data->bin[MAXPATHLEN] = 0;
-               result = 1;
-       }
-       else
-               result = 0;
-               
-       return result;
-}
-
-static int find_target_in_path(struct wrapper_data *data)
-{
-       char *token = NULL, *str = data->tmp, *state;
-       
-       if (NULL == data->path) return 0;
-
-       /* Make a copy since strtok_r will modify path */
-       snprintf(str, MAXPATHLEN + 1, "%s", data->path);
-       
-       token = strtok_r(str, ":", &state);
-
-       /* Find the first file with suitable name in PATH.  The idea here is
-        * that we do not want to bind ourselfs to something static like the
-        * default profile, or some odd environment variable, but want to be
-        * able to build something with a non default gcc by just tweaking
-        * the PATH ... */
-       while ((NULL != token) && (strlen(token) > 0)) {
-               if (check_for_target(token, data))
-                       return 1;
-               
-               token = strtok_r(NULL, ":", &state);
-       }
-       
-       return 0;
-}
-
-static void find_wrapper_target(struct wrapper_data *data) 
-{
-       FILE *inpipe = NULL;
-       char *str = data->tmp;
-       
-       if (find_target_in_path(data))
-               return;
-       
-       /* Only our wrapper is in PATH, so 
-          get the CC path using gcc-config and 
-          execute the real binary in there... */
-       inpipe = popen("/usr/bin/gcc-config --get-bin-path", "r");
-       if (NULL == inpipe) {
-               wrapper_exit(
-                       "Could not open pipe for /usr/bin/gcc-config: %s\n",
-                       wrapper_strerror(errno, data));
-       }
-
-       if (0 == fgets(str, MAXPATHLEN, inpipe))
-               wrapper_exit("Could not get compiler binary path: %s\n",
-                       wrapper_strerror(errno, data));
-
-       strncpy(data->bin, str, sizeof(data->bin) - 1);
-       data->bin[strlen(data->bin) - 1] = '/';
-       strncat(data->bin, data->name, sizeof(data->bin) - 1);
-       data->bin[MAXPATHLEN] = 0;
-
-       pclose(inpipe);
-}
-
-/* This function modifies PATH to have gcc's bin path appended */
-static void modify_path(struct wrapper_data *data)
-{
-       char *newpath = NULL, *token = NULL, *state;
-       char dname_data[MAXPATHLEN + 1];
-       char *str = data->tmp, *str2 = dname_data, *dname = dname_data;
-       size_t len = 0;
-
-       if (NULL == data->bin)
-               return;
-
-       snprintf(str2, MAXPATHLEN + 1, "%s", data->bin);
-
-       if (NULL == (dname = dirname(str2)))
-               return;
-
-       if (NULL == data->path)
-               return;
-
-       /* Make a copy since strtok_r will modify path */
-       snprintf(str, MAXPATHLEN + 1, "%s", data->path);
-
-       token = strtok_r(str, ":", &state);
-
-       /* Check if we already appended our bin location to PATH */
-       if ((NULL != token) && (strlen(token) > 0)) {
-               if (0 == strcmp(token, dname))
-                       return;
-       }
-
-       len = strlen(dname) + strlen(data->path) + 2;
-
-       newpath = (char *)malloc(len);
-       if (NULL == newpath)
-               wrapper_exit("wrapper: out of memory\n");
-       memset(newpath, 0, len);
-
-       snprintf(newpath, len, "%s:%s", dname, data->path);
-       setenv("PATH", newpath, 1);
-
-       if (newpath)
-               free(newpath);
-       newpath = NULL;
-}
-
-int main(int argc, char **argv) 
-{
-       struct wrapper_data *data;
-       size_t size;
-       char *path;
-       int result = 0;
-
-       data = alloca(sizeof(*data));
-       if (NULL == data) 
-               wrapper_exit("%s wrapper: out of memory\n", argv[0]);
-       memset(data, 0, sizeof(*data));
-
-       path = getenv("PATH");
-       if (NULL != path) {
-               data->path = strdup(getenv("PATH"));
-               if (NULL == data->path) 
-                       wrapper_exit("%s wrapper: out of memory\n", argv[0]);
-       }
-               
-       /* What should we find ? */
-       strcpy(data->name, basename(argv[0]));
-
-       /* cc calls "/full/path/to/gcc" ... */
-       if (0 == strcmp(data->name, "cc"))
-               strcpy(data->name, "gcc");
-
-       /* What is the full name of our wrapper? */
-       size = sizeof(data->fullname);
-       result = snprintf(data->fullname, size, "/usr/bin/%s", data->name);
-       if ((-1 == result) || (result > size))
-               wrapper_exit("invalid wrapper name: \"%s\"\n", data->name);
-
-       find_wrapper_target(data);
-
-       modify_path(data);
-
-       if (data->path)
-               free(data->path);
-       data->path = NULL;
-
-       /* Set argv[0] to the correct binary, else gcc do not find internal
-        * headers, etc (bug #8132). */
-       argv[0] = data->bin;
-
-       /* Ok, do it ... */
-       if (execv(data->bin, argv) < 0)
-               wrapper_exit("Could not run/locate \"%s\"\n", data->name);
-       
-       return 0;
-}
-
diff --git a/sys-devel/gcc-config/files/wrapper.c b/sys-devel/gcc-config/files/wrapper.c
deleted file mode 100644 (file)
index 3c66c02..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright 1999-2004 Gentoo Foundation
- * Distributed under the terms of the GNU General Public License v2
- * Author: Martin Schlemmer <azarah@gentoo.org>
- * $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc-config/files/wrapper.c,v 1.7 2004/09/28 01:57:58 swegener Exp $
- */
-
-#define _REENTRANT
-#define _GNU_SOURCE
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/param.h>
-#include <unistd.h>
-#include <wait.h>
-#include <libgen.h>
-#include <string.h>
-
-
-int main(int argc, char **argv) {
-       struct stat sbuf;
-       FILE *inpipe = NULL;
-       char wrapperbin[MAXPATHLEN + 1], wrapfullname[MAXPATHLEN + 1];
-       char *wrappername = NULL;
-       char *buffer = NULL, *token = NULL, *tmpstr = NULL, *state = NULL;
-       int ret = 0;
-
-       wrapperbin[0] = '\0';
-
-       /* What should we find ? */
-       wrappername = strdupa(basename(argv[0]));
-
-       /* cc calls gcc ... */
-       if (0 == strcmp(wrappername, "cc"))
-               sprintf(wrappername, "%s", "gcc");
-
-       /* What is the full name of our wrapper? */
-       snprintf(wrapfullname, strlen("/usr/bin/") + strlen(wrappername) + 1,
-               "%s%s", "/usr/bin/", wrappername);
-
-       /* If PATH is not set, just set token to NULL, else we get
-        * a segfault.  Thanks to Eric Andresen <ndiin1@cox.net> for
-        * reporting this. */
-       if (NULL != getenv("PATH")) {
-               
-               buffer = strdup((char *)getenv("PATH"));
-               token = strtok_r(buffer, ":", &state);
-       } else
-               token = NULL;
-       
-       /* Find the first file with suitable name in PATH.  The idea here is
-        * that we do not want to bind ourselfs to something static like the
-        * default profile, or some odd environment variable, but want to be
-        * able to build something with a non default gcc by just tweaking
-        * the PATH ... */
-       while ((NULL != token) && (strlen(token) > 0)) {
-
-               tmpstr = (char *)malloc(strlen(token) + strlen(wrappername) + 2);
-               snprintf(tmpstr, strlen(token) + strlen(wrappername) + 2,
-                       "%s/%s", token, wrappername);
-
-               /* Does it exist and is a file? */
-               ret = stat(tmpstr, &sbuf);
-               /* It exists, and are not our wrapper, and its in a dir containing
-                * gcc-bin ... */
-               if ((0 == ret) && (sbuf.st_mode & S_IFREG) && 
-                   (0 != strcmp(tmpstr, wrapfullname)) && (0 != strstr(tmpstr, "/gcc-bin/"))) {
-
-                       strncpy(wrapperbin, tmpstr, MAXPATHLEN);
-                               
-                       if (tmpstr) {
-                               free(tmpstr);
-                               tmpstr = NULL;
-                       }
-
-                       break;
-               }
-               
-               token = strtok_r(NULL, ":", &state);
-       }
-
-       if (buffer) {
-               free(buffer);
-               buffer = NULL;
-       }
-
-       /* Did we get a valid binary to execute? */
-       if (wrapperbin[0] == '\0') {
-
-               /* It is our wrapper, so get the CC path, and execute the real binary in
-                * there ... */
-               inpipe = popen("/usr/bin/gcc-config --get-bin-path", "r");
-               if (NULL == inpipe) {
-                       
-                       fprintf(stderr, "Could not run /usr/bin/gcc-config!\n");
-                       exit(1);
-               }
-
-               buffer = (char *)malloc(MAXPATHLEN + 1);
-
-               if (fgets(buffer, MAXPATHLEN, inpipe) == 0) {
-
-                       fprintf(stderr, "Could not get compiler binary path!\n");
-
-                       if (buffer) {
-                               free(buffer);
-                               buffer = NULL;
-                       }
-
-                       pclose(inpipe);
-
-                       exit(1);
-               }
-
-               sscanf(buffer, "%s", wrapperbin);
-               strncat(wrapperbin, "/", MAXPATHLEN - strlen(wrapperbin));
-               strncat(wrapperbin, wrappername, MAXPATHLEN - strlen(wrapperbin));
-
-               pclose(inpipe);
-
-               if (buffer) {
-                       free(buffer);
-                       buffer = NULL;
-               }
-       }
-
-       /* Set argv[0] to the correct binary, else gcc do not find internal
-        * headers, etc (bug #8132). */
-       argv[0] = wrapperbin;
-
-       /* Ok, do it ... */
-       if (execv(wrapperbin, argv) < 0) {
-               fprintf(stderr, "Could not run/locate %s!\n", wrappername);
-               exit(1);
-       }
-
-       return 0;
-}
-