public inbox for gentoo-alt@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-alt] problems with bootstrapping in Gentoo-prefix
@ 2013-01-19 22:12 Linpeng Tang
  2013-01-19 22:28 ` [gentoo-alt] " Linpeng Tang
  2013-01-21  8:31 ` [gentoo-alt] " Christopher Schwan
  0 siblings, 2 replies; 18+ messages in thread
From: Linpeng Tang @ 2013-01-19 22:12 UTC (permalink / raw
  To: gentoo-alt


[-- Attachment #1.1: Type: text/plain, Size: 1412 bytes --]

Hi,

I am trying to install gentoo-prefix, and met some problems with the
interactive installer at stage 3:

make[1]: *** [Makefile] Error 1
make[1]: Leaving directory
`/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1/cpan/Archive-Extract'
Unsuccessful make(cpan/Archive-Extract): code=512 at make_ext.pl line 466.
make: *** [cpan/Archive-Extract/pm_to_blib] Error 25
 * ERROR: dev-lang/perl-5.16.1 failed (compile phase):
 *   emake failed
 *
 * If you need support, post the output of `emerge --info
'=dev-lang/perl-5.16.1'`,
 * the complete build log and the output of `emerge -pqv
'=dev-lang/perl-5.16.1'`.
 * The complete build log is located at
'/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/temp/build.log'.
 * The ebuild environment file is located at
'/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/temp/environmen't.
 * Working directory:
'/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1'
 * S:
'/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1'

Attached is the build log and build environment file.

I don't know where the emerge executable is located, so I can't post the
output of `emerge --info '=dev-lang/perl-5.16.1'` yet.

Anyone has any idea how to fix this?

Thanks in advance.
-- 
-----------------------------------
Princeton University
Computer Science Department
Linpeng Tang

[-- Attachment #1.2: Type: text/html, Size: 1973 bytes --]

[-- Attachment #2: gentoo.build_env --]
[-- Type: application/octet-stream, Size: 108723 bytes --]

declare -x ABI="amd64"
declare -x ALSA_CARDS=""
declare -x ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol"
declare -x ANT_HOME="/opt/rocks"
declare -x APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias"
declare -x ARCH="amd64"
declare -- ARCH_LIB="/usr/lib/perl5/5.16.1/x86_64-linux"
declare -x BLOCKSIZE="K"
declare -x BOOTSTRAP_USE="cxx unicode multilib multilib"
declare -x BUILD_BZIP2="0"
declare -x BUILD_ZLIB="False"
declare -x BZIP2_INCLUDE="/memex/linpengt/gentoo/usr/include"
declare -x BZIP2_LIB="/memex/linpengt/gentoo/usr/lib"
declare -x CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump"
declare -x CAMERAS="ptp2"
declare -x CBUILD="x86_64-pc-linux-gnu"
declare -x CCASFLAGS=""
declare -x CFLAGS="-O2 -pipe"
declare -x CFLAGS_amd64="-m64"
declare -x CFLAGS_default
declare -x CFLAGS_x32="-mx32"
declare -x CFLAGS_x86="-m32"
declare -x CHOST="x86_64-pc-linux-gnu"
declare -x CHOST_amd64="x86_64-pc-linux-gnu"
declare -x CHOST_default="x86_64-pc-linux-gnu"
declare -x CHOST_x32="x86_64-pc-linux-gnu"
declare -x CHOST_x86="i686-pc-linux-gnu"
declare -x COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog"
declare -x CONFIGURE_EPREFIX="/memex/linpengt/gentoo"
declare -x CPPFLAGS="-I/memex/linpengt/gentoo/usr/include -I/memex/linpengt/gentoo/tmp/usr/include"
declare -x CROSSCOMPILE_OPTS=""
declare -x CTARGET_default="x86_64-pc-linux-gnu"
declare -x CXXFLAGS="-O2 -pipe"
declare -x DEFAULT_ABI="default"
declare -x DEFINED_PHASES=" configure install postinst postrm prepare setup test"
declare DEPEND="
	berkdb? ( sys-libs/db )
	gdbm? ( >=sys-libs/gdbm-1.8.3 )
	app-arch/bzip2
	sys-libs/zlib

	!prefix? ( elibc_FreeBSD? ( sys-freebsd/freebsd-mk-defs ) )
 "
declare DESCRIPTION="Larry Wall's Practical Extraction and Report Language"
declare -x DESTTREE="/usr"
declare -x DIROPTIONS="-m0755"
declare -x EAPI="4"
declare -x ELIBC="glibc"
declare -x EMACS="t"
declare -x ENV="/memex/linpengt/.shrc"
declare -- EPATCH_COMMON_OPTS="-g0 -E --no-backup-if-mismatch"
declare -- EPATCH_EXCLUDE=""
declare -- EPATCH_FORCE="no"
declare -- EPATCH_MULTI_MSG="Applying various patches (bugfixes/updates) ..."
declare -- EPATCH_OPTS=" -p1"
declare -- EPATCH_SINGLE_MSG="  gentoo/interix.diff ..."
declare -- EPATCH_SOURCE="/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/patch"
declare -- EPATCH_SUFFIX="patch.bz2"
declare -x EXEOPTIONS="-m0755"
declare -x FCFLAGS="-O2 -pipe"
declare -x FETCHCOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port=22 ; exec rsync --rsh=\\\"ssh -p\\\${port}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
declare -x FFLAGS="-O2 -pipe"
declare -x GCC_SPECS=""
declare -x GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx"
declare -x GRUB_PLATFORMS=""
declare -x G_BROKEN_FILENAMES="1"
declare -x HADOOP_CONF_DIR="/home/fuse/hadoop-conf"
declare -x HADOOP_HOME="/opt/hadoop"
declare -x HISTSIZE="1000"
declare -x HOD_CONF_DIR="/home/fuse/hod-conf"
declare -x HOD_HOME="/opt/hadoop/contrib/hod"
declare HOMEPAGE="http://www.perl.org/"
declare -x INHERITED=" multilib prefix toolchain-funcs user eutils alternatives flag-o-matic multiprocessing"
declare -x INPUTRC="/etc/inputrc"
declare -x INPUT_DEVICES="keyboard mouse evdev"
declare -x INSDESTTREE=""
declare -x INSOPTIONS="-m0644"
declare IUSE="berkdb debug doc gdbm ithreads "
declare -x JAVA_HOME="/usr/java/latest"
declare -x JBOSS_HOME="/opt/jboss"
declare -x JBOSS_USER="jboss"
declare -x KERNEL="linux"
declare -x KERNEL_ABI="default"
declare -x KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~ppc-aix ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
declare -x LANG="en_US.iso885915"
declare -x LCD_DEVICES=""
declare -x LC_ALL="C"
declare -x LDFLAGS="-L/memex/linpengt/gentoo/usr/lib -Wl,-rpath=/memex/linpengt/gentoo/usr/lib -L/memex/linpengt/gentoo/lib -Wl,-rpath=/memex/linpengt/gentoo/lib -L/memex/linpengt/gentoo/tmp/usr/lib -Wl,-rpath=/memex/linpengt/gentoo/tmp/usr/lib"
declare -x LDFLAGS_amd64="-m elf_x86_64"
declare -x LDFLAGS_default
declare -x LDFLAGS_x32="-m elf32_x86_64"
declare -x LDFLAGS_x86="-m elf_i386"
declare -x LIBDIR_amd64="lib"
declare -x LIBDIR_amd64_fbsd="lib64"
declare -x LIBDIR_default="lib"
declare -x LIBDIR_n32="lib32"
declare -x LIBDIR_n64="lib64"
declare -x LIBDIR_o32="lib"
declare -x LIBDIR_ppc="lib32"
declare -x LIBDIR_ppc64="lib64"
declare -x LIBDIR_s390="lib32"
declare -x LIBDIR_s390x="lib64"
declare -x LIBDIR_sparc32="lib32"
declare -x LIBDIR_sparc64="lib64"
declare -x LIBDIR_x32="libx32"
declare -x LIBDIR_x86="lib32"
declare -x LIBDIR_x86_fbsd="lib32"
declare -x LIBOPTIONS="-m0644"
declare -- LIBPERL="libperl.so.5.16.1"
declare -x LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer"
declare -x LICENSE="|| ( Artistic GPL-1 GPL-2 GPL-3 )"
declare -x MAKE="make"
declare -- MODULE_AUTHOR="RJBS"
declare -x MULTILIB_ABIS="amd64"
declare -x MULTILIB_STRICT_DENY="64-bit.*shared object"
declare -x MULTILIB_STRICT_DIRS="/lib32 /lib /usr/lib32 /usr/lib /usr/kde/*/lib32 /usr/kde/*/lib /usr/qt/*/lib32 /usr/qt/*/lib /usr/X11R6/lib32 /usr/X11R6/lib"
declare -x MULTILIB_STRICT_EXEMPT="(perl5|gcc|gcc-lib|binutils|eclipse-3|debug|portage|udev)"
declare -- MY_P="perl-5.16.1"
declare -- MY_PV="5.16.1"
declare -x NETBEANS="apisupport cnd groovy gsf harness ide identity j2ee java mobility nb php profiler soa visualweb webcommon websvccommon xml"
declare -- PATCH_VER="1"
declare -x PATH="/memex/linpengt/gentoo/usr/lib/portage/bin/ebuild-helpers/4:/memex/linpengt/gentoo/usr/lib/portage/bin/ebuild-helpers:/memex/linpengt/gentoo/usr/sbin:/memex/linpengt/gentoo/usr/bin:/memex/linpengt/gentoo/sbin:/memex/linpengt/gentoo/bin:/memex/linpengt/gentoo/opt/bin:/memex/linpengt/gentoo/usr/x86_64-pc-linux-gnu/gcc-bin/4.2.4:/memex/linpengt/gentoo/tmp/bin:/memex/linpengt/gentoo/tmp/usr/bin:/bin:/usr/bin:/memex/linpengt/gentoo/usr/bin:/memex/linpengt/gentoo/bin:/memex/linpengt/gentoo/tmp/usr/bin:/memex/linpengt/gentoo/tmp/bin:/usr/bin:/bin"
declare PDEPEND=">=app-admin/perl-cleaner-2.5 "
declare -- PERL_OLDVERSEN="5.16.0"
declare -x PHP_TARGETS=""
declare -x PKG_CONFIG_PATH="/usr/lib/pkgconfig"
declare -a PORTAGE_DOCOMPRESS='([0]="/usr/share/doc" [1]="/usr/share/info" [2]="/usr/share/man")'
declare -a PORTAGE_DOCOMPRESS_SKIP='([0]="/usr/share/doc/perl-5.16.1/html")'
declare -x PORTAGE_ROOT_USER="linpengt"
declare -x PREFIX_DISABLE_GEN_USR_LDSCRIPT="yes"
declare -- PRIV_LIB="/usr/lib/perl5/5.16.1"
declare -x PROFILE_ONLY_VARIABLES="ARCH ELIBC KERNEL USERLAND"
declare -x PROPERTIES=""
declare -x PROVIDE=""
declare -x PYTHONDONTWRITEBYTECODE="1"
declare -x PYTHONPATH="/memex/linpengt/gentoo/usr/lib/portage/pym"
declare -x PYTHON_TARGETS=""
declare RDEPEND="
	berkdb? ( sys-libs/db )
	gdbm? ( >=sys-libs/gdbm-1.8.3 )
	app-arch/bzip2
	sys-libs/zlib
 "
declare REPOSITORY
declare REQUIRED_USE=""
declare -x RESTRICT=""
declare -x RESUMECOMMAND_SSH="bash -c \"x=\\\${2#ssh://} ; host=\\\${x%%/*} ; port=\\\${host##*:} ; host=\\\${host%:*} ; [[ \\\${host} = \\\${port} ]] && port=22 ; exec rsync --rsh=\\\"ssh -p\\\${port}\\\" -avP \\\"\\\${host}:/\\\${x#*/}\\\" \\\"\\\$1\\\"\" rsync \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
declare -x ROCKS_ROOT="/opt/rocks"
declare -x RUBY_TARGETS=""
declare -x S="/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1"
declare -x SANDBOX_DENY=""
declare -x SANDBOX_PREDICT=""
declare -x SANDBOX_READ="/:/memex/linpengt/gentoo/var/tmp"
declare -x SANDBOX_WRITE="/memex/linpengt/gentoo/var/tmp"
declare -- SHORT_PV="5.16"
declare -- SITE_ARCH="/usr/local/lib/perl5/5.16.1/x86_64-linux"
declare -- SITE_LIB="/usr/local/lib/perl5/5.16.1"
declare -x SLOT="0"
declare SRC_URI="
	mirror://cpan/src/perl-5.16.1.tar.bz2
	mirror://cpan/authors/id/R/RJ/RJBS/perl-5.16.1.tar.bz2
	mirror://gentoo/perl-5.16.1-1.tar.bz2
	http://dev.gentoo.org/~tove/distfiles/dev-lang/perl/perl-5.16.1-1.tar.bz2
"
declare -x SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
declare -x SSH_CLIENT="192.168.128.1 19075 22"
declare -x SSH_CONNECTION="192.168.128.1 19075 192.168.99.220 22"
declare -x SSH_TTY="/dev/pts/0"
declare -x SYMLINK_LIB=""
declare -x USE="amd64 bootstrap elibc_glibc kernel_linux prefix userland_GNU"
declare -x USERLAND="GNU"
declare -- VENDOR_ARCH="/usr/lib/perl5/vendor_perl/5.16.1/x86_64-linux"
declare -- VENDOR_LIB="/usr/lib/perl5/vendor_perl/5.16.1"
declare -x VIDEO_CARDS=""
declare -x XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
declare -x ZLIB_INCLUDE="/memex/linpengt/gentoo/usr/include"
declare -x ZLIB_LIB="/memex/linpengt/gentoo/usr/lib"
declare -x _E_DOCDESTTREE_=""
declare -x _E_EXEDESTTREE_=""
declare -- ___ECLASS_ONCE_EUTILS="recur -_+^+_- spank"
declare -- ___ECLASS_ONCE_FLAG_O_MATIC="recur -_+^+_- spank"
declare -- ___ECLASS_ONCE_MULTILIB="recur -_+^+_- spank"
declare -- ___ECLASS_ONCE_MULTIPROCESSING="recur -_+^+_- spank"
declare -- ___ECLASS_ONCE_TOOLCHAIN_FUNCS="recur -_+^+_- spank"
declare -- ___ECLASS_ONCE_USER="recur -_+^+_- spank"
declare -- e="/memex/linpengt/gentoo/usr/portage/dev-lang/perl/files/eblits/pkg_postrm-v50160001.eblit"
declare -- myarch="x86_64-linux"
declare -- mydb="U"
declare -- mygdbm="U"
declare -- myndbm="U"
declare -- osname="linux"
declare -- patchname="gentoo/interix"
declare -- phase_func
_assert_pkg_ebuild_phase () 
{ 
    case ${EBUILD_PHASE} in 
        setup | preinst | postinst)

        ;;
        *)
            eerror "'$1()' called from '${EBUILD_PHASE}' phase which is not OK:";
            eerror "You may only call from pkg_{setup,preinst,postinst} functions.";
            eerror "Package fails at QA and at life.  Please file a bug.";
            die "Bad package!  $1 is only for use in some pkg_* functions!"
        ;;
    esac
}
_epatch_draw_line () 
{ 
    [[ -z $1 ]] && set "$(printf "%65s" '')";
    echo "${1//?/=}"
}
_filter-hardened () 
{ 
    local f;
    for f in "$@";
    do
        case "${f}" in 
            -fPIC | -fpic | -fPIE | -fpie | -Wl,pie | -pie)
                gcc-specs-pie || continue;
                is-flagq -nopie || append-flags -nopie
            ;;
            -fstack-protector)
                gcc-specs-ssp || continue;
                is-flagq -fno-stack-protector || append-flags $(test-flags -fno-stack-protector)
            ;;
            -fstack-protector-all)
                gcc-specs-ssp-to-all || continue;
                is-flagq -fno-stack-protector-all || append-flags $(test-flags -fno-stack-protector-all)
            ;;
            -fno-strict-overflow)
                gcc-specs-nostrict || continue;
                is-flagq -fstrict-overflow || append-flags $(test-flags -fstrict-overflow)
            ;;
        esac;
    done
}
_filter-var () 
{ 
    local f x var=$1 new=();
    shift;
    for f in ${!var};
    do
        for x in "$@";
        do
            [[ ${f} == ${x} ]] && continue 2;
        done;
        new+=("${f}");
    done;
    eval export ${var}=\""${new[*]}"\"
}
_gcc-install-dir () 
{ 
    echo "$(LC_ALL=C $(tc-getCC) -print-search-dirs 2> /dev/null |		awk '$1=="install:" {print $2}')"
}
_gcc-specs-directive_raw () 
{ 
    local cc=$(tc-getCC);
    local specfiles=$(LC_ALL=C ${cc} -v 2>&1 | awk '$1=="Reading" {print $NF}');
    ${cc} -dumpspecs 2> /dev/null | cat - ${specfiles} | awk -v directive=$1 'BEGIN	{ pspec=""; spec=""; outside=1 }
$1=="*"directive":"  { pspec=spec; spec=""; outside=0; next }
	outside || NF==0 || ( substr($1,1,1)=="*" && substr($1,length($1),1)==":" ) { outside=1; next }
	spec=="" && substr($0,1,1)=="+" { spec=pspec " " substr($0,2); next }
	{ spec=spec $0 }
END	{ print spec }';
    return 0
}
_gcc-specs-exists () 
{ 
    [[ -f $(_gcc-install-dir)/$1 ]]
}
_gcc_fullversion () 
{ 
    local ver="$1";
    shift;
    set -- `$(tc-getCPP "$@") -E -P - <<<"__GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__"`;
    eval echo "$ver"
}
_iconins () 
{ 
    ( local funcname=$1;
    shift;
    local size dir;
    local context=apps;
    local theme=hicolor;
    while [[ $# -gt 0 ]]; do
        case $1 in 
            -s | --size)
                if [[ ${2%%x*}x${2%%x*} == "$2" ]]; then
                    size=${2%%x*};
                else
                    size=${2};
                fi;
                case ${size} in 
                    16 | 22 | 24 | 32 | 36 | 48 | 64 | 72 | 96 | 128 | 192 | 256)
                        size=${size}x${size}
                    ;;
                    scalable)

                    ;;
                    *)
                        eerror "${size} is an unsupported icon size!";
                        exit 1
                    ;;
                esac;
                shift 2
            ;;
            -t | --theme)
                theme=${2};
                shift 2
            ;;
            -c | --context)
                context=${2};
                shift 2
            ;;
            *)
                if [[ -z ${size} ]]; then
                    insinto /usr/share/pixmaps;
                else
                    insinto /usr/share/icons/${theme}/${size}/${context};
                fi;
                if [[ ${funcname} == doicon ]]; then
                    if [[ -f $1 ]]; then
                        doins "${1}";
                    else
                        if [[ -d $1 ]]; then
                            shopt -s nullglob;
                            doins "${1}"/*.{png,svg};
                            shopt -u nullglob;
                        else
                            eerror "${1} is not a valid file/directory!";
                            exit 1;
                        fi;
                    fi;
                else
                    break;
                fi;
                shift 1
            ;;
        esac;
    done;
    if [[ ${funcname} == newicon ]]; then
        newins "$@";
    fi ) || die
}
_is_flagq () 
{ 
    local x;
    for x in ${!1};
    do
        [[ ${x} == $2 ]] && return 0;
    done;
    return 1
}
_multijob_fork () 
{ 
    [[ $# -eq 1 ]] || die "incorrect number of arguments";
    local ret=0;
    [[ $1 == "post" ]] && : $(( ++mj_num_jobs ));
    if [[ ${mj_num_jobs} -ge ${mj_max_jobs} ]]; then
        multijob_finish_one;
        ret=$?;
    fi;
    [[ $1 == "pre" ]] && : $(( ++mj_num_jobs ));
    return ${ret}
}
_tc-getPROG () 
{ 
    local tuple=$1;
    local v var vars=$2;
    local prog=$3;
    var=${vars%% *};
    for v in ${vars};
    do
        if [[ -n ${!v} ]]; then
            export ${var}="${!v}";
            echo "${!v}";
            return 0;
        fi;
    done;
    local search=;
    [[ -n $4 ]] && search=$(type -p "$4-${prog}");
    [[ -z ${search} && -n ${!tuple} ]] && search=$(type -p "${!tuple}-${prog}");
    [[ -n ${search} ]] && prog=${search##*/};
    export ${var}=${prog};
    echo "${!var}"
}
all-flag-vars () 
{ 
    echo {C,CPP,CXX,CCAS,F,FC,LD}FLAGS
}
alternatives_auto_makesym () 
{ 
    local SYMLINK REGEX ALT myregex;
    SYMLINK=$1;
    REGEX=$2;
    if [ "${REGEX:0:1}" != "/" ]; then
        myregex="${SYMLINK%/*}/${REGEX}";
    else
        myregex=${REGEX};
    fi;
    ALT="$(for i in $(echo ${EROOT}${myregex}); do echo ${i#${EROOT}}; done | sort -r)";
    alternatives_makesym ${SYMLINK} ${ALT}
}
alternatives_makesym () 
{ 
    local ALTERNATIVES="";
    local SYMLINK="";
    local alt pref;
    SYMLINK=${EPREFIX}/${1#${EPREFIX}};
    pref=${ROOT%/};
    shift;
    ALTERNATIVES=$@;
    for alt in ${ALTERNATIVES};
    do
        alt=${EPREFIX}/${alt#${EPREFIX}};
        if [ -f "${pref}${alt}" ]; then
            if [ "${alt%/*}" = "${SYMLINK%/*}" ]; then
                einfo "Linking ${alt} to ${pref}${SYMLINK} (relative)";
                ln -sf ${alt##*/} ${pref}${SYMLINK};
            else
                einfo "Linking ${alt} to ${pref}${SYMLINK} (absolute)";
                ln -sf ${pref}${alt} ${pref}${SYMLINK};
            fi;
            break;
        fi;
    done;
    if [ ! -L ${pref}${SYMLINK} ]; then
        ewarn "Unable to establish ${pref}${SYMLINK} symlink";
    else
        if [ ! -f "`dirname ${pref}${SYMLINK}`/`readlink ${pref}${SYMLINK}`" -a ! -f "`readlink ${pref}${SYMLINK}`" ]; then
            ewarn "Removing dead symlink ${pref}${SYMLINK}";
            rm -f ${pref}${SYMLINK};
        fi;
    fi
}
alternatives_pkg_postinst () 
{ 
    if [ -n "${ALTERNATIVES}" -a -n "${SOURCE}" ]; then
        alternatives_makesym ${SOURCE} ${ALTERNATIVES};
    fi
}
alternatives_pkg_postrm () 
{ 
    if [ -n "${ALTERNATIVES}" -a -n "${SOURCE}" ]; then
        alternatives_makesym ${SOURCE} ${ALTERNATIVES};
    fi
}
append-cflags () 
{ 
    [[ $# -eq 0 ]] && return 0;
    export CFLAGS=$(test-flags-CC ${CFLAGS} "$@");
    return 0
}
append-cppflags () 
{ 
    [[ $# -eq 0 ]] && return 0;
    export CPPFLAGS="${CPPFLAGS} $*";
    return 0
}
append-cxxflags () 
{ 
    [[ $# -eq 0 ]] && return 0;
    export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS} "$@");
    return 0
}
append-fflags () 
{ 
    [[ $# -eq 0 ]] && return 0;
    export FFLAGS=$(test-flags-F77 ${FFLAGS} "$@");
    export FCFLAGS=$(test-flags-FC ${FCFLAGS} "$@");
    return 0
}
append-flags () 
{ 
    [[ $# -eq 0 ]] && return 0;
    case " $* " in 
        *' '-[DIU]*)
            eqawarn 'please use append-cppflags for preprocessor flags'
        ;;
        *' '-L* | *' '-Wl,*)
            eqawarn 'please use append-ldflags for linker flags'
        ;;
    esac;
    append-cflags "$@";
    append-cxxflags "$@";
    append-fflags "$@";
    return 0
}
append-ldflags () 
{ 
    [[ $# -eq 0 ]] && return 0;
    local flag;
    for flag in "$@";
    do
        [[ ${flag} == -l* ]] && eqawarn "Appending a library link instruction (${flag}); libraries to link to should not be passed through LDFLAGS";
    done;
    export LDFLAGS="${LDFLAGS} $*";
    return 0
}
append-lfs-flags () 
{ 
    [[ $# -ne 0 ]] && die "append-lfs-flags takes no arguments";
    case ${CHOST} in 
        *-aix*)
            append-cppflags -D_LARGE_FILES -D_LARGE_FILE_API
        ;;
        *)
            append-cppflags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
        ;;
    esac
}
append-libs () 
{ 
    [[ $# -eq 0 ]] && return 0;
    local flag;
    for flag in "$@";
    do
        [[ ${flag} == -l* ]] && flag=${flag#-l};
        export LIBS="${LIBS} -l${flag}";
    done;
    return 0
}
built_with_use () 
{ 
    local hidden="no";
    if [[ $1 == "--hidden" ]]; then
        hidden="yes";
        shift;
    fi;
    local missing_action="die";
    if [[ $1 == "--missing" ]]; then
        missing_action=$2;
        shift;
        shift;
        case ${missing_action} in 
            true | false | die)

            ;;
            *)
                die "unknown action '${missing_action}'"
            ;;
        esac;
    fi;
    local opt=$1;
    [[ ${opt:0:1} = "-" ]] && shift || opt="-a";
    local PKG=$(best_version $1);
    [[ -z ${PKG} ]] && die "Unable to resolve $1 to an installed package";
    shift;
    local USEFILE="${EROOT}"/var/db/pkg/${PKG}/USE;
    local IUSEFILE="${EROOT}"/var/db/pkg/${PKG}/IUSE;
    if [[ ! -e ${USEFILE} ]] || [[ ! -e ${IUSEFILE} && ${hidden} == "no" ]]; then
        case ${missing_action} in 
            true)
                return 0
            ;;
            false)
                return 1
            ;;
            die)
                die "Unable to determine what USE flags $PKG was built with"
            ;;
        esac;
    fi;
    if [[ ${hidden} == "no" ]]; then
        local IUSE_BUILT=($(<"${IUSEFILE}"));
        local expand;
        for expand in $(echo ${USE_EXPAND} | tr '[:upper:]' '[:lower:]');
        do
            if [[ $1 == ${expand}_* ]]; then
                expand="";
                break;
            fi;
        done;
        if [[ -n ${expand} ]]; then
            if ! has $1 ${IUSE_BUILT[@]#[-+]}; then
                case ${missing_action} in 
                    true)
                        return 0
                    ;;
                    false)
                        return 1
                    ;;
                    die)
                        die "$PKG does not actually support the $1 USE flag!"
                    ;;
                esac;
            fi;
        fi;
    fi;
    local USE_BUILT=$(<${USEFILE});
    while [[ $# -gt 0 ]]; do
        if [[ ${opt} = "-o" ]]; then
            has $1 ${USE_BUILT} && return 0;
        else
            has $1 ${USE_BUILT} || return 1;
        fi;
        shift;
    done;
    [[ ${opt} = "-a" ]]
}
check_license () 
{ 
    die "you no longer need this as portage supports ACCEPT_LICENSE itself"
}
check_rebuild () 
{ 
    if has_version "<dev-lang/perl-${SHORT_PV}"; then
        echo "";
        ewarn "UPDATE THE PERL MODULES:";
        ewarn "After updating dev-lang/perl you must reinstall";
        ewarn "the installed perl modules.";
        ewarn "Use: perl-cleaner --all";
    else
        if has_version dev-lang/perl; then
            if ( use ithreads && ! has_version dev-lang/perl[ithreads] ) || ( ! use ithreads && has_version dev-lang/perl[ithreads] ) || ( use debug && ! has_version dev-lang/perl[debug] ) || ( ! use debug && has_version dev-lang/perl[debug] ); then
                echo "";
                ewarn "TOGGLED USE-FLAGS WARNING:";
                ewarn "You changed one of the use-flags ithreads or debug.";
                ewarn "You must rebuild all perl-modules installed.";
                ewarn "Use: perl-cleaner --modules ; perl-cleaner --force --libperl";
            fi;
        fi;
    fi
}
cleaner_msg () 
{ 
    eerror "You have had multiple versions of perl. It is recommended";
    eerror "that you run perl-cleaner now. perl-cleaner will";
    eerror "assist with this transition. This script is capable";
    eerror "of cleaning out old .ph files, rebuilding modules for ";
    eerror "your new version of perl, as well as re-emerging";
    eerror "applications that compiled against your old libperl$(get_libname)";
    eerror;
    eerror "PLEASE DO NOT INTERRUPT THE RUNNING OF THIS SCRIPT.";
    eerror "Part of the rebuilding of applications compiled against ";
    eerror "your old libperl involves temporarily unmerging";
    eerror "them - interruptions could leave you with unmerged";
    eerror "packages before they can be remerged.";
    eerror "";
    eerror "If you have run perl-cleaner and a package still gives";
    eerror "you trouble, and re-emerging it fails to correct";
    eerror "the problem, please check http://bugs.gentoo.org/";
    eerror "for more information or to report a bug.";
    eerror ""
}
doicon () 
{ 
    _iconins ${FUNCNAME} "$@"
}
domenu () 
{ 
    ( local i j ret=0;
    insinto /usr/share/applications;
    for i in "$@";
    do
        if [[ -f ${i} ]]; then
            doins "${i}";
            ((ret+=$?));
        else
            if [[ -d ${i} ]]; then
                for j in "${i}"/*.desktop;
                do
                    doins "${j}";
                    ((ret+=$?));
                done;
            else
                ((++ret));
            fi;
        fi;
    done;
    exit ${ret} )
}
dual_scripts () 
{ 
    src_remove_dual perl-core/Archive-Tar 1.820.0 ptar ptardiff ptargrep;
    src_remove_dual perl-core/Digest-SHA 5.710.0 shasum;
    src_remove_dual perl-core/CPAN 1.980.0 cpan;
    src_remove_dual perl-core/CPANPLUS 0.912.100 cpanp cpan2dist;
    src_remove_dual_file perl-core/CPANPLUS 0.912.100 /usr/bin/cpanp-run-perl;
    src_remove_dual perl-core/Encode 2.440.0 enc2xs piconv;
    src_remove_dual perl-core/ExtUtils-MakeMaker 6.630.200_rc instmodsh;
    src_remove_dual perl-core/ExtUtils-ParseXS 3.160.0 xsubpp;
    src_remove_dual perl-core/IO-Compress 2.48.0 zipdetails;
    src_remove_dual perl-core/JSON-PP 2.272.0 json_pp;
    src_remove_dual perl-core/Module-Build 0.390.100_rc config_data;
    src_remove_dual perl-core/Module-CoreList 2.700.0 corelist;
    src_remove_dual perl-core/PodParser 1.510.0 pod2usage podchecker podselect;
    src_remove_dual perl-core/Test-Harness 3.230.0 prove;
    src_remove_dual perl-core/podlators 2.4.0 pod2man pod2text;
    src_remove_dual_man perl-core/podlators 2.4.0 /usr/share/man/man1/perlpodstyle.1
}
ebeep () 
{ 
    ewarn "QA Notice: ebeep is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org"
}
eblit-include () 
{ 
    local skipable=false;
    [[ $1 == "--skip" ]] && skipable=true && shift;
    [[ $1 == pkg_* ]] && skipable=true;
    local e v func=$1 ver=$2;
    [[ -z ${func} ]] && die "Usage: eblit-include <function> [version]";
    for v in ${ver:+-}${ver} -${PVR} -${PV} "";
    do
        e="${FILESDIR}/eblits/${func}${v}.eblit";
        if [[ -e ${e} ]]; then
            . "${e}";
            return 0;
        fi;
    done;
    ${skipable} && return 0;
    die "Could not locate requested eblit '${func}' in ${FILESDIR}/eblits/"
}
eblit-perl-pkg_postinst () 
{ 
    dual_scripts;
    if [[ "${ROOT}" = "/" ]]; then
        local INC DIR file;
        INC=$(perl -e 'for $line (@INC) { next if $line eq "."; next if $line =~ m/'${SHORT_PV}'|etc|local|perl$/; print "$line\n" }');
        einfo "Removing old .ph files";
        for DIR in ${INC};
        do
            if [[ -d "${DIR}" ]]; then
                for file in $(find "${DIR}" -name "*.ph" -type f );
                do
                    rm -f "${file}";
                    einfo "<< ${file}";
                done;
            fi;
        done;
        for DIR in ${INC};
        do
            if [[ -d "${DIR}" ]]; then
                find "${DIR}" -depth -type d -print0 | xargs -0 -r rmdir &>/dev/null;
            fi;
        done;
        einfo "Converting C header files to the corresponding Perl format (ignore any error)";
        pushd /usr/include > /dev/null;
        h2ph -Q -a -d "${EPREFIX}"${ARCH_LIB} asm/termios.h syscall.h syslimits.h syslog.h sys/ioctl.h sys/socket.h sys/time.h wait.h sysexits.h;
        popd > /dev/null;
    fi
}
eblit-perl-pkg_postrm () 
{ 
    dual_scripts
}
eblit-perl-pkg_setup () 
{ 
    case ${CHOST} in 
        *-freebsd*)
            osname="freebsd"
        ;;
        *-dragonfly*)
            osname="dragonfly"
        ;;
        *-netbsd*)
            osname="netbsd"
        ;;
        *-openbsd*)
            osname="openbsd"
        ;;
        *-darwin*)
            osname="darwin"
        ;;
        *-interix*)
            osname="interix"
        ;;
        *)
            osname="linux"
        ;;
    esac;
    myarch="${CHOST%%-*}-${osname}";
    if use debug; then
        myarch+="-debug";
    fi;
    if use ithreads; then
        mythreading="-multi";
        myarch+="-thread";
    fi;
    LIBPERL="libperl$(get_libname ${MY_PV} )";
    PRIV_LIB="/usr/$(get_libdir)/perl5/${MY_PV}";
    ARCH_LIB="/usr/$(get_libdir)/perl5/${MY_PV}/${myarch}${mythreading}";
    SITE_LIB="/usr/local/$(get_libdir)/perl5/${MY_PV}";
    SITE_ARCH="/usr/local/$(get_libdir)/perl5/${MY_PV}/${myarch}${mythreading}";
    VENDOR_LIB="/usr/$(get_libdir)/perl5/vendor_perl/${MY_PV}";
    VENDOR_ARCH="/usr/$(get_libdir)/perl5/vendor_perl/${MY_PV}/${myarch}${mythreading}";
    if use ithreads; then
        echo "";
        ewarn "THREADS WARNING:";
        ewarn "PLEASE NOTE: You are compiling ${MY_P} with";
        ewarn "interpreter-level threading enabled.";
        ewarn "Threading is not supported by all applications ";
        ewarn "that compile against perl. You use threading at ";
        ewarn "your own discretion. ";
    fi;
    check_rebuild;
    dual_scripts
}
eblit-perl-src_configure () 
{ 
    declare -a myconf;
    export LC_ALL="C";
    [[ ${COLUMNS:-1} -ge 1 ]] || unset COLUMNS;
    use ppc && replace-flags -O? -O1;
    use elibc_uclibc || replace-flags "-Os" "-O2";
    filter-flags "-malign-double";
    use ppc && filter-flags "-mpowerpc-gpopt";
    filter-flags "-fsched2-use-superblocks";
    use sparc && myconf -Ud_longdbl;
    export BUILD_BZIP2=0;
    export BZIP2_INCLUDE=${EPREFIX}/usr/include;
    export BZIP2_LIB=${EPREFIX}/usr/$(get_libdir);
    export BUILD_ZLIB=False;
    export ZLIB_INCLUDE=${EPREFIX}/usr/include;
    export ZLIB_LIB=${EPREFIX}/usr/$(get_libdir);
    myndbm='U';
    mygdbm='U';
    mydb='U';
    if use gdbm; then
        mygdbm='D';
        myndbm='D';
    fi;
    if use berkdb; then
        mydb='D';
        has_version '=sys-libs/db-1*' && myndbm='D';
    fi;
    myconf "-${myndbm}i_ndbm" "-${mygdbm}i_gdbm" "-${mydb}i_db";
    if use alpha && [[ "$(tc-getCC)" = "ccc" ]]; then
        ewarn "Perl will not be built with berkdb support, use gcc if you needed it...";
        myconf -Ui_db -Ui_ndbm;
    fi;
    use ithreads && myconf -Dusethreads;
    if use debug; then
        append-cflags "-g";
        myconf -DDEBUGGING;
    else
        if [[ ${CFLAGS} == *-g* ]]; then
            myconf -DDEBUGGING=-g;
        else
            myconf -DDEBUGGING=none;
        fi;
    fi;
    if [[ -n ${PERL_OLDVERSEN} ]]; then
        local inclist=$(for v in ${PERL_OLDVERSEN}; do echo -n "${v}/${myarch}${mythreading} ${v} "; done );
        myconf -Dinc_version_list="${inclist}";
    fi;
    [[ ${ELIBC} == "FreeBSD" ]] && myconf "-Dlibc=/usr/$(get_libdir)/libc.a";
    if use prefix; then
        local ldir;
        local paths="";
        echo "int main() {}" > "${T}"/t.c;
        $(tc-getCC) -o "${T}"/t "${T}"/t.c > /dev/null || die;
        local scantool=scanelf;
        [[ ${CHOST} == *-darwin* ]] && scantool=scanmacho;
        local mtype=$(${scantool} -BF "%M%D#f" "${T}"/t);
        einfo "searching libdirs for ${mtype}";
        for ldir in /lib/*-linux-gnu /usr/lib/*-linux-gnu /lib64 /lib/64 /usr/lib64 /usr/lib/64 /lib32 /usr/lib32 /lib /usr/lib;
        do
            [[ -e ${ldir} ]] || continue;
            if ${scantool} -BF "%M%D#f" ${ldir}/ | grep -q ${mtype}; then
                paths="${paths} ${ldir}";
                einfo "found ${ldir}";
            fi;
        done;
        myconf "-Dlibpth=${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir) ${paths}";
    else
        if [[ $(get_libdir) != "lib" ]]; then
            myconf "-Dlibpth=/usr/local/$(get_libdir) /$(get_libdir) /usr/$(get_libdir)";
        fi;
    fi;
    myconf -Dnoextensions=ODBM_File;
    sh Configure -des -Duseshrplib -Darchname="${myarch}" -Dcc="$(tc-getCC)" -Doptimize="${CFLAGS}" -Dldflags="${LDFLAGS}" -Dprefix="${EPREFIX}"'/usr' -Dinstallprefix="${EPREFIX}"'/usr' -Dsiteprefix="${EPREFIX}"'/usr/local' -Dvendorprefix="${EPREFIX}"'/usr' -Dscriptdir="${EPREFIX}"'/usr/bin' -Dprivlib="${EPREFIX}${PRIV_LIB}" -Darchlib="${EPREFIX}${ARCH_LIB}" -Dsitelib="${EPREFIX}${SITE_LIB}" -Dsitearch="${EPREFIX}${SITE_ARCH}" -Dvendorlib="${EPREFIX}${VENDOR_LIB}" -Dvendorarch="${EPREFIX}${VENDOR_ARCH}" -Dman1dir="${EPREFIX}"/usr/share/man/man1 -Dman3dir="${EPREFIX}"/usr/share/man/man3 -Dsiteman1dir="${EPREFIX}"/usr/local/man/man1 -Dsiteman3dir="${EPREFIX}"/usr/local/man/man3 -Dvendorman1dir="${EPREFIX}"/usr/share/man/man1 -Dvendorman3dir="${EPREFIX}"/usr/share/man/man3 -Dman1ext='1' -Dman3ext='3pm' -Dlibperl="${LIBPERL}" -Dlocincpth="${EPREFIX}"'/usr/include ' -Dglibpth="${EPREFIX}/$(get_libdir) ${EPREFIX}/usr/$(get_libdir)"' ' -Duselargefiles -Dd_semctl_semun -Dcf_by='Gentoo' -Dmyhostname='localhost' -Dperladmin='root@localhost' -Dinstallusrbinperl='n' -Ud_csh -Uusenm "${myconf[@]}" || die "Unable to configure"
}
eblit-perl-src_prepare () 
{ 
    local patch;
    EPATCH_OPTS+=" -p1";
    einfo "Applying patches from ${MY_P}-${PATCH_VER} ...";
    while read patch; do
        EPATCH_SINGLE_MSG="  ${patch} ...";
        epatch "${WORKDIR}"/patches/${patch};
    done < "${WORKDIR}"/patches/series;
    src_prepare_update_patchlevel_h;
    if ! tc-is-static-only; then
        ln -s ${LIBPERL} libperl$(get_libname ${SHORT_PV}) || die;
        ln -s ${LIBPERL} libperl$(get_libname ) || die;
    fi
}
eblit-run () 
{ 
    eblit-include --skip common "${*:2}";
    eblit-include "$@";
    eblit-run-maybe eblit-$1-pre;
    eblit-${PN}-$1;
    eblit-run-maybe eblit-$1-post
}
eblit-run-maybe () 
{ 
    [[ $(type -t "$@") == "function" ]] && "$@"
}
econf_build () 
{ 
    tc-env_build econf --build=${CBUILD:-${CHOST}} "$@"
}
ecvs_clean () 
{ 
    [[ -z $* ]] && set -- .;
    find "$@" -type d -name 'CVS' -prune -print0 | xargs -0 rm -rf;
    find "$@" -type f -name '.cvs*' -print0 | xargs -0 rm -rf
}
edos2unix () 
{ 
    [[ $# -eq 0 ]] && return 0;
    sed -i 's/\r$//' -- "$@" || die
}
egetent () 
{ 
    local db=$1 key=$2;
    [[ $# -ge 3 ]] && die "usage: egetent <database> <key>";
    case ${db} in 
        passwd | group)

        ;;
        *)
            die "sorry, database '${db}' not yet supported; file a bug"
        ;;
    esac;
    case ${CHOST} in 
        *-darwin[678])
            case ${key} in 
                *[!0-9]*)
                    nidump ${db} . | awk -F: "(\$1 ~ /^${key}\$/) {print;exit;}"
                ;;
                *)
                    nidump ${db} . | awk -F: "(\$3 == ${key}) {print;exit;}"
                ;;
            esac
        ;;
        *-darwin*)
            local mykey;
            case ${db} in 
                passwd)
                    db="Users" mykey="UniqueID"
                ;;
                group)
                    db="Groups" mykey="PrimaryGroupID"
                ;;
            esac;
            case ${key} in 
                *[!0-9]*)
                    dscl . -read /${db}/${key} 2> /dev/null | grep RecordName
                ;;
                *)
                    dscl . -search /${db} ${mykey} ${key} 2> /dev/null
                ;;
            esac
        ;;
        *-freebsd* | *-dragonfly*)
            case ${db} in 
                passwd)
                    db="user"
                ;;
                *)

                ;;
            esac;
            local opts;
            if [[ ${key} == [[:digit:]]* ]]; then
                [[ ${db} == "user" ]] && opts="-u" || opts="-g";
            fi;
            pw show ${db} ${opts} "${key}" -q
        ;;
        *-netbsd* | *-openbsd*)
            grep "${key}:\*:" /etc/${db}
        ;;
        *)
            nscd -i "${db}" 2> /dev/null;
            getent "${db}" "${key}"
        ;;
    esac
}
egethome () 
{ 
    local pos;
    [[ $# -eq 1 ]] || die "usage: egethome <user>";
    case ${CHOST} in 
        *-darwin* | *-freebsd* | *-dragonfly*)
            pos=9
        ;;
        *)
            pos=6
        ;;
    esac;
    egetent passwd "$1" | cut -d: -f${pos}
}
egetshell () 
{ 
    local pos;
    [[ $# -eq 1 ]] || die "usage: egetshell <user>";
    case ${CHOST} in 
        *-darwin* | *-freebsd* | *-dragonfly*)
            pos=10
        ;;
        *)
            pos=7
        ;;
    esac;
    egetent passwd "$1" | cut -d: -f${pos}
}
emktemp () 
{ 
    local exe="touch";
    [[ $1 == -d ]] && exe="mkdir" && shift;
    local topdir=$1;
    if [[ -z ${topdir} ]]; then
        [[ -z ${T} ]] && topdir="/tmp" || topdir=${T};
    fi;
    if ! type -P mktemp > /dev/null; then
        local tmp=/;
        while [[ -e ${tmp} ]]; do
            tmp=${topdir}/tmp.${RANDOM}.${RANDOM}.${RANDOM};
        done;
        ${exe} "${tmp}" || ${exe} -p "${tmp}";
        echo "${tmp}";
    else
        if [[ ${exe} == "touch" ]]; then
            TMPDIR="${topdir}" mktemp -t tmp.XXXXXXXXXX;
        else
            TMPDIR="${topdir}" mktemp -dt tmp.XXXXXXXXXX;
        fi;
    fi
}
enewgroup () 
{ 
    _assert_pkg_ebuild_phase ${FUNCNAME};
    local egroup=$1;
    shift;
    if [[ -z ${egroup} ]]; then
        eerror "No group specified !";
        die "Cannot call enewgroup without a group";
    fi;
    rootuid=$(python -c 'from portage.const import rootuid; print rootuid');
    if [[ ${rootuid} != 0 ]]; then
        ewarn "'enewgroup()' disabled in Gentoo Prefix with non-root user (by design)";
        ewarn "    Group: '$egroup' not created";
        return 0;
    fi;
    if [[ -n $(egetent group "${egroup}") ]]; then
        return 0;
    fi;
    einfo "Adding group '${egroup}' to your system ...";
    local egid=$1;
    shift;
    if [[ ! -z ${egid} ]]; then
        if [[ ${egid} -gt 0 ]]; then
            if [[ -n $(egetent group ${egid}) ]]; then
                egid="next available; requested gid taken";
            fi;
        else
            eerror "Groupid given but is not greater than 0 !";
            die "${egid} is not a valid GID";
        fi;
    else
        egid="next available";
    fi;
    einfo " - Groupid: ${egid}";
    if [[ $# -gt 0 ]]; then
        die "extra arguments no longer supported; please file a bug";
    fi;
    function _enewgroup_next_gid () 
    { 
        if [[ ${egid} == *[!0-9]* ]]; then
            for ((egid = 101; egid <= 999; egid++))
            do
                [[ -z $(egetent group ${egid}) ]] && break;
            done;
        fi
    };
    case ${CHOST} in 
        *-darwin*)
            _enewgroup_next_gid;
            dscl . create "/groups/${egroup}" gid ${egid};
            dscl . create "/groups/${egroup}" passwd '*'
        ;;
        *-freebsd* | *-dragonfly*)
            _enewgroup_next_gid;
            pw groupadd "${egroup}" -g ${egid} || die
        ;;
        *-netbsd*)
            _enewgroup_next_gid;
            groupadd -g ${egid} "${egroup}" || die
        ;;
        *)
            local opts;
            if [[ ${egid} == *[!0-9]* ]]; then
                opts="";
            else
                opts="-g ${egid}";
            fi;
            groupadd -r ${opts} "${egroup}" || die
        ;;
    esac
}
enewuser () 
{ 
    _assert_pkg_ebuild_phase ${FUNCNAME};
    local euser=$1;
    shift;
    if [[ -z ${euser} ]]; then
        eerror "No username specified !";
        die "Cannot call enewuser without a username";
    fi;
    rootuid=$(python -c 'from portage.const import rootuid; print rootuid');
    if [[ ${rootuid} != 0 ]]; then
        ewarn "'enewuser()'  disabled in Gentoo Prefix with non-root user (by design)";
        ewarn "    User: '$euser' not created";
        return 0;
    fi;
    if [[ -n $(egetent passwd "${euser}") ]]; then
        return 0;
    fi;
    einfo "Adding user '${euser}' to your system ...";
    local opts=();
    local euid=$1;
    shift;
    if [[ -n ${euid} && ${euid} != -1 ]]; then
        if [[ ${euid} -gt 0 ]]; then
            if [[ -n $(egetent passwd ${euid}) ]]; then
                euid="next";
            fi;
        else
            eerror "Userid given but is not greater than 0 !";
            die "${euid} is not a valid UID";
        fi;
    else
        euid="next";
    fi;
    if [[ ${euid} == "next" ]]; then
        for ((euid = 101; euid <= 999; euid++))
        do
            [[ -z $(egetent passwd ${euid}) ]] && break;
        done;
    fi;
    opts+=(-u ${euid});
    einfo " - Userid: ${euid}";
    local eshell=$1;
    shift;
    if [[ ! -z ${eshell} ]] && [[ ${eshell} != "-1" ]]; then
        if [[ ! -e ${EROOT}${eshell} ]]; then
            eerror "A shell was specified but it does not exist !";
            die "${eshell} does not exist in ${EROOT}";
        fi;
        if [[ ${eshell} == */false || ${eshell} == */nologin ]]; then
            eerror "Do not specify ${eshell} yourself, use -1";
            die "Pass '-1' as the shell parameter";
        fi;
    else
        for eshell in /sbin/nologin /usr/sbin/nologin /bin/false /usr/bin/false /dev/null;
        do
            [[ -x ${ROOT}${eshell} ]] && break;
        done;
        if [[ ${eshell} == "/dev/null" ]]; then
            eerror "Unable to identify the shell to use, proceeding with userland default.";
            case ${USERLAND} in 
                GNU)
                    eshell="/bin/false"
                ;;
                BSD)
                    eshell="/sbin/nologin"
                ;;
                Darwin)
                    eshell="/usr/sbin/nologin"
                ;;
                *)
                    die "Unable to identify the default shell for userland ${USERLAND}"
                ;;
            esac;
        fi;
    fi;
    einfo " - Shell: ${eshell}";
    opts+=(-s "${eshell}");
    local ehome=$1;
    shift;
    if [[ -z ${ehome} ]] || [[ ${ehome} == "-1" ]]; then
        ehome="/dev/null";
    fi;
    einfo " - Home: ${ehome}";
    opts+=(-d "${ehome}");
    local egroups=$1;
    shift;
    local g egroups_arr;
    IFS="," read -r -a egroups_arr <<< "${egroups}";
    shift;
    if [[ ${#egroups_arr[@]} -gt 0 ]]; then
        local defgroup exgroups;
        for g in "${egroups_arr[@]}";
        do
            if [[ -z $(egetent group "${g}") ]]; then
                eerror "You must add group ${g} to the system first";
                die "${g} is not a valid GID";
            fi;
            if [[ -z ${defgroup} ]]; then
                defgroup=${g};
            else
                exgroups+=",${g}";
            fi;
        done;
        opts+=(-g "${defgroup}");
        if [[ ! -z ${exgroups} ]]; then
            opts+=(-G "${exgroups:1}");
        fi;
    fi;
    einfo " - Groups: ${egroups:-(none)}";
    if [[ $# -gt 0 ]]; then
        die "extra arguments no longer supported; please file a bug";
    else
        local comment="added by portage for ${PN}";
        opts+=(-c "${comment}");
        einfo " - GECOS: ${comment}";
    fi;
    case ${CHOST} in 
        *-darwin*)
            dscl . create "/users/${euser}" uid ${euid};
            dscl . create "/users/${euser}" shell "${eshell}";
            dscl . create "/users/${euser}" home "${ehome}";
            dscl . create "/users/${euser}" realname "added by portage for ${PN}";
            for g in "${egroups_arr[@]}";
            do
                dscl . merge "/groups/${g}" users "${euser}";
            done
        ;;
        *-freebsd* | *-dragonfly*)
            pw useradd "${euser}" "${opts[@]}" || die
        ;;
        *-netbsd*)
            useradd "${opts[@]}" "${euser}" || die
        ;;
        *-openbsd*)
            useradd -u ${euid} -s "${eshell}" -d "${ehome}" -g "${egroups}" "${euser}" || die
        ;;
        *)
            useradd -r "${opts[@]}" "${euser}" || die
        ;;
    esac;
    if [[ ! -e ${EROOT}/${ehome} ]]; then
        einfo " - Creating ${ehome} in ${EROOT}";
        mkdir -p "${EROOT}/${ehome}";
        chown "${euser}" "${EROOT}/${ehome}";
        chmod 755 "${EROOT}/${ehome}";
    fi
}
epatch () 
{ 
    function _epatch_draw_line () 
    { 
        [[ -z $1 ]] && set "$(printf "%65s" '')";
        echo "${1//?/=}"
    };
    unset P4CONFIG P4PORT P4USER;
    local EPATCH_OPTS=(${EPATCH_OPTS[*]});
    while [[ $# -gt 0 ]]; do
        case $1 in 
            -*)
                EPATCH_OPTS+=("$1")
            ;;
            *)
                break
            ;;
        esac;
        shift;
    done;
    if [[ $# -gt 1 ]]; then
        local m;
        for m in "$@";
        do
            epatch "${m}";
        done;
        return 0;
    fi;
    local SINGLE_PATCH="no";
    [[ $# -eq 0 ]] && set -- "${EPATCH_SOURCE}";
    if [[ -f $1 ]]; then
        SINGLE_PATCH="yes";
        set -- "$1";
        local EPATCH_SUFFIX=$1;
    else
        if [[ -d $1 ]]; then
            set -- "$1"/*${EPATCH_SUFFIX:+."${EPATCH_SUFFIX}"};
        else
            if [[ -f ${EPATCH_SOURCE}/$1 ]]; then
                epatch "${EPATCH_SOURCE}/$1";
                return $?;
            else
                [[ $# -ne 0 ]] && EPATCH_SOURCE=$1;
                echo;
                eerror "Cannot find \$EPATCH_SOURCE!  Value for \$EPATCH_SOURCE is:";
                eerror;
                eerror "  ${EPATCH_SOURCE}";
                eerror "  ( ${EPATCH_SOURCE##*/} )";
                echo;
                die "Cannot find \$EPATCH_SOURCE!";
            fi;
        fi;
    fi;
    EPATCH_OPTS="${EPATCH_COMMON_OPTS} ${EPATCH_OPTS[*]}";
    local PIPE_CMD;
    case ${EPATCH_SUFFIX##*\.} in 
        xz)
            PIPE_CMD="xz -dc"
        ;;
        lzma)
            PIPE_CMD="lzma -dc"
        ;;
        bz2)
            PIPE_CMD="bzip2 -dc"
        ;;
        gz | Z | z)
            PIPE_CMD="gzip -dc"
        ;;
        ZIP | zip)
            PIPE_CMD="unzip -p"
        ;;
        *)

        ;;
    esac;
    [[ ${SINGLE_PATCH} == "no" ]] && einfo "${EPATCH_MULTI_MSG}";
    local x;
    for x in "$@";
    do
        [[ ! -f ${x} ]] && continue;
        local patchname=${x##*/};
        local a=${patchname#*_};
        a=${a%%_*};
        if ! [[ ${SINGLE_PATCH} == "yes" || ${EPATCH_FORCE} == "yes" || ${a} == all || ${a} == ${ARCH} ]]; then
            continue;
        fi;
        if [[ -n ${EPATCH_EXCLUDE} ]]; then
            eshopts_push -o noglob;
            local ex;
            for ex in ${EPATCH_EXCLUDE};
            do
                if [[ ${patchname} == ${ex} ]]; then
                    eshopts_pop;
                    continue 2;
                fi;
            done;
            eshopts_pop;
        fi;
        if [[ ${SINGLE_PATCH} == "yes" ]]; then
            if [[ -n ${EPATCH_SINGLE_MSG} ]]; then
                einfo "${EPATCH_SINGLE_MSG}";
            else
                einfo "Applying ${patchname} ...";
            fi;
        else
            einfo "  ${patchname} ...";
        fi;
        local STDERR_TARGET="${T}/${patchname}.out";
        if [[ -e ${STDERR_TARGET} ]]; then
            STDERR_TARGET="${T}/${patchname}-$$.out";
        fi;
        printf "***** %s *****\nPWD: %s\n\n" "${patchname}" "${PWD}" > "${STDERR_TARGET}";
        local count=0;
        local PATCH_TARGET;
        if [[ -n ${PIPE_CMD} ]]; then
            PATCH_TARGET="${T}/$$.patch";
            echo "PIPE_COMMAND:  ${PIPE_CMD} ${x} > ${PATCH_TARGET}" >> "${STDERR_TARGET}";
            if ! ( ${PIPE_CMD} "${x}" > "${PATCH_TARGET}" ) >> "${STDERR_TARGET}" 2>&1; then
                echo;
                eerror "Could not extract patch!";
                count=5;
                break;
            fi;
        else
            PATCH_TARGET=${x};
        fi;
        local abs_paths=$(egrep -n '^[-+]{3} /' "${PATCH_TARGET}" | awk '$2 != "/dev/null" { print }');
        if [[ -n ${abs_paths} ]]; then
            count=1;
            printf "NOTE: skipping -p0 due to absolute paths in patch:\n%s\n" "${abs_paths}" >> "${STDERR_TARGET}";
        fi;
        local rel_paths=$(egrep -n '^[-+]{3} [^	]*[.][.]/' "${PATCH_TARGET}");
        if [[ -n ${rel_paths} ]]; then
            eqawarn "QA Notice: Your patch uses relative paths '../'.";
            eqawarn " In the future this will cause a failure.";
            eqawarn "${rel_paths}";
        fi;
        local patch_cmd;
        while [[ ${count} -lt 5 ]]; do
            patch_cmd="${BASH_ALIASES[patch]:-patch} -p${count} ${EPATCH_OPTS}";
            ( _epatch_draw_line "***** ${patchname} *****";
            echo;
            echo "PATCH COMMAND:  ${patch_cmd} < '${PATCH_TARGET}'";
            echo;
            _epatch_draw_line "***** ${patchname} *****";
            ${patch_cmd} --dry-run -f < "${PATCH_TARGET}" 2>&1;
            ret=$?;
            echo;
            echo "patch program exited with status ${ret}";
            exit ${ret} ) >> "${STDERR_TARGET}";
            if [ $? -eq 0 ]; then
                ( _epatch_draw_line "***** ${patchname} *****";
                echo;
                echo "ACTUALLY APPLYING ${patchname} ...";
                echo;
                _epatch_draw_line "***** ${patchname} *****";
                ${patch_cmd} < "${PATCH_TARGET}" 2>&1;
                ret=$?;
                echo;
                echo "patch program exited with status ${ret}";
                exit ${ret} ) >> "${STDERR_TARGET}";
                if [ $? -ne 0 ]; then
                    echo;
                    eerror "A dry-run of patch command succeeded, but actually";
                    eerror "applying the patch failed!";
                    count=5;
                fi;
                break;
            fi;
            : $(( count++ ));
        done;
        if [[ -n ${PIPE_CMD} ]]; then
            rm -f "${PATCH_TARGET}";
        fi;
        if [[ ${count} -ge 5 ]]; then
            echo;
            eerror "Failed Patch: ${patchname} !";
            eerror " ( ${PATCH_TARGET} )";
            eerror;
            eerror "Include in your bugreport the contents of:";
            eerror;
            eerror "  ${STDERR_TARGET}";
            echo;
            die "Failed Patch: ${patchname}!";
        fi;
        rm -f "${STDERR_TARGET}";
        cat >> "${T}/epatch.log"  <<-EOF
PATCH: ${x}
CMD: ${patch_cmd}
PWD: ${PWD}

EOF

        eend 0;
    done;
    [[ ${SINGLE_PATCH} == "no" ]] && einfo "Done with patching";
    :
}
epatch_user () 
{ 
    [[ $# -ne 0 ]] && die "epatch_user takes no options";
    local applied="${T}/epatch_user.log";
    [[ -e ${applied} ]] && return 2;
    local EPATCH_SOURCE check base=${PORTAGE_CONFIGROOT%/}/etc/portage/patches;
    for check in ${CATEGORY}/{${P}-${PR},${P},${PN}};
    do
        EPATCH_SOURCE=${base}/${CTARGET}/${check};
        [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${CHOST}/${check};
        [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${check};
        if [[ -d ${EPATCH_SOURCE} ]]; then
            EPATCH_SOURCE=${EPATCH_SOURCE} EPATCH_SUFFIX="patch" EPATCH_FORCE="yes" EPATCH_MULTI_MSG="Applying user patches from ${EPATCH_SOURCE} ..." epatch;
            echo "${EPATCH_SOURCE}" > "${applied}";
            return 0;
        fi;
    done;
    echo "none" > "${applied}";
    return 1
}
epause () 
{ 
    ewarn "QA Notice: epause is not defined in EAPI=${EAPI}, please file a bug at http://bugs.gentoo.org"
}
eprefixify () 
{ 
    [[ $# -lt 1 ]] && die "at least one argument required";
    einfo "Adjusting to prefix ${EPREFIX:-/}";
    local x;
    for x in "$@";
    do
        if [[ -e ${x} ]]; then
            ebegin "  ${x##*/}";
            sed -i -e "s|@GENTOO_PORTAGE_EPREFIX@|${EPREFIX}|g" "${x}";
            eend $? || die "failed to eprefixify ${x}";
        else
            die "${x} does not exist";
        fi;
    done;
    return 0
}
epunt_cxx () 
{ 
    local dir=$1;
    [[ -z ${dir} ]] && dir=${S};
    ebegin "Removing useless C++ checks";
    local f;
    find "${dir}" -name configure | while read f; do
        patch --no-backup-if-mismatch -p0 "${f}" "${PORTDIR}/eclass/ELT-patches/nocxx/nocxx.patch" > /dev/null;
    done;
    eend 0
}
esethome () 
{ 
    _assert_pkg_ebuild_phase ${FUNCNAME};
    local euser=$1;
    shift;
    if [[ -z ${euser} ]]; then
        eerror "No username specified !";
        die "Cannot call esethome without a username";
    fi;
    if [[ -z $(egetent passwd "${euser}") ]]; then
        ewarn "User does not exist, cannot set home dir -- skipping.";
        return 1;
    fi;
    local ehome=$1;
    shift;
    if [[ -z ${ehome} ]]; then
        eerror "No home directory specified !";
        die "Cannot call esethome without a home directory or '-1'";
    fi;
    if [[ ${ehome} == "-1" ]]; then
        ehome="/dev/null";
    fi;
    if [[ $(egethome "${euser}") == ${ehome} ]]; then
        return 0;
    fi;
    einfo "Updating home for user '${euser}' ...";
    einfo " - Home: ${ehome}";
    if [[ ! -e ${EROOT}/${ehome} ]]; then
        einfo " - Creating ${ehome} in ${EROOT}";
        mkdir -p "${EROOT}/${ehome}";
        chown "${euser}" "${EROOT}/${ehome}";
        chmod 755 "${EROOT}/${ehome}";
    fi;
    case ${CHOST} in 
        *-darwin*)
            dscl . change "/users/${euser}" home "${ehome}"
        ;;
        *-freebsd* | *-dragonfly*)
            pw usermod "${euser}" -d "${ehome}" && return 0;
            [[ $? == 8 ]] && eerror "${euser} is in use, cannot update home";
            eerror "There was an error when attempting to update the home directory for ${euser}";
            eerror "Please update it manually on your system:";
            eerror "\t pw usermod \"${euser}\" -d \"${ehome}\""
        ;;
        *)
            usermod -d "${ehome}" "${euser}" && return 0;
            [[ $? == 8 ]] && eerror "${euser} is in use, cannot update home";
            eerror "There was an error when attempting to update the home directory for ${euser}";
            eerror "Please update it manually on your system (as root):";
            eerror "\t usermod -d \"${ehome}\" \"${euser}\""
        ;;
    esac
}
eshopts_pop () 
{ 
    local s;
    estack_pop eshopts s || die "${FUNCNAME}: unbalanced push";
    if [[ ${s} == "shopt -"* ]]; then
        eval "${s}" || die "${FUNCNAME}: sanity: invalid shopt options: ${s}";
    else
        set +$- || die "${FUNCNAME}: sanity: invalid shell settings: $-";
        set -${s} || die "${FUNCNAME}: sanity: unable to restore saved shell settings: ${s}";
    fi
}
eshopts_push () 
{ 
    if [[ $1 == -[su] ]]; then
        estack_push eshopts "$(shopt -p)";
        [[ $# -eq 0 ]] && return 0;
        shopt "$@" || die "${FUNCNAME}: bad options to shopt: $*";
    else
        estack_push eshopts $-;
        [[ $# -eq 0 ]] && return 0;
        set "$@" || die "${FUNCNAME}: bad options to set: $*";
    fi
}
estack_pop () 
{ 
    [[ $# -eq 0 || $# -gt 2 ]] && die "estack_pop: incorrect # of arguments";
    local __estack_name="__ESTACK_$1__";
    shift;
    local __estack_retvar=$1;
    shift;
    eval local __estack_i=\${#${__estack_name}\[@\]};
    [[ $(( --__estack_i )) -eq -1 ]] && return 1;
    if [[ -n ${__estack_retvar} ]]; then
        eval ${__estack_retvar}=\"\${${__estack_name}\[${__estack_i}\]}\";
    fi;
    eval unset ${__estack_name}\[${__estack_i}\]
}
estack_push () 
{ 
    [[ $# -eq 0 ]] && die "estack_push: incorrect # of arguments";
    local stack_name="__ESTACK_$1__";
    shift;
    eval ${stack_name}+=\( \"\$@\" \)
}
esvn_clean () 
{ 
    [[ -z $* ]] && set -- .;
    find "$@" -type d -name '.svn' -prune -print0 | xargs -0 rm -rf
}
eumask_pop () 
{ 
    [[ $# -eq 0 ]] || die "${FUNCNAME}: we take no options";
    local s;
    estack_pop eumask s || die "${FUNCNAME}: unbalanced push";
    umask ${s} || die "${FUNCNAME}: sanity: could not restore umask: ${s}"
}
eumask_push () 
{ 
    estack_push eumask "$(umask)";
    umask "$@" || die "${FUNCNAME}: bad options to umask: $*"
}
filter-flags () 
{ 
    _filter-hardened "$@";
    local v;
    for v in $(all-flag-vars);
    do
        _filter-var ${v} "$@";
    done;
    return 0
}
filter-ldflags () 
{ 
    _filter-var LDFLAGS "$@";
    return 0
}
filter-lfs-flags () 
{ 
    [[ $# -ne 0 ]] && die "filter-lfs-flags takes no arguments";
    filter-flags -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_LARGE_FILES -D_LARGE_FILE_API
}
filter-mfpmath () 
{ 
    local orig_mfpmath new_math prune_math;
    orig_mfpmath=$(get-flag -mfpmath);
    new_math=$(get-flag mfpmath);
    new_math=" ${new_math//,/ } ";
    prune_math="";
    for prune_math in "$@";
    do
        new_math=${new_math/ ${prune_math} / };
    done;
    new_math=$(echo ${new_math});
    new_math=${new_math// /,};
    if [[ -z ${new_math} ]]; then
        filter-flags ${orig_mfpmath};
    else
        replace-flags ${orig_mfpmath} -mfpmath=${new_math};
    fi;
    return 0
}
gcc-fullversion () 
{ 
    _gcc_fullversion '$1.$2.$3' "$@"
}
gcc-major-version () 
{ 
    _gcc_fullversion '$1' "$@"
}
gcc-micro-version () 
{ 
    _gcc_fullversion '$3' "$@"
}
gcc-minor-version () 
{ 
    _gcc_fullversion '$2' "$@"
}
gcc-specs-directive () 
{ 
    local directive subdname subdirective;
    directive="$(_gcc-specs-directive_raw $1)";
    while [[ ${directive} == *%\(*\)* ]]; do
        subdname=${directive/*%\(};
        subdname=${subdname/\)*};
        subdirective="$(_gcc-specs-directive_raw ${subdname})";
        directive="${directive//\%(${subdname})/${subdirective}}";
    done;
    echo "${directive}";
    return 0
}
gcc-specs-nostrict () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    return $([[ "${directive/\{!fstrict-overflow:}" != "${directive}" ]])
}
gcc-specs-now () 
{ 
    local directive;
    directive=$(gcc-specs-directive link_command);
    return $([[ "${directive/\{!nonow:}" != "${directive}" ]])
}
gcc-specs-pie () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    return $([[ "${directive/\{!nopie:}" != "${directive}" ]])
}
gcc-specs-relro () 
{ 
    local directive;
    directive=$(gcc-specs-directive link_command);
    return $([[ "${directive/\{!norelro:}" != "${directive}" ]])
}
gcc-specs-ssp () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    return $([[ "${directive/\{!fno-stack-protector:}" != "${directive}" ]])
}
gcc-specs-ssp-to-all () 
{ 
    local directive;
    directive=$(gcc-specs-directive cc1);
    return $([[ "${directive/\{!fno-stack-protector-all:}" != "${directive}" ]])
}
gcc-version () 
{ 
    _gcc_fullversion '$1.$2' "$@"
}
gen_usr_ldscript () 
{ 
    local lib libdir=$(get_libdir) output_format="" auto=false suffix=$(get_libname);
    [[ -z ${ED+set} ]] && local ED=${D%/}${EPREFIX}/;
    tc-is-static-only && return;
    [[ -n ${PREFIX_DISABLE_GEN_USR_LDSCRIPT} ]] && return;
    dodir /usr/${libdir};
    if [[ $1 == "-a" ]]; then
        auto=true;
        shift;
        dodir /${libdir};
    fi;
    output_format=$($(tc-getCC) ${CFLAGS} ${LDFLAGS} -Wl,--verbose 2>&1 | sed -n 's/^OUTPUT_FORMAT("\([^"]*\)",.*/\1/p');
    [[ -n ${output_format} ]] && output_format="OUTPUT_FORMAT ( ${output_format} )";
    for lib in "$@";
    do
        local tlib;
        if ${auto}; then
            lib="lib${lib}${suffix}";
        else
            [[ -r ${ED}/${libdir}/${lib} ]] || continue;
        fi;
        case ${CTARGET:-${CHOST}} in 
            *-darwin*)
                if ${auto}; then
                    tlib=$(scanmacho -qF'%S#F' "${ED}"/usr/${libdir}/${lib});
                else
                    tlib=$(scanmacho -qF'%S#F' "${ED}"/${libdir}/${lib});
                fi;
                if [[ -z ${tlib} ]]; then
                    ewarn "gen_usr_ldscript: unable to read install_name from ${lib}";
                    tlib=${lib};
                fi;
                tlib=${tlib##*/};
                if ${auto}; then
                    mv "${ED}"/usr/${libdir}/${lib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die;
                    if [[ ${tlib} != ${lib%${suffix}}.*${suffix#.} ]]; then
                        mv "${ED}"/usr/${libdir}/${tlib%${suffix}}.*${suffix#.} "${ED}"/${libdir}/ || die;
                    fi;
                    [[ ${tlib} != ${lib} ]] && rm -f "${ED}"/${libdir}/${lib};
                fi;
                if [[ ! -w "${ED}/${libdir}/${tlib}" ]]; then
                    chmod u+w "${ED}${libdir}/${tlib}";
                    local nowrite=yes;
                fi;
                install_name_tool -id "${EPREFIX}"/${libdir}/${tlib} "${ED}"/${libdir}/${tlib} || die "install_name_tool failed";
                [[ -n ${nowrite} ]] && chmod u-w "${ED}${libdir}/${tlib}";
                pushd "${ED}/usr/${libdir}" > /dev/null;
                ln -snf "../../${libdir}/${tlib}" "${lib}";
                popd > /dev/null
            ;;
            *-aix* | *-irix* | *64*-hpux* | *-interix* | *-winnt*)
                if ${auto}; then
                    mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
                    tlib=$(readlink "${ED}"/${libdir}/${lib});
                    tlib=${tlib##*/};
                    if [[ -z ${tlib} ]]; then
                        tlib=${lib};
                    else
                        rm -f "${ED}"/${libdir}/${lib};
                    fi;
                else
                    tlib=${lib};
                fi;
                pushd "${ED}/usr/${libdir}" > /dev/null;
                ln -snf "../../${libdir}/${tlib}" "${lib}";
                popd > /dev/null
            ;;
            hppa*-hpux*)
                if ${auto}; then
                    tlib=$(chatr "${ED}"/usr/${libdir}/${lib} | sed -n '/internal name:/{n;s/^ *//;p;q}');
                    [[ -z ${tlib} ]] && tlib=${lib};
                    tlib=${tlib##*/};
                    mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
                    if [[ ${tlib} != ${lib}* ]]; then
                        mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die;
                    fi;
                    [[ ${tlib} != ${lib} ]] && rm -f "${ED}"/${libdir}/${lib};
                else
                    tlib=$(chatr "${ED}"/${libdir}/${lib} | sed -n '/internal name:/{n;s/^ *//;p;q}');
                    [[ -z ${tlib} ]] && tlib=${lib};
                    tlib=${tlib##*/};
                fi;
                pushd "${ED}"/usr/${libdir} > /dev/null;
                ln -snf "../../${libdir}/${tlib}" "${lib}";
                [[ ${tlib} != ${lib} ]] && ln -snf "../../${libdir}/${tlib}" "${tlib}";
                popd > /dev/null
            ;;
            *)
                if ${auto}; then
                    tlib=$(scanelf -qF'%S#F' "${ED}"/usr/${libdir}/${lib});
                    if [[ -z ${tlib} ]]; then
                        ewarn "gen_usr_ldscript: unable to read SONAME from ${lib}";
                        tlib=${lib};
                    fi;
                    mv "${ED}"/usr/${libdir}/${lib}* "${ED}"/${libdir}/ || die;
                    if [[ ${tlib} != ${lib}* ]]; then
                        mv "${ED}"/usr/${libdir}/${tlib}* "${ED}"/${libdir}/ || die;
                    fi;
                    [[ ${tlib} != ${lib} ]] && rm -f "${ED}"/${libdir}/${lib};
                else
                    tlib=${lib};
                fi;
                cat > "${ED}/usr/${libdir}/${lib}"  <<-END_LDSCRIPT
/* GNU ld script
   Since Gentoo has critical dynamic libraries in /lib, and the static versions
   in /usr/lib, we need to have a "fake" dynamic lib in /usr/lib, otherwise we
   run into linking problems.  This "fake" dynamic lib is a linker script that
   redirects the linker to the real lib.  And yes, this works in the cross-
   compiling scenario as the sysroot-ed linker will prepend the real path.

   See bug http://bugs.gentoo.org/4411 for more info.
 */
${output_format}
GROUP ( ${EPREFIX}/${libdir}/${tlib} )
END_LDSCRIPT

            ;;
        esac
        fperms a+x "/usr/${libdir}/${lib}" || die "could not change perms on ${lib}";
    done
}
get-flag () 
{ 
    local f var findflag="$1";
    for var in $(all-flag-vars);
    do
        for f in ${!var};
        do
            if [ "${f/${findflag}}" != "${f}" ]; then
                printf "%s\n" "${f/-${findflag}=}";
                return 0;
            fi;
        done;
    done;
    return 1
}
get_abi_CFLAGS () 
{ 
    get_abi_var CFLAGS "$@"
}
get_abi_CHOST () 
{ 
    get_abi_var CHOST "$@"
}
get_abi_CTARGET () 
{ 
    get_abi_var CTARGET "$@"
}
get_abi_FAKE_TARGETS () 
{ 
    get_abi_var FAKE_TARGETS "$@"
}
get_abi_LDFLAGS () 
{ 
    get_abi_var LDFLAGS "$@"
}
get_abi_LIBDIR () 
{ 
    get_abi_var LIBDIR "$@"
}
get_abi_var () 
{ 
    local flag=$1;
    local abi=${2:-${ABI:-${DEFAULT_ABI:-default}}};
    local var="${flag}_${abi}";
    echo ${!var}
}
get_all_abis () 
{ 
    local order="" mvar dvar;
    mvar="MULTILIB_ABIS";
    dvar="DEFAULT_ABI";
    if [[ -n $1 ]]; then
        mvar="$1_${mvar}";
        dvar="$1_${dvar}";
    fi;
    if [[ -z ${!mvar} ]]; then
        echo "default";
        return 0;
    fi;
    for x in ${!mvar};
    do
        if [[ ${x} != ${!dvar} ]]; then
            order="${order:+${order} }${x}";
        fi;
    done;
    order="${order:+${order} }${!dvar}";
    echo ${order};
    return 0
}
get_all_libdirs () 
{ 
    local libdirs;
    local abi;
    local dir;
    for abi in ${MULTILIB_ABIS};
    do
        libdirs+=" $(get_abi_LIBDIR ${abi})";
    done;
    [[ " ${libdirs} " != *" lib "* ]] && libdirs+=" lib";
    echo "${libdirs}"
}
get_install_abis () 
{ 
    local order="";
    if [[ -z ${MULTILIB_ABIS} ]]; then
        echo "default";
        return 0;
    fi;
    if [[ ${EMULTILIB_PKG} == "true" ]]; then
        for x in ${MULTILIB_ABIS};
        do
            if [[ ${x} != "${DEFAULT_ABI}" ]]; then
                has ${x} ${ABI_DENY} || order="${order} ${x}";
            fi;
        done;
        has ${DEFAULT_ABI} ${ABI_DENY} || order="${order} ${DEFAULT_ABI}";
        if [[ -n ${ABI_ALLOW} ]]; then
            local ordera="";
            for x in ${order};
            do
                if has ${x} ${ABI_ALLOW}; then
                    ordera="${ordera} ${x}";
                fi;
            done;
            order=${ordera};
        fi;
    else
        order=${DEFAULT_ABI};
    fi;
    if [[ -z ${order} ]]; then
        die "The ABI list is empty.  Are you using a proper multilib profile?  Perhaps your USE flags or MULTILIB_ABIS are too restrictive for this package.";
    fi;
    echo ${order};
    return 0
}
get_libdir () 
{ 
    local CONF_LIBDIR;
    if [ -n "${CONF_LIBDIR_OVERRIDE}" ]; then
        echo ${CONF_LIBDIR_OVERRIDE};
    else
        get_abi_LIBDIR;
    fi
}
get_libname () 
{ 
    local libname;
    local ver=$1;
    case ${CHOST} in 
        *-cygwin | mingw* | *-mingw*)
            libname="dll"
        ;;
        *-darwin*)
            libname="dylib"
        ;;
        *-mint*)
            libname="irrelevant"
        ;;
        hppa*-hpux*)
            libname="sl"
        ;;
        *)
            libname="so"
        ;;
    esac;
    if [[ -z $* ]]; then
        echo ".${libname}";
    else
        for ver in "$@";
        do
            case ${CHOST} in 
                *-darwin*)
                    echo ".${ver}.${libname}"
                ;;
                *-mint*)
                    echo ".${libname}"
                ;;
                *)
                    echo ".${libname}.${ver}"
                ;;
            esac;
        done;
    fi
}
get_modname () 
{ 
    local modname;
    local ver=$1;
    case ${CHOST} in 
        *-darwin*)
            modname="bundle"
        ;;
        *)
            modname="so"
        ;;
    esac;
    echo ".${modname}"
}
has_m32 () 
{ 
    die "${FUNCNAME}: don't use this anymore"
}
has_m64 () 
{ 
    eqawarn "${FUNCNAME}: don't use this anymore";
    local temp="$(emktemp)";
    echo "int main() { return(0); }" > "${temp}".c;
    MY_CC=$(tc-getCC);
    ${MY_CC/ .*/} -m64 -o "$(emktemp)" "${temp}".c > /dev/null 2>&1;
    local ret=$?;
    rm -f "${temp}".c;
    [[ ${ret} != 1 ]] && return 0;
    return 1
}
has_multilib_profile () 
{ 
    [ -n "${MULTILIB_ABIS}" -a "${MULTILIB_ABIS}" != "${MULTILIB_ABIS/ /}" ]
}
in_iuse () 
{ 
    debug-print-function ${FUNCNAME} "${@}";
    [[ ${#} -eq 1 ]] || die "Invalid args to ${FUNCNAME}()";
    local flag=${1};
    local liuse=(${IUSE});
    has "${flag}" "${liuse[@]#[+-]}"
}
is-flag () 
{ 
    is-flagq "$@" && echo true
}
is-flagq () 
{ 
    [[ -n $2 ]] && die "Usage: is-flag <flag>";
    local var;
    for var in $(all-flag-vars);
    do
        _is_flagq ${var} "$1" && return 0;
    done;
    return 1
}
is-ldflag () 
{ 
    is-ldflagq "$@" && echo true
}
is-ldflagq () 
{ 
    [[ -n $2 ]] && die "Usage: is-ldflag <flag>";
    _is_flagq LDFLAGS $1
}
is_final_abi () 
{ 
    has_multilib_profile || return 0;
    set -- $(get_install_abis);
    local LAST_ABI=$#;
    [[ ${!LAST_ABI} == ${ABI} ]]
}
make_desktop_entry () 
{ 
    [[ -z $1 ]] && die "make_desktop_entry: You must specify the executable";
    local exec=${1};
    local name=${2:-${PN}};
    local icon=${3:-${PN}};
    local type=${4};
    local fields=${5};
    if [[ -z ${type} ]]; then
        local catmaj=${CATEGORY%%-*};
        local catmin=${CATEGORY##*-};
        case ${catmaj} in 
            app)
                case ${catmin} in 
                    accessibility)
                        type="Utility;Accessibility"
                    ;;
                    admin)
                        type=System
                    ;;
                    antivirus)
                        type=System
                    ;;
                    arch)
                        type="Utility;Archiving"
                    ;;
                    backup)
                        type="Utility;Archiving"
                    ;;
                    cdr)
                        type="AudioVideo;DiscBurning"
                    ;;
                    dicts)
                        type="Office;Dictionary"
                    ;;
                    doc)
                        type=Documentation
                    ;;
                    editors)
                        type="Utility;TextEditor"
                    ;;
                    emacs)
                        type="Development;TextEditor"
                    ;;
                    emulation)
                        type="System;Emulator"
                    ;;
                    laptop)
                        type="Settings;HardwareSettings"
                    ;;
                    office)
                        type=Office
                    ;;
                    pda)
                        type="Office;PDA"
                    ;;
                    vim)
                        type="Development;TextEditor"
                    ;;
                    xemacs)
                        type="Development;TextEditor"
                    ;;
                esac
            ;;
            dev)
                type="Development"
            ;;
            games)
                case ${catmin} in 
                    action | fps)
                        type=ActionGame
                    ;;
                    arcade)
                        type=ArcadeGame
                    ;;
                    board)
                        type=BoardGame
                    ;;
                    emulation)
                        type=Emulator
                    ;;
                    kids)
                        type=KidsGame
                    ;;
                    puzzle)
                        type=LogicGame
                    ;;
                    roguelike)
                        type=RolePlaying
                    ;;
                    rpg)
                        type=RolePlaying
                    ;;
                    simulation)
                        type=Simulation
                    ;;
                    sports)
                        type=SportsGame
                    ;;
                    strategy)
                        type=StrategyGame
                    ;;
                esac;
                type="Game;${type}"
            ;;
            gnome)
                type="Gnome;GTK"
            ;;
            kde)
                type="KDE;Qt"
            ;;
            mail)
                type="Network;Email"
            ;;
            media)
                case ${catmin} in 
                    gfx)
                        type=Graphics
                    ;;
                    *)
                        case ${catmin} in 
                            radio)
                                type=Tuner
                            ;;
                            sound)
                                type=Audio
                            ;;
                            tv)
                                type=TV
                            ;;
                            video)
                                type=Video
                            ;;
                        esac;
                        type="AudioVideo;${type}"
                    ;;
                esac
            ;;
            net)
                case ${catmin} in 
                    dialup)
                        type=Dialup
                    ;;
                    ftp)
                        type=FileTransfer
                    ;;
                    im)
                        type=InstantMessaging
                    ;;
                    irc)
                        type=IRCClient
                    ;;
                    mail)
                        type=Email
                    ;;
                    news)
                        type=News
                    ;;
                    nntp)
                        type=News
                    ;;
                    p2p)
                        type=FileTransfer
                    ;;
                    voip)
                        type=Telephony
                    ;;
                esac;
                type="Network;${type}"
            ;;
            sci)
                case ${catmin} in 
                    astro*)
                        type=Astronomy
                    ;;
                    bio*)
                        type=Biology
                    ;;
                    calc*)
                        type=Calculator
                    ;;
                    chem*)
                        type=Chemistry
                    ;;
                    elec*)
                        type=Electronics
                    ;;
                    geo*)
                        type=Geology
                    ;;
                    math*)
                        type=Math
                    ;;
                    physics)
                        type=Physics
                    ;;
                    visual*)
                        type=DataVisualization
                    ;;
                esac;
                type="Education;Science;${type}"
            ;;
            sys)
                type="System"
            ;;
            www)
                case ${catmin} in 
                    client)
                        type=WebBrowser
                    ;;
                esac;
                type="Network;${type}"
            ;;
            *)
                type=
            ;;
        esac;
    fi;
    if [ "${SLOT}" == "0" ]; then
        local desktop_name="${PN}";
    else
        local desktop_name="${PN}-${SLOT}";
    fi;
    local desktop="${T}/$(echo ${exec} | sed 's:[[:space:]/:]:_:g')-${desktop_name}.desktop";
    type=${type%;}${type:+;};
    eshopts_push -s extglob;
    if [[ -n ${icon} && ${icon} != /* ]] && [[ ${icon} == *.xpm || ${icon} == *.png || ${icon} == *.svg ]]; then
        ewarn "As described in the Icon Theme Specification, icon file extensions are not";
        ewarn "allowed in .desktop files if the value is not an absolute path.";
        icon=${icon%.@(xpm|png|svg)};
    fi;
    eshopts_pop;
    cat > "${desktop}"  <<-EOF
[Desktop Entry]
Name=${name}
Type=Application
Comment=${DESCRIPTION}
Exec=${exec}
TryExec=${exec%% *}
Icon=${icon}
Categories=${type}
EOF

    if [[ ${fields:-=} != *=* ]]; then
        ewarn "make_desktop_entry: update your 5th arg to read Path=${fields}";
        fields="Path=${fields}";
    fi;
    [[ -n ${fields} ]] && printf '%b\n' "${fields}" >> "${desktop}";
    ( insinto /usr/share/applications;
    doins "${desktop}" ) || die "installing desktop file failed"
}
make_session_desktop () 
{ 
    [[ -z $1 ]] && eerror "$0: You must specify the title" && return 1;
    [[ -z $2 ]] && eerror "$0: You must specify the command" && return 1;
    local title=$1;
    local command=$2;
    local desktop=${T}/${wm:-${PN}}.desktop;
    shift 2;
    cat > "${desktop}"  <<-EOF
[Desktop Entry]
Name=${title}
Comment=This session logs you into ${title}
Exec=${command} $*
TryExec=${command}
Type=XSession
EOF

    ( insinto /usr/share/xsessions;
    doins "${desktop}" )
}
make_wrapper () 
{ 
    local wrapper=$1 bin=$2 chdir=$3 libdir=$4 path=$5;
    local tmpwrapper=$(emktemp);
    cat > "${tmpwrapper}"  <<EOF
#!${EPREFIX}/bin/sh
cd "${chdir:-.}"
if [ -n "${libdir}" ] ; then
	if [ "\${LD_LIBRARY_PATH+set}" = "set" ] ; then
		export LD_LIBRARY_PATH="\${LD_LIBRARY_PATH}:${EPREFIX}${libdir}"
	else
		export LD_LIBRARY_PATH="${EPREFIX}${libdir}"
	fi
	# ultra-dirty, just do the same for Darwin
	if [ "\${DYLD_LIBRARY_PATH+set}" = "set" ] ; then
		export DYLD_LIBRARY_PATH="\${DYLD_LIBRARY_PATH}:${EPERFIX}${libdir}"
	else
		export DYLD_LIBRARY_PATH="${EPREFIX}${libdir}"
	fi
fi
exec "${EPREFIX}"${bin} "\$@"
EOF

    chmod go+rx "${tmpwrapper}";
    if [[ -n ${path} ]]; then
        ( exeinto "${path}";
        newexe "${tmpwrapper}" "${wrapper}" ) || die;
    else
        newbin "${tmpwrapper}" "${wrapper}" || die;
    fi
}
makeopts_jobs () 
{ 
    [[ $# -eq 0 ]] && set -- ${MAKEOPTS};
    local jobs=$(echo " $* " | sed -r -n 		-e 's:.*[[:space:]](-j|--jobs[=[:space:]])[[:space:]]*([0-9]+).*:\2:p' 		-e 's:.*[[:space:]](-j|--jobs)[[:space:]].*:999:p');
    echo ${jobs:-1}
}
multijob_child_init () 
{ 
    local mode="pre";
    case $1 in 
        --pre)
            mode="pre";
            shift
        ;;
        --post)
            mode="post";
            shift
        ;;
    esac;
    if [[ $# -eq 0 ]]; then
        trap 'echo ${BASHPID} $? >&'${mj_control_fd} EXIT;
        trap 'exit 1' INT TERM;
    else
        local ret;
        [[ ${mode} == "pre" ]] && { 
            multijob_pre_fork;
            ret=$?
        };
        ( multijob_child_init;
        "$@" ) & [[ ${mode} == "post" ]] && { 
            multijob_post_fork;
            ret=$?
        };
        return ${ret};
    fi
}
multijob_finish () 
{ 
    local ret=0;
    while [[ ${mj_num_jobs} -gt 0 ]]; do
        multijob_finish_one;
        : $(( ret |= $? ));
    done;
    wait;
    [[ $# -eq 0 ]] || die "${FUNCNAME} takes no arguments";
    EBUILD_DEATH_HOOKS=${EBUILD_DEATH_HOOKS/ wait / };
    return ${ret}
}
multijob_finish_one () 
{ 
    [[ $# -eq 0 ]] || die "${FUNCNAME} takes no arguments";
    local pid ret;
    read -r -u ${mj_control_fd} pid ret || die;
    : $(( --mj_num_jobs ));
    return ${ret}
}
multijob_init () 
{ 
    has wait ${EBUILD_DEATH_HOOKS} || EBUILD_DEATH_HOOKS+=" wait ";
    local pipe="${T}/multijob.pipe";
    mkfifo "${pipe}";
    redirect_alloc_fd mj_control_fd "${pipe}";
    rm -f "${pipe}";
    mj_max_jobs=$(makeopts_jobs "$@");
    mj_num_jobs=0
}
multijob_post_fork () 
{ 
    _multijob_fork post "$@"
}
multijob_pre_fork () 
{ 
    _multijob_fork pre "$@"
}
multilib_env () 
{ 
    local CTARGET=${1:-${CTARGET}};
    case ${CTARGET} in 
        x86_64*)
            export CFLAGS_x86=${CFLAGS_x86--m32};
            export CHOST_x86=${CTARGET/x86_64/i686};
            export CTARGET_x86=${CHOST_x86};
            if [[ ${SYMLINK_LIB} == "yes" ]]; then
                export LIBDIR_x86="lib32";
            else
                export LIBDIR_x86="lib";
            fi;
            export CFLAGS_amd64=${CFLAGS_amd64--m64};
            export CHOST_amd64=${CTARGET};
            export CTARGET_amd64=${CHOST_amd64};
            export LIBDIR_amd64="lib64";
            export CFLAGS_x32=${CFLAGS_x32--mx32};
            export CHOST_x32=${CTARGET};
            export CTARGET_x32=${CHOST_x32};
            export LIBDIR_x32="libx32";
            : ${MULTILIB_ABIS=amd64 x86};
            : ${DEFAULT_ABI=amd64}
        ;;
        mips64*)
            export CFLAGS_o32=${CFLAGS_o32--mabi=32};
            export CHOST_o32=${CTARGET/mips64/mips};
            export CTARGET_o32=${CHOST_o32};
            export LIBDIR_o32="lib";
            export CFLAGS_n32=${CFLAGS_n32--mabi=n32};
            export CHOST_n32=${CTARGET};
            export CTARGET_n32=${CHOST_n32};
            export LIBDIR_n32="lib32";
            export CFLAGS_n64=${CFLAGS_n64--mabi=64};
            export CHOST_n64=${CTARGET};
            export CTARGET_n64=${CHOST_n64};
            export LIBDIR_n64="lib64";
            : ${MULTILIB_ABIS=n64 n32 o32};
            : ${DEFAULT_ABI=n32}
        ;;
        powerpc64*)
            export CFLAGS_ppc=${CFLAGS_ppc--m32};
            export CHOST_ppc=${CTARGET/powerpc64/powerpc};
            export CTARGET_ppc=${CHOST_ppc};
            export LIBDIR_ppc="lib";
            export CFLAGS_ppc64=${CFLAGS_ppc64--m64};
            export CHOST_ppc64=${CTARGET};
            export CTARGET_ppc64=${CHOST_ppc64};
            export LIBDIR_ppc64="lib64";
            : ${MULTILIB_ABIS=ppc64 ppc};
            : ${DEFAULT_ABI=ppc64}
        ;;
        s390x*)
            export CFLAGS_s390=${CFLAGS_s390--m31};
            export CHOST_s390=${CTARGET/s390x/s390};
            export CTARGET_s390=${CHOST_s390};
            export LIBDIR_s390="lib";
            export CFLAGS_s390x=${CFLAGS_s390x--m64};
            export CHOST_s390x=${CTARGET};
            export CTARGET_s390x=${CHOST_s390x};
            export LIBDIR_s390x="lib64";
            : ${MULTILIB_ABIS=s390x s390};
            : ${DEFAULT_ABI=s390x}
        ;;
        sparc*)
            export CFLAGS_sparc32=${CFLAGS_sparc32--m32};
            export CHOST_sparc32=${CTARGET/sparc64/sparc};
            export CTARGET_sparc32=${CHOST_sparc32};
            export LIBDIR_sparc32="lib";
            export CFLAGS_sparc64=${CFLAGS_sparc64--m64};
            export CHOST_sparc64=${CTARGET};
            export CTARGET_sparc64=${CHOST_sparc64};
            export LIBDIR_sparc64="lib64";
            : ${MULTILIB_ABIS=sparc64 sparc32};
            : ${DEFAULT_ABI=sparc64}
        ;;
        *)
            : ${MULTILIB_ABIS=default};
            : ${DEFAULT_ABI=default}
        ;;
    esac;
    export MULTILIB_ABIS DEFAULT_ABI
}
multilib_toolchain_setup () 
{ 
    local v vv;
    export ABI=$1;
    if [[ ${__DEFAULT_ABI_SAVED} == "true" ]]; then
        for v in CHOST CBUILD AS CC CXX LD;
        do
            vv="__abi_saved_${v}";
            export ${v}="${!vv}";
            unset ${vv};
        done;
        unset __DEFAULT_ABI_SAVED;
    fi;
    if [[ ${ABI} != ${DEFAULT_ABI} ]]; then
        for v in CHOST CBUILD AS CC CXX LD;
        do
            export __abi_saved_${v}="${!v}";
        done;
        export __DEFAULT_ABI_SAVED="true";
        export CHOST=$(get_abi_CHOST ${DEFAULT_ABI});
        export CC="$(tc-getCC) $(get_abi_CFLAGS)";
        export CXX="$(tc-getCXX) $(get_abi_CFLAGS)";
        export LD="$(tc-getLD) $(get_abi_LDFLAGS)";
        export CHOST=$(get_abi_CHOST $1);
        export CBUILD=$(get_abi_CHOST $1);
    fi
}
myconf () 
{ 
    myconf=("${myconf[@]}" "$@")
}
newicon () 
{ 
    _iconins ${FUNCNAME} "$@"
}
newmenu () 
{ 
    ( insinto /usr/share/applications;
    newins "$@" )
}
no-as-needed () 
{ 
    case $($(tc-getLD) -v 2>&1 </dev/null) in 
        *GNU*)
            echo "-Wl,--no-as-needed"
        ;;
    esac
}
number_abis () 
{ 
    set -- `get_install_abis`;
    echo $#
}
path_exists () 
{ 
    local opt=$1;
    [[ ${opt} == -[ao] ]] && shift || opt="-a";
    [[ $# -eq 0 ]] && return 1;
    local p r=0;
    for p in "$@";
    do
        [[ -e ${p} ]];
        : $(( r += $? ));
    done;
    case ${opt} in 
        -a)
            return $(( r != 0 ))
        ;;
        -o)
            return $(( r == $# ))
        ;;
    esac
}
pkg_nofetch () 
{ 
    _eapi0_pkg_nofetch "$@"
}
pkg_postinst () 
{ 
    eblit-run pkg_postinst v50160001
}
pkg_postrm () 
{ 
    eblit-run pkg_postrm v50160001
}
pkg_setup () 
{ 
    eblit-run pkg_setup v50160001
}
post_src_install () 
{ 
    prefix-post_src_install
}
prefix-post_src_install () 
{ 
    local f;
    if [[ ${PN} != "libiconv" && -n $(ls "${ED}"/usr/lib*/charset.alias 2>/dev/null) ]]; then
        einfo "automatically removing charset.alias";
        rm -f "${ED}"/usr/lib*/charset.alias;
    fi
}
preserve_old_lib () 
{ 
    if [[ ${EBUILD_PHASE} != "preinst" ]]; then
        eerror "preserve_old_lib() must be called from pkg_preinst() only";
        die "Invalid preserve_old_lib() usage";
    fi;
    [[ -z $1 ]] && die "Usage: preserve_old_lib <library to preserve> [more libraries to preserve]";
    has preserve-libs ${FEATURES} && return 0;
    [[ ${CHOST} == *-aix* ]] && { 
        einfo "Not preserving libs on AIX (yet), not implemented.";
        return 0
    };
    local lib dir;
    for lib in "$@";
    do
        [[ -e ${EROOT}/${lib} ]] || continue;
        dir=${lib%/*};
        dodir ${dir} || die "dodir ${dir} failed";
        cp "${EROOT}"/${lib} "${ED}"/${lib} || die "cp ${lib} failed";
        touch "${ED}"/${lib};
    done
}
preserve_old_lib_notify () 
{ 
    if [[ ${EBUILD_PHASE} != "postinst" ]]; then
        eerror "preserve_old_lib_notify() must be called from pkg_postinst() only";
        die "Invalid preserve_old_lib_notify() usage";
    fi;
    has preserve-libs ${FEATURES} && return 0;
    local lib notice=0;
    for lib in "$@";
    do
        [[ -e ${EROOT}/${lib} ]] || continue;
        if [[ ${notice} -eq 0 ]]; then
            notice=1;
            ewarn "Old versions of installed libraries were detected on your system.";
            ewarn "In order to avoid breaking packages that depend on these old libs,";
            ewarn "the libraries are not being removed.  You need to run revdep-rebuild";
            ewarn "in order to remove these old dependencies.  If you do not have this";
            ewarn "helper program, simply emerge the 'gentoolkit' package.";
            ewarn;
        fi;
        ewarn "  # revdep-rebuild --library '${lib}' && rm '${lib}'";
    done
}
profile-post_src_install () 
{ 
    prefix-post_src_install
}
prune_libtool_files () 
{ 
    debug-print-function ${FUNCNAME} "$@";
    local removing_all opt;
    for opt in "$@";
    do
        case "${opt}" in 
            --all)
                removing_all=1
            ;;
            *)
                die "Invalid argument to ${FUNCNAME}(): ${opt}"
            ;;
        esac;
    done;
    local pc_libs=();
    if [[ ! -n ${removing_all} ]]; then
        local f;
        local tf=${T}/prune-lt-files.pc;
        local pkgconf=$(tc-getPKG_CONFIG);
        while IFS= read -r -d '' f; do
            local arg;
            sed -e '/^Requires:/d' "${f}" > "${tf}";
            for arg in $("${pkgconf}" --libs "${tf}");
            do
                [[ ${arg} == -l* ]] && pc_libs+=(lib${arg#-l}.la);
            done;
        done < <(find "${ED}" -type f -name '*.pc' -print0);
        rm -f "${tf}";
    fi;
    local f;
    while IFS= read -r -d '' f; do
        local archivefile=${f/%.la/.a};
        [[ ${f} != ${archivefile} ]] || die 'regex sanity check failed';
        if grep -q '^shouldnotlink=yes$' "${f}"; then
            if [[ -f ${archivefile} ]]; then
                einfo "Removing unnecessary ${archivefile#${D%/}} (static plugin)";
                rm -f "${archivefile}";
            fi;
            [[ -n ${removing_all} ]] || continue;
        fi;
        local reason;
        if [[ -n ${removing_all} ]]; then
            reason='requested';
        else
            if [[ ! -f ${archivefile} ]]; then
                reason='no static archive';
            else
                if has "${f##*/}" "${pc_libs[@]}"; then
                    reason='covered by .pc';
                else
                    if [[ ! -n $(sed -nre 				"s/^(dependency_libs|inherited_linker_flags)='(.*)'$/\2/p" 				"${f}") ]]; then
                        reason='no libs & flags';
                    fi;
                fi;
            fi;
        fi;
        if [[ -n ${reason} ]]; then
            einfo "Removing unnecessary ${f#${D%/}} (${reason})";
            rm -f "${f}";
        fi;
    done < <(find "${ED}" -type f -name '*.la' -print0)
}
raw-ldflags () 
{ 
    local x input="$@";
    [[ -z ${input} ]] && input=${LDFLAGS};
    set --;
    for x in ${input};
    do
        x=${x#-Wl,};
        set -- "$@" ${x//,/ };
    done;
    echo "$@"
}
redirect_alloc_fd () 
{ 
    local var=$1 file=$2 redir=${3:-"<>"};
    if [[ $(( (BASH_VERSINFO[0] << 8) + BASH_VERSINFO[1] )) -ge $(( (4 << 8) + 1 )) ]]; then
        eval "exec {${var}}${redir}'${file}'";
    else
        local fd=10;
        while :; do
            if [[ ! -e /dev/fd/${fd} ]] && [[ ! -L /dev/fd/${fd} ]]; then
                eval "exec ${fd}${redir}'${file}'" && break;
            fi;
            [[ ${fd} -gt 1024 ]] && die 'could not locate a free temp fd !?';
            : $(( ++fd ));
        done;
        : $(( ${var} = fd ));
    fi
}
replace-cpu-flags () 
{ 
    local newcpu="$#";
    newcpu="${!newcpu}";
    while [ $# -gt 1 ]; do
        replace-flags "-march=${1}" "-march=${newcpu}";
        replace-flags "-mcpu=${1}" "-mcpu=${newcpu}";
        replace-flags "-mtune=${1}" "-mtune=${newcpu}";
        shift;
    done;
    return 0
}
replace-flags () 
{ 
    [[ $# != 2 ]] && die "Usage: replace-flags <old flag> <new flag>";
    local f var new;
    for var in $(all-flag-vars);
    do
        new=();
        for f in ${!var};
        do
            [[ ${f} == ${1} ]] && f=${2};
            new+=("${f}");
        done;
        eval export ${var}=\""${new[*]}"\";
    done;
    return 0
}
replace-sparc64-flags () 
{ 
    local SPARC64_CPUS="ultrasparc3 ultrasparc v9";
    if [ "${CFLAGS/mtune}" != "${CFLAGS}" ]; then
        for x in ${SPARC64_CPUS};
        do
            CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8}";
        done;
    else
        for x in ${SPARC64_CPUS};
        do
            CFLAGS="${CFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}";
        done;
    fi;
    if [ "${CXXFLAGS/mtune}" != "${CXXFLAGS}" ]; then
        for x in ${SPARC64_CPUS};
        do
            CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8}";
        done;
    else
        for x in ${SPARC64_CPUS};
        do
            CXXFLAGS="${CXXFLAGS/-mcpu=${x}/-mcpu=v8 -mtune=${x}}";
        done;
    fi;
    export CFLAGS CXXFLAGS
}
setup-allowed-flags () 
{ 
    ALLOWED_FLAGS="-pipe";
    ALLOWED_FLAGS+=" -O -O1 -O2 -Os -mcpu -march -mtune";
    ALLOWED_FLAGS+=" -fstack-protector -fstack-protector-all";
    ALLOWED_FLAGS+=" -fbounds-checking -fno-strict-overflow";
    ALLOWED_FLAGS+=" -fno-PIE -fno-pie -fno-unit-at-a-time";
    ALLOWED_FLAGS+=" -g -g[0-9] -ggdb -ggdb[0-9] -gstabs -gstabs+";
    ALLOWED_FLAGS+=" -fno-ident -fpermissive";
    ALLOWED_FLAGS+=" -W* -w";
    ALLOWED_FLAGS+=" -fno-stack-protector -fno-stack-protector-all 		-fno-strict-aliasing -fno-bounds-checking -fstrict-overflow 		-fno-omit-frame-pointer";
    ALLOWED_FLAGS+=" -mregparm -mno-app-regs -mapp-regs -mno-mmx -mno-sse 		-mno-sse2 -mno-sse3 -mno-ssse3 -mno-sse4 -mno-sse4.1 -mno-sse4.2 		-mno-avx -mno-aes -mno-pclmul -mno-sse4a -mno-3dnow -mno-popcnt 		-mno-abm -mips1 -mips2 -mips3 -mips4 -mips32 -mips64 -mips16 -mplt 		-msoft-float -mno-soft-float -mhard-float -mno-hard-float -mfpu 		-mieee -mieee-with-inexact -mschedule -mfloat-gprs -mspe -mno-spe 		-mtls-direct-seg-refs -mno-tls-direct-seg-refs -mflat -mno-flat 		-mno-faster-structs -mfaster-structs -m32 -m64 -mx32 -mabi 		-mlittle-endian -mbig-endian -EL -EB -fPIC -mlive-g0 -mcmodel 		-mstack-bias -mno-stack-bias -msecure-plt -m*-toc -mfloat-abi=* 		-D* -U*";
    ALLOWED_FLAGS+=" -mno-fma4 -mno-movbe -mno-xop -mno-lwp";
    ALLOWED_FLAGS+=" -mno-fsgsbase -mno-rdrnd -mno-f16c -mno-bmi -mno-tbm";
    ALLOWED_FLAGS+=" -mno-avx2 -mno-bmi2 -mno-fma -mno-lzcnt";
    ALLOWED_FLAGS+=" -I* -L* -R* -Wl,*";
    export ALLOWED_FLAGS;
    return 0
}
src_compile () 
{ 
    _eapi2_src_compile "$@"
}
src_configure () 
{ 
    eblit-run src_configure v50160001
}
src_install () 
{ 
    eblit-run src_install v50160001
}
src_prepare () 
{ 
    eblit-run src_prepare v50160001
}
src_prepare_update_patchlevel_h () 
{ 
    local patchdir="${WORKDIR}/patches";
    local prefix;
    [[ -f ${patchdir}/series ]] || return 0;
    while read patch; do
        patchname=$(echo $patch | sed 's/\.diff$//');
        sed -e '/^Subject:/ { N; s/\n / / }' < $patchdir/$patch | sed -n -e '

	# massage the patch headers
	s|^Bug: .*https\?://rt\.perl\.org/.*id=\(.*\).*|[perl #\1]|; tprepend;
	s|^Bug: .*https\?://rt\.cpan\.org/.*id=\(.*\).*|[rt.cpan.org #\1]|; tprepend;
	s|^Bug-Gentoo: ||; tprepend;
	s/^\(Subject\|Description\): //; tappend;
	s|^Origin: .*http://perl5\.git\.perl\.org/perl\.git/commit\(diff\)\?/\(.......\).*|[\2]|; tprepend;

	# post-process at the end of input
	$ { x;
		# include the version number in the patchlevel.h description (if available)
		s/List packaged patches/&'" for ${PF}(#${PATCH_VER})"'/;

		# escape any backslashes and double quotes
		s|\\|\\\\|g; s|"|\\"|g;

		# add a prefix
		s|^|\t,"'"$prefix$patchname"' - |;
		# newlines away
		s/\n/ /g; s/  */ /g;
		# add a suffix
		s/ *$/"/; p
	};
	# stop all processing
	d;
	# label: append to the hold space
	:append H; d;
	# label: prepend to the hold space
	:prepend x; H; d;
	';
    done < "${WORKDIR}"/patches/series > "${S}"/patchlevel-gentoo.h
}
src_remove_dual () 
{ 
    local i pkg ver;
    pkg="$1";
    ver="$2";
    shift 2;
    for i in "$@";
    do
        src_remove_dual_file "${pkg}" "${ver}" "/usr/bin/${i}";
        src_remove_dual_man "${pkg}" "${ver}" "/usr/share/man/man1/${i}.1";
    done
}
src_remove_dual_file () 
{ 
    local i pkg ver;
    pkg="$1";
    ver="$2";
    shift 2;
    case "${EBUILD_PHASE:-none}" in 
        postinst | postrm)
            for i in "$@";
            do
                alternatives_auto_makesym "${i}" "${i}-[0-9]*";
            done
        ;;
        setup)
            for i in "$@";
            do
                if [[ -f ${EROOT}${i} && ! -h ${EROOT}${i} ]]; then
                    has_version ${pkg} && ewarn "You must reinstall ${pkg} !";
                    break;
                fi;
            done
        ;;
        install)
            for i in "$@";
            do
                if ! [[ -f "${ED}"${i} ]]; then
                    ewarn "${i} does not exist!";
                    continue;
                fi;
                mv "${ED}"${i}{,-${ver}-${P}} || die;
            done
        ;;
    esac
}
src_remove_dual_man () 
{ 
    local i pkg ver ff;
    pkg="$1";
    ver="$2";
    shift 2;
    case "${EBUILD_PHASE:-none}" in 
        postinst | postrm)
            for i in "$@";
            do
                ff=`echo "${EROOT}${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}}"*`;
                ff=${ff##*${i#${i%.[0-9]}}};
                alternatives_auto_makesym "${i}${ff}" "${i%.[0-9]}-[0-9]*";
            done
        ;;
        install)
            for i in "$@";
            do
                if ! [[ -f "${ED}"${i} ]]; then
                    ewarn "${i} does not exist!";
                    continue;
                fi;
                mv "${ED}"${i} "${ED}"${i%.[0-9]}-${ver}-${P}${i#${i%.[0-9]}} || die;
            done
        ;;
    esac
}
src_test () 
{ 
    eblit-run src_test v50160001
}
src_unpack () 
{ 
    _eapi0_src_unpack "$@"
}
strip-flags () 
{ 
    local x y var;
    setup-allowed-flags;
    set -f;
    for var in $(all-flag-vars);
    do
        local new=();
        for x in ${!var};
        do
            local flag=${x%%=*};
            for y in ${ALLOWED_FLAGS};
            do
                if [[ -z ${flag%%${y}} ]]; then
                    new+=("${x}");
                    break;
                fi;
            done;
        done;
        if _is_flagq ${var} "-O*" && ! _is_flagq new "-O*"; then
            new+=(-O2);
        fi;
        eval export ${var}=\""${new[*]}"\";
    done;
    set +f;
    return 0
}
strip-linguas () 
{ 
    local ls newls nols;
    if [[ $1 == "-i" ]] || [[ $1 == "-u" ]]; then
        local op=$1;
        shift;
        ls=$(find "$1" -name '*.po' -exec basename {} .po ';');
        shift;
        local d f;
        for d in "$@";
        do
            if [[ ${op} == "-u" ]]; then
                newls=${ls};
            else
                newls="";
            fi;
            for f in $(find "$d" -name '*.po' -exec basename {} .po ';');
            do
                if [[ ${op} == "-i" ]]; then
                    has ${f} ${ls} && newls="${newls} ${f}";
                else
                    has ${f} ${ls} || newls="${newls} ${f}";
                fi;
            done;
            ls=${newls};
        done;
    else
        ls="$@";
    fi;
    nols="";
    newls="";
    for f in ${LINGUAS};
    do
        if has ${f} ${ls}; then
            newls="${newls} ${f}";
        else
            nols="${nols} ${f}";
        fi;
    done;
    [[ -n ${nols} ]] && einfo "Sorry, but ${PN} does not support the LINGUAS:" ${nols};
    export LINGUAS=${newls:1}
}
strip-unsupported-flags () 
{ 
    export CFLAGS=$(test-flags-CC ${CFLAGS});
    export CXXFLAGS=$(test-flags-CXX ${CXXFLAGS});
    export FFLAGS=$(test-flags-F77 ${FFLAGS});
    export FCFLAGS=$(test-flags-FC ${FCFLAGS})
}
tc-arch () 
{ 
    tc-ninja_magic_to_arch portage "$@"
}
tc-arch-kernel () 
{ 
    tc-ninja_magic_to_arch kern "$@"
}
tc-endian () 
{ 
    local host=$1;
    [[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
    host=${host%%-*};
    case ${host} in 
        alpha*)
            echo big
        ;;
        arm*b*)
            echo big
        ;;
        arm*)
            echo little
        ;;
        cris*)
            echo little
        ;;
        hppa*)
            echo big
        ;;
        i?86*)
            echo little
        ;;
        ia64*)
            echo little
        ;;
        m68*)
            echo big
        ;;
        mips*l*)
            echo little
        ;;
        mips*)
            echo big
        ;;
        powerpc*)
            echo big
        ;;
        s390*)
            echo big
        ;;
        sh*b*)
            echo big
        ;;
        sh*)
            echo little
        ;;
        sparc*)
            echo big
        ;;
        x86_64*)
            echo little
        ;;
        *)
            echo wtf
        ;;
    esac
}
tc-env_build () 
{ 
    tc-export_build_env;
    CFLAGS=${BUILD_CFLAGS} CXXFLAGS=${BUILD_CXXFLAGS} CPPFLAGS=${BUILD_CPPFLAGS} LDFLAGS=${BUILD_LDFLAGS} AR=$(tc-getBUILD_AR) AS=$(tc-getBUILD_AS) CC=$(tc-getBUILD_CC) CPP=$(tc-getBUILD_CPP) CXX=$(tc-getBUILD_CXX) LD=$(tc-getBUILD_LD) NM=$(tc-getBUILD_NM) PKG_CONFIG=$(tc-getBUILD_PKG_CONFIG) RANLIB=$(tc-getBUILD_RANLIB) "$@"
}
tc-export () 
{ 
    local var;
    for var in "$@";
    do
        [[ $(type -t tc-get${var}) != "function" ]] && die "tc-export: invalid export variable '${var}'";
        eval tc-get${var} > /dev/null;
    done
}
tc-export_build_env () 
{ 
    tc-export "$@";
    : ${BUILD_CFLAGS:=-O1 -pipe};
    : ${BUILD_CXXFLAGS:=-O1 -pipe};
    : ${BUILD_CPPFLAGS:=};
    : ${BUILD_LDFLAGS:=};
    export BUILD_{C,CXX,CPP,LD}FLAGS
}
tc-getAR () 
{ 
    tc-getPROG AR ar "$@"
}
tc-getAS () 
{ 
    tc-getPROG AS as "$@"
}
tc-getBUILD_AR () 
{ 
    tc-getBUILD_PROG AR ar "$@"
}
tc-getBUILD_AS () 
{ 
    tc-getBUILD_PROG AS as "$@"
}
tc-getBUILD_CC () 
{ 
    tc-getBUILD_PROG CC gcc "$@"
}
tc-getBUILD_CPP () 
{ 
    tc-getBUILD_PROG CPP cpp "$@"
}
tc-getBUILD_CXX () 
{ 
    tc-getBUILD_PROG CXX g++ "$@"
}
tc-getBUILD_LD () 
{ 
    tc-getBUILD_PROG LD ld "$@"
}
tc-getBUILD_NM () 
{ 
    tc-getBUILD_PROG NM nm "$@"
}
tc-getBUILD_OBJCOPY () 
{ 
    tc-getBUILD_PROG OBJCOPY objcopy "$@"
}
tc-getBUILD_PKG_CONFIG () 
{ 
    tc-getBUILD_PROG PKG_CONFIG pkg-config "$@"
}
tc-getBUILD_PROG () 
{ 
    _tc-getPROG CBUILD "BUILD_$1 $1_FOR_BUILD HOST$1" "${@:2}"
}
tc-getBUILD_RANLIB () 
{ 
    tc-getBUILD_PROG RANLIB ranlib "$@"
}
tc-getBUILD_STRIP () 
{ 
    tc-getBUILD_PROG STRIP strip "$@"
}
tc-getCC () 
{ 
    tc-getPROG CC gcc "$@"
}
tc-getCPP () 
{ 
    tc-getPROG CPP cpp "$@"
}
tc-getCXX () 
{ 
    tc-getPROG CXX g++ "$@"
}
tc-getDLLWRAP () 
{ 
    tc-getPROG DLLWRAP dllwrap "$@"
}
tc-getF77 () 
{ 
    tc-getPROG F77 gfortran "$@"
}
tc-getFC () 
{ 
    tc-getPROG FC gfortran "$@"
}
tc-getGCJ () 
{ 
    tc-getPROG GCJ gcj "$@"
}
tc-getLD () 
{ 
    tc-getPROG LD ld "$@"
}
tc-getNM () 
{ 
    tc-getPROG NM nm "$@"
}
tc-getOBJCOPY () 
{ 
    tc-getPROG OBJCOPY objcopy "$@"
}
tc-getPKG_CONFIG () 
{ 
    tc-getPROG PKG_CONFIG pkg-config "$@"
}
tc-getPROG () 
{ 
    _tc-getPROG CHOST "$@"
}
tc-getRANLIB () 
{ 
    tc-getPROG RANLIB ranlib "$@"
}
tc-getRC () 
{ 
    tc-getPROG RC windres "$@"
}
tc-getSTRIP () 
{ 
    tc-getPROG STRIP strip "$@"
}
tc-has-openmp () 
{ 
    local base="${T}/test-tc-openmp";
    cat > "${base}.c"  <<-EOF
#include <omp.h>
int main() {
int nthreads, tid, ret = 0;
#pragma omp parallel private(nthreads, tid)
{
tid = omp_get_thread_num();
nthreads = omp_get_num_threads(); ret += tid + nthreads;
}
return ret;
}
EOF

    $(tc-getCC "$@") -fopenmp "${base}.c" -o "${base}" &>/dev/null;
    local ret=$?;
    rm -f "${base}"*;
    return ${ret}
}
tc-has-tls () 
{ 
    local base="${T}/test-tc-tls";
    cat > "${base}.c"  <<-EOF
int foo(int *i) {
static __thread int j = 0;
return *i ? j : *i;
}
EOF

    local flags;
    case $1 in 
        -s)
            flags="-S"
        ;;
        -c)
            flags="-c"
        ;;
        -l)

        ;;
        -*)
            die "Usage: tc-has-tls [-c|-l] [toolchain prefix]"
        ;;
    esac;
    : ${flags:=-fPIC -shared -Wl,-z,defs};
    [[ $1 == -* ]] && shift;
    $(tc-getCC "$@") ${flags} "${base}.c" -o "${base}" &>/dev/null;
    local ret=$?;
    rm -f "${base}"*;
    return ${ret}
}
tc-is-cross-compiler () 
{ 
    return $([[ ${CBUILD:-${CHOST}} != ${CHOST} ]])
}
tc-is-softfloat () 
{ 
    local CTARGET=${CTARGET:-${CHOST}};
    case ${CTARGET} in 
        bfin* | h8300*)
            echo "only"
        ;;
        *)
            if [[ ${CTARGET//_/-} == *-softfloat-* ]]; then
                echo "yes";
            else
                if [[ ${CTARGET//_/-} == *-softfp-* ]]; then
                    echo "softfp";
                else
                    echo "no";
                fi;
            fi
        ;;
    esac
}
tc-is-static-only () 
{ 
    local host=${CTARGET:-${CHOST}};
    return $([[ ${host} == *-mint* ]])
}
tc-ninja_magic_to_arch () 
{ 
    function ninj () 
    { 
        [[ ${type} == "kern" ]] && echo $1 || echo $2
    };
    local type=$1;
    local host=$2;
    [[ -z ${host} ]] && host=${CTARGET:-${CHOST}};
    case ${host} in 
        powerpc-apple-darwin*)
            echo ppc-macos
        ;;
        powerpc64-apple-darwin*)
            echo ppc64-macos
        ;;
        i?86-apple-darwin*)
            echo x86-macos
        ;;
        x86_64-apple-darwin*)
            echo x64-macos
        ;;
        sparc-sun-solaris*)
            echo sparc-solaris
        ;;
        sparcv9-sun-solaris*)
            echo sparc64-solaris
        ;;
        i?86-pc-solaris*)
            echo x86-solaris
        ;;
        x86_64-pc-solaris*)
            echo x64-solaris
        ;;
        powerpc-ibm-aix*)
            echo ppc-aix
        ;;
        mips-sgi-irix*)
            echo mips-irix
        ;;
        ia64w-hp-hpux*)
            echo ia64w-hpux
        ;;
        ia64-hp-hpux*)
            echo ia64-hpux
        ;;
        hppa*64*-hp-hpux*)
            echo hppa64-hpux
        ;;
        hppa*-hp-hpux*)
            echo hppa-hpux
        ;;
        i?86-pc-freebsd*)
            echo x86-freebsd
        ;;
        x86_64-pc-freebsd*)
            echo x64-freebsd
        ;;
        powerpc-unknown-openbsd*)
            echo ppc-openbsd
        ;;
        i?86-pc-openbsd*)
            echo x86-openbsd
        ;;
        x86_64-pc-openbsd*)
            echo x64-openbsd
        ;;
        i?86-pc-netbsd*)
            echo x86-netbsd
        ;;
        i?86-pc-interix*)
            echo x86-interix
        ;;
        i?86-pc-winnt*)
            echo x86-winnt
        ;;
        alpha*)
            echo alpha
        ;;
        arm*)
            echo arm
        ;;
        avr*)
            ninj avr32 avr
        ;;
        bfin*)
            ninj blackfin bfin
        ;;
        cris*)
            echo cris
        ;;
        hppa*)
            ninj parisc hppa
        ;;
        i?86*)
            if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -lt $(KV_to_int 2.6.24) || ${host} == *freebsd* ]]; then
                echo i386;
            else
                echo x86;
            fi
        ;;
        ia64*)
            echo ia64
        ;;
        m68*)
            echo m68k
        ;;
        mips*)
            echo mips
        ;;
        nios2*)
            echo nios2
        ;;
        nios*)
            echo nios
        ;;
        powerpc*)
            if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.16) ]]; then
                echo powerpc;
            else
                if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -eq $(KV_to_int 2.6.15) ]]; then
                    if [[ ${host} == powerpc64* ]] || [[ ${PROFILE_ARCH} == "ppc64" ]]; then
                        echo powerpc;
                    else
                        echo ppc;
                    fi;
                else
                    if [[ ${host} == powerpc64* ]]; then
                        echo ppc64;
                    else
                        if [[ ${PROFILE_ARCH} == "ppc64" ]]; then
                            ninj ppc64 ppc;
                        else
                            echo ppc;
                        fi;
                    fi;
                fi;
            fi
        ;;
        s390*)
            echo s390
        ;;
        sh64*)
            ninj sh64 sh
        ;;
        sh*)
            echo sh
        ;;
        sparc64*)
            ninj sparc64 sparc
        ;;
        sparc*)
            [[ ${PROFILE_ARCH} == "sparc64" ]] && ninj sparc64 sparc || echo sparc
        ;;
        vax*)
            echo vax
        ;;
        x86_64*freebsd*)
            echo amd64
        ;;
        x86_64*)
            if [[ ${type} == "kern" ]] && [[ $(KV_to_int ${KV}) -ge $(KV_to_int 2.6.24) ]]; then
                echo x86;
            else
                ninj x86_64 amd64;
            fi
        ;;
        *)
            echo unknown
        ;;
    esac
}
test-flag-CC () 
{ 
    test-flag-PROG "CC" "$1"
}
test-flag-CXX () 
{ 
    test-flag-PROG "CXX" "$1"
}
test-flag-F77 () 
{ 
    test-flag-PROG "F77" "$1"
}
test-flag-FC () 
{ 
    test-flag-PROG "FC" "$1"
}
test-flag-PROG () 
{ 
    local comp=$1;
    local flag=$2;
    [[ -z ${comp} || -z ${flag} ]] && return 1;
    local src=${T}/tf-${comp}-${SECONDS}.c;
    echo "main() {}" > "${src}";
    local PROG=$(tc-get${comp});
    ${PROG} "${flag}" -c -o "${src}.o" "${src}" > /dev/null 2>&1;
    local ret=$?;
    rm -f "${src}"{,.o};
    [[ ${ret} == 0 ]] && true || false
}
test-flags () 
{ 
    test-flags-CC "$@"
}
test-flags-CC () 
{ 
    test-flags-PROG "CC" "$@"
}
test-flags-CXX () 
{ 
    test-flags-PROG "CXX" "$@"
}
test-flags-F77 () 
{ 
    test-flags-PROG "F77" "$@"
}
test-flags-FC () 
{ 
    test-flags-PROG "FC" "$@"
}
test-flags-PROG () 
{ 
    local comp=$1;
    local flags;
    local x;
    shift;
    [[ -z ${comp} ]] && return 1;
    for x in "$@";
    do
        test-flag-${comp} "${x}" && flags="${flags}${flags:+ }${x}" || ewarn "removing ${x} because ${comp} rejected it";
    done;
    echo "${flags}";
    [[ -n ${flags} ]]
}
test_version_info () 
{ 
    if [[ $($(tc-getCC) --version 2>&1) == *$1* ]]; then
        return 0;
    else
        return 1;
    fi
}
use_if_iuse () 
{ 
    in_iuse $1 || return 1;
    use $1
}
usex () 
{ 
    use "$1" && echo "${2-yes}$4" || echo "${3-no}$5"
}
validate_desktop_entries () 
{ 
    if [[ -x "${EPREFIX}"/usr/bin/desktop-file-validate ]]; then
        einfo "Checking desktop entry validity";
        local directories="";
        for d in /usr/share/applications $@;
        do
            [[ -d ${ED}${d} ]] && directories="${directories} ${ED}${d}";
        done;
        if [[ -n ${directories} ]]; then
            for FILE in $(find ${directories} -name "*\.desktop" 							-not -path '*.hidden*' | sort -u 2>/dev/null);
            do
                local temp=$(desktop-file-validate ${FILE} | grep -v "warning:" | 								sed -e "s|error: ||" -e "s|${FILE}:|--|g" );
                [[ -n $temp ]] && elog ${temp/--/${FILE/${ED}/}:};
            done;
        fi;
        echo "";
    else
        einfo "Passing desktop entry validity check. Install dev-util/desktop-file-utils, if you want to help to improve Gentoo.";
    fi
}

[-- Attachment #3: gentoo-build.log --]
[-- Type: application/octet-stream, Size: 50449 bytes --]

 * Package:    dev-lang/perl-5.16.1
 * Repository: gentoo_prefix
 * USE:        amd64 bootstrap elibc_glibc kernel_linux prefix userland_GNU
 * FEATURES:   preserve-libs
>>> Unpacking source...
>>> Unpacking perl-5.16.1.tar.bz2 to /memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work
>>> Unpacking perl-5.16.1-1.tar.bz2 to /memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work
>>> Source unpacked in /memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work
>>> Preparing source in /memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1 ...
 * Applying patches from perl-5.16.1-1 ...
 *   gentoo/EUMM-RUNPATH.diff ...
 [ ok ]
 *   gentoo/EUMM_delete_packlist.diff ...
 [ ok ]
 *   gentoo/config_over.diff ...
 [ ok ]
 *   gentoo/cpan_definstalldirs.diff ...
 [ ok ]
 *   gentoo/cpanplus_definstalldirs.diff ...
 [ ok ]
 *   gentoo/create_libperl_soname.diff ...
 [ ok ]
 *   gentoo/drop_fstack_protector.diff ...
 [ ok ]
 *   gentoo/enc2xs.diff ...
 [ ok ]
 *   gentoo/mod_paths.diff ...
 [ ok ]
 *   gentoo/patchlevel.diff ...
 [ ok ]
 *   gentoo/aix_soname.diff ...
 [ ok ]
 *   gentoo/solaris-relocation.diff ...
 [ ok ]
 *   gentoo/opensolars_headers.diff ...
 [ ok ]
 *   gentoo/cleanup-paths.diff ...
 [ ok ]
 *   gentoo/usr_local.diff ...
 [ ok ]
 *   gentoo/hints_hpux.diff ...
 [ ok ]
 *   gentoo/darwin-cc-ld.diff ...
 [ ok ]
 *   gentoo/mint.diff ...
 [ ok ]
 *   gentoo/interix.diff ...
 [ ok ]
>>> Source prepared.
>>> Configuring source in /memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1 ...
 * searching libdirs for ELFCLASS64LE
 * found /lib64
 * found /usr/lib64
First let's make sure your kit is complete.  Checking...
Locating common programs...
Checking compatibility between /memex/linpengt/gentoo/bin/echo and builtin echo (if any)...
Symbolic links are supported.
Checking how to test for symbolic links...
You can test for symbolic links with 'test -h'.
Good, your tr supports [:lower:] and [:upper:] to convert case.
Using [:upper:] and [:lower:] to convert case.
3b1   	      convexos      epix   	    hpux   	 lynxos   	 next_4        riscos        super-ux        uts   
aix   	      cxux   	    esix4   	    i386   	 midnightbsd     nonstopux     sco   	     svr4   	     uwin   
aix_3         cygwin        fps   	    interix   	 mips   	 openbsd       sco_2_3_0     svr5   	     vmesa   
aix_4         darwin        freebsd   	    irix_4   	 mirbsd   	 opus          sco_2_3_1     ti1500   	     vos   
altos486      dcosx   	    freemint        irix_5   	 mpc   		 os2           sco_2_3_2     titanos   
amigaos       dec_osf       genix   	    irix_6   	 mpeix   	 os390         sco_2_3_3     ultrix_4   
atheos        dgux   	    gnu   	    irix_6_0     ncr_tower   	 os400         sco_2_3_4     umips   
aux_3         dos_djgpp     gnukfreebsd     irix_6_1     netbsd   	 posix-bc      solaris_2     unicos   
beos          dragonfly     gnuknetbsd      isc   	 newsos4   	 powerux       stellar       unicosmk   
bsdos         dynix   	    greenhills      isc_2   	 next_3   	 qnx           sunos_4_0     unisysdynix   
catamount     dynixptx      haiku   	    linux   	 next_3_0   	 rhapsody      sunos_4_1     utekv   
Which of these apply, if any? [linux]  

You appear to have ELF support.  I'll try to use it for dynamic loading.
If dynamic loading doesn't work, read hints/linux.sh for further information.
Operating system name? [linux]  
Operating system version? [2.6.18-92.1.13.el5]  
Installation prefix to use? (~name ok) [/memex/linpengt/gentoo/usr]  
AFS does not seem to be running...
What installation prefix should I use for installing files? (~name ok) [/memex/linpengt/gentoo/usr]  
Getting the current patchlevel...
Build a threading Perl? [n]  
Build Perl for multiplicity? [n]  
Use which C compiler? [x86_64-pc-linux-gnu-gcc]  
Checking for GNU cc in disguise and/or its version number...
Now, how can we feed standard input to your C preprocessor...
Directories to use for library searches? [/memex/linpengt/gentoo/lib /memex/linpengt/gentoo/usr/lib /lib64 /usr/lib64]  
What is the file extension used for shared libraries? [so]  
Build Perl for SOCKS? [n]  
Try to use long doubles if available? [n]  
Checking for optional libraries...
What libraries to use? [-lnsl -ldb -ldl -lm -lcrypt -lutil -lc]  
What optimizer/debugger flag should be used? [-O2 -pipe]  
Any additional cc flags? [-fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include]  
Let me guess what the preprocessor flags are...
Any additional ld flags (NOT including libraries)?
[-L/memex/linpengt/gentoo/usr/lib -Wl,-rpath=/memex/linpengt/gentoo/usr/lib -L/memex/linpengt/gentoo/lib -Wl,-rpath=/memex/linpengt/gentoo/lib -L/memex/linpengt/gentoo/tmp/usr/lib -Wl,-rpath=/memex/linpengt/gentoo/tmp/usr/lib]  
Checking your choice of C compiler and flags for coherency...
Computing filename position in cpp output for #include directives...
<stdlib.h> found.
Checking to see how big your integers are...
Checking to see if you have long long...
Checking to see how big your long longs are...
<inttypes.h> found.
Checking to see if you have int64_t...
Checking which 64-bit integer type we could use...
We could use 'long' for 64-bit integers.
Try to use maximal 64-bit support, if available? [y]  
Checking to see how big your double precision numbers are...
Checking to see if you have long double...
Checking to see how big your long doubles are...
What is your architecture name [x86_64-linux]  
This architecture is naturally 64-bit, not changing architecture name.
Pathname where the public executables will reside? (~name ok) [/memex/linpengt/gentoo/usr/bin]  
Use relocatable @INC? [n]  
Pathname where the private library files will reside? (~name ok) [/memex/linpengt/gentoo/usr/lib/perl5/5.16.1]  
Where do you want to put the public architecture-dependent libraries? (~name ok)
[/memex/linpengt/gentoo/usr/lib/perl5/5.16.1/x86_64-linux]  
Other username to test security of setuid scripts with? [none]  
Well, the recommended value is *not* secure.
Does your kernel have *secure* setuid scripts? [n]  
Installation prefix to use for add-on modules and utilities? (~name ok) [/memex/linpengt/gentoo/usr/local]  
Pathname for the site-specific library files? (~name ok) [/memex/linpengt/gentoo/usr/local/lib/perl5/5.16.1]  
List of earlier versions to include in @INC? [5.16.0/x86_64-linux 5.16.0 ]  
<malloc/malloc.h> NOT found.
<malloc.h> found.
Checking to see how well your C compiler groks the void type...
Good.  It appears to support void to the level perl5 wants.
Checking to see how big your pointers are...
Do you wish to wrap malloc calls to protect against potential overflows? [y]  
Do you wish to attempt to use the malloc that comes with perl5? [n]  
Your system wants malloc to return 'void *', it would seem.
Your system uses void free(), it would seem.
Pathname for the site-specific architecture-dependent library files? (~name ok)
[/memex/linpengt/gentoo/usr/local/lib/perl5/5.16.1/x86_64-linux]  
Do you want to configure vendor-specific add-on directories? [y]  
Installation prefix to use for vendor-supplied add-ons? (~name ok) [/memex/linpengt/gentoo/usr]  
Pathname for the vendor-supplied library files? (~name ok) [/memex/linpengt/gentoo/usr/lib/perl5/vendor_perl/5.16.1]  
Pathname for vendor-supplied architecture-dependent files? (~name ok)
[/memex/linpengt/gentoo/usr/lib/perl5/vendor_perl/5.16.1/x86_64-linux]  
Colon-separated list of additional directories for perl to search? [none]  
Checking out function prototypes...
Support DTrace if available? [n]  
Install any extra modules (y or n)? [n]  
Directory for the main Perl5 html pages? (~name ok) [none]  
Directory for the Perl5 module html pages? (~name ok) [none]  
Do you want to install perl as /usr/bin/perl? [n]  
Checking for GNU C Library...
Shall I use /memex/linpengt/gentoo/usr/bin/nm to extract C symbols from the libraries? [n]  
<dld.h> NOT found.
Checking for C++...
dlopen() found.
<unistd.h> found.
Do you wish to use dynamic loading? [y]  
Source file to use for dynamic loading [ext/DynaLoader/dl_dlopen.xs]  
Any special flags to pass to x86_64-pc-linux-gnu-gcc -c to compile shared library modules? [-fPIC]  
What command should be used to create dynamic libraries? [x86_64-pc-linux-gnu-gcc]  
Any special flags to pass to x86_64-pc-linux-gnu-gcc to create a dynamically loaded library?
[-shared -O2 -pipe -L/memex/linpengt/gentoo/usr/lib -L/memex/linpengt/gentoo/lib -L/memex/linpengt/gentoo/tmp/usr/lib]  
Any special flags to pass to x86_64-pc-linux-gnu-gcc to use dynamic linking? [-Wl,-E]  
ld supports scripting
Build a shared libperl.so (y/n) [y]  
What name do you want to give to the shared libperl? [libperl.so.5.16.1]  
System manual is in /usr/share/man/man1.
Where do the main Perl5 manual pages (source) go? (~name ok) [/memex/linpengt/gentoo/usr/share/man/man1]  
What suffix should be used for the main Perl5 man pages? [1]  
You can have filenames longer than 14 characters.
Where do the perl5 library man pages (source) go? (~name ok) [/memex/linpengt/gentoo/usr/share/man/man3]  
What suffix should be used for the perl5 library man pages? [3pm]  
Figuring out host name...
Your host name appears to be "localhost". Right? [y]  
What is your domain name? [.localdomain]  
What is your e-mail address? [Gentoo@localhost.localdomain]  
Perl administrator e-mail address [root@localhost]  
Do you want to install only the version-specific parts of perl? [n]  
What shall I put after the #! to start up perl ("none" to not use #!)? [/memex/linpengt/gentoo/usr/bin/perl]  

WARNING:  Some systems limit the #! command to 32 characters.
If you experience difficulty running Perl scripts with #!, try
installing Perl in a directory with a shorter pathname.

Where do you keep publicly executable scripts? (~name ok) [/memex/linpengt/gentoo/usr/bin]  
Pathname where the add-on public executables should be installed? (~name ok) [/memex/linpengt/gentoo/usr/local/bin]  
Directory /memex/linpengt/gentoo/usr/local/bin doesn't exist.  Use that name anyway? [y]  
Pathname where the site-specific html pages should be installed? (~name ok) [none]  
Pathname where the site-specific library html pages should be installed? (~name ok) [none]  
Pathname where the site-specific manual pages should be installed? (~name ok) [/memex/linpengt/gentoo/usr/local/man/man1]  
Pathname where the site-specific library manual pages should be installed? (~name ok)
[/memex/linpengt/gentoo/usr/local/man/man3]  
Pathname where add-on public executable scripts should be installed? (~name ok) [/memex/linpengt/gentoo/usr/local/bin]  
Use the "fast stdio" if available? [n]  
off_t found.
Checking to see how big your file offsets are...
fpos_t found.
Checking the size of fpos_t...
Try to understand large files, if available? [y]  
Rechecking to see how big your file offsets are...
Rechecking the size of fpos_t... 16 bytes.
Pathname for the vendor-supplied executables directory? (~name ok) [/memex/linpengt/gentoo/usr/bin]  
Pathname for the vendor-supplied html pages? (~name ok) [none]  
Pathname for the vendor-supplied html pages? (~name ok) [none]  
Pathname for the vendor-supplied manual section 1 pages? (~name ok) [/memex/linpengt/gentoo/usr/share/man/man1]  
Pathname for the vendor-supplied manual section 3 pages? (~name ok) [/memex/linpengt/gentoo/usr/share/man/man3]  
Pathname for the vendor-supplied scripts directory? (~name ok) [/memex/linpengt/gentoo/usr/bin]  
Using <string.h> instead of <strings.h>.
qgcvt() found.
Checking how to print long doubles...
gconvert NOT found.
gcvt() found.
I'll use gcvt to convert floats into a string.
fwalk() NOT found.
access() found.
<sys/file.h> defines the *_OK access constants.
accessx() NOT found.
aintl() NOT found.
alarm() found.
ctime64() NOT found.
localtime64() NOT found.
gmtime64() NOT found.
mktime64() NOT found.
difftime64() NOT found.
asctime64() NOT found.
<pthread.h> found.
<sys/types.h> found.
<sys/select.h> found.
Testing to see if we should include <time.h>, <sys/time.h> or both.
We'll include <time.h>.
We'll include <sys/time.h>.
Checking to see if your struct tm has tm_zone field...
Checking to see if your struct tm has tm_gmtoff field...
asctime_r() found.
atolf() NOT found.
atoll() found.
Checking whether your compiler can handle __attribute__((format)) ...
Checking whether your compiler allows __printf__ format to be null ...
Checking whether your compiler can handle __attribute__((malloc)) ...
Checking whether your compiler can handle __attribute__((nonnull(1))) ...
Checking whether your compiler can handle __attribute__((noreturn)) ...
Checking whether your compiler can handle __attribute__((pure)) ...
Checking whether your compiler can handle __attribute__((unused)) ...
Checking whether your compiler can handle __attribute__((deprecated)) ...
Checking whether your compiler can handle __attribute__((warn_unused_result)) ...
bcmp() found.
bcopy() found.
getpgrp() found.
You have to use getpgrp() instead of getpgrp(pid).
setpgrp() found.
You have to use setpgrp() instead of setpgrp(pid,pgrp).
Checking whether your compiler can handle __builtin_choose_expr ...
Checking whether your compiler can handle __builtin_expect ...
bzero() found.
<stdarg.h> found.
<varargs.h> found.
We'll include <stdarg.h> to get va_dcl definition.
You have <stdarg.h> and <stdlib.h>, so checking for C99 variadic macros.
You have C99 variadic macros.
You have void (*signal())().
Checking whether your C compiler can cast large floats to int32.
Checking whether your C compiler can cast negative float to unsigned.
vprintf() found.
Your vsprintf() returns (int).
chown() found.
chroot() found.
chsize() NOT found.
class() NOT found.
clearenv() found.
Hmm... Looks like you have Berkeley networking support.
socketpair() found.
Checking the availability sa_len in the sock struct ...
Checking the availability struct sockaddr_in6 ...
Checking the availability sin6_scope_id in struct sockaddr_in6 ...
Checking the availability struct ipv6_mreq ...
Checking the availability of certain socket constants...
<sys/uio.h> found.
Checking to see if your system supports struct cmsghdr...
Checking to see if your C compiler knows about "const"...
copysignl() found.
crypt() found.
<crypt.h> found.
crypt_r() found.
Hmm.  Based on the hints in hints/linux.sh, 
the recommended value for $d_csh on this machine was "undef"!
    Keep the recommended value? [y]  
ctermid() found.
ctermid_r() NOT found.
ctime_r() found.
cuserid() found.
<limits.h> found.
<float.h> found.
DBL_DIG found.
dbmclose() NOT found.
difftime() found.
<dirent.h> found.
Your directory entries are struct dirent.
Your directory entry does not know about the d_namlen field.
Checking to see if DIR has a dd_fd member variable
<sys/dir.h> found.
<sys/ndir.h> NOT found.
dirfd() found.
dlerror() found.
<dlfcn.h> found.
What is the extension of dynamically loaded modules [so]  
Checking whether your dlsym() needs a leading underscore ...
dlsym doesn't need a leading underscore.
drand48_r() found.
dup2() found.
eaccess() found.
endgrent() found.
<grp.h> found.
endgrent_r() NOT found.
endhostent() found.
<netdb.h> found.
endhostent_r() NOT found.
endnetent() found.
endnetent_r() NOT found.
endprotoent() found.
endprotoent_r() NOT found.
endpwent() found.
<pwd.h> found.
endpwent_r() NOT found.
endservent() found.
endservent_r() NOT found.
<sys/file.h> defines the O_* constants...
and you have the 3 argument form of open().
<sys/file.h> found.
We'll be including <sys/file.h>.
<fcntl.h> found.
We don't need to include <fcntl.h> if we include <sys/file.h>.
fork() found.
pipe() found.
Figuring out the flag used by open() for non-blocking I/O...
Let's see what value errno gets from read() on a O_NONBLOCK file...
Checking how std your stdio is...
fchdir() found.
fchmod() found.
fchown() found.
fcntl() found.
Well, your system has some sort of fd_set available...
and you have the normal fd_set macros.
fgetpos() found.
finite() found.
finitel() found.
flock() found.
fp_class() NOT found.
pathconf() found.
fpathconf() found.
fpclass() NOT found.
fpclassify() NOT found.
fpclassl() NOT found.
Checking to see if you have fpos64_t...
frexpl() found.
<sys/param.h> found.
<sys/mount.h> found.
Checking to see if your system supports struct fs_data...
fseeko() found.
fsetpos() found.
fstatfs() found.
statvfs() found.
fstatvfs() found.
fsync() found.
ftello() found.
Checking if you have a working futimes()
Yes, you have
<ndbm.h> NOT found.
<gdbm/ndbm.h> NOT found.
<gdbm-ndbm.h> NOT found.
getaddrinfo() found.
getcwd() found.
getespwnam() NOT found.
getfsstat() NOT found.
getgrent() found.
getgrent_r() found.
getgrgid_r() found.
getgrnam_r() found.
gethostbyaddr() found.
gethostbyname() found.
gethostent() found.
gethostname() found.
uname() found.
Shall I ignore gethostname() from now on? [n]  
gethostbyaddr_r() found.
gethostbyname_r() found.
gethostent_r() found.
getitimer() found.
getlogin() found.
getlogin_r() found.
getmnt() NOT found.
getmntent() found.
getnameinfo() found.
getnetbyaddr() found.
getnetbyname() found.
getnetent() found.
getnetbyaddr_r() found.
getnetbyname_r() found.
getnetent_r() found.
getpagesize() found.
getprotobyname() found.
getprotobynumber() found.
getprotoent() found.
getpgid() found.
getpgrp2() NOT found.
getppid() found.
getpriority() found.
getprotobyname_r() found.
getprotobynumber_r() found.
getprotoent_r() found.
getprpwnam() NOT found.
getpwent() found.
getpwent_r() found.
getpwnam_r() found.
getpwuid_r() found.
getservbyname() found.
getservbyport() found.
getservent() found.
getservbyname_r() found.
getservbyport_r() found.
getservent_r() found.
getspnam() found.
<shadow.h> found.
getspnam_r() found.
gettimeofday() found.
gmtime_r() found.
hasmntopt() found.
<netinet/in.h> found.
<arpa/inet.h> found.
htonl() found.
ilogbl() found.
strchr() found.
inet_aton() found.
inet_ntop() found.
inet_pton() found.
isascii() found.
isblank() found.
isfinite() NOT found.
isinf() found.
isnan() found.
isnanl() found.
killpg() found.
lchown() found.
LDBL_DIG found.
<math.h> found.
Checking to see if your libm supports _LIB_VERSION...
Yes, it does (2)
link() found.
localtime_r() found.
localeconv() found.
lockf() found.
lstat() found.
madvise() found.
malloc_size() NOT found.
malloc_good_size() NOT found.
mblen() found.
mbstowcs() found.
mbtowc() found.
memchr() found.
memcmp() found.
memcpy() found.
memmove() found.
memset() found.
mkdir() found.
mkdtemp() found.
mkfifo() found.
mkstemp() found.
mkstemps() NOT found.
mktime() found.
<sys/mman.h> found.
mmap() found.
and it returns (void *).
sqrtl() found.
scalbnl() found.
modfl() found.
Your modfl() seems okay for large values.
mprotect() found.
msgctl() found.
msgget() found.
msgsnd() found.
msgrcv() found.
You have the full msg*(2) library.
Checking to see if your system supports struct msghdr...
msync() found.
munmap() found.
nice() found.
<langinfo.h> found.
nl_langinfo() found.
Checking to see if your C compiler knows about "volatile"...
Choosing the C types to be used for Perl's internal types...
Checking how many bits of your UVs your NVs can preserve...
Checking to find the largest integer value your NVs can hold...
The largest integer your NVs can preserve is equal to 256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0
Checking whether NV 0.0 is all bits zero in memory...
0.0 is represented as all bits zero in memory
Checking to see if you have off64_t...
pause() found.
poll() found.
prctl() found.
readlink() found.
vfork() found.
Do you still want to use vfork()? [n]  
pthread_attr_setscope() found.
random_r() found.
readdir() found.
seekdir() found.
telldir() found.
rewinddir() found.
readdir64_r() found.
readdir_r() found.
readv() found.
recvmsg() found.
rename() found.
rmdir() found.
<memory.h> found.
Checking if your memcmp() can compare relative magnitude...
select() found.
semctl() found.
semget() found.
semop() found.
You have the full sem*(2) library.
You do not have union semun in <sys/sem.h>.
You can use union semun for semctl IPC_STAT.
You can also use struct semid_ds* for semctl IPC_STAT.
sendmsg() found.
setegid() found.
seteuid() found.
setgrent() found.
setgrent_r() NOT found.
sethostent() found.
sethostent_r() NOT found.
setitimer() found.
setlinebuf() found.
setlocale() found.
<locale.h> found.
setlocale_r() NOT found.
setnetent() found.
setnetent_r() NOT found.
setprotoent() found.
setpgid() found.
setpgrp2() NOT found.
setpriority() found.
setproctitle() NOT found.
setprotoent_r() NOT found.
setpwent() found.
setpwent_r() NOT found.
setregid() found.
setresgid() found.
setreuid() found.
setresuid() found.
setrgid() NOT found.
setruid() NOT found.
setservent() found.
setservent_r() NOT found.
setsid() found.
setvbuf() found.
<sfio.h> NOT found.
shmctl() found.
shmget() found.
shmat() found.
and it returns (void *).
shmdt() found.
You have the full shm*(2) library.
sigaction() found.
<sunmath.h> NOT found.
Checking to see if you have signbit() available to work on double... Yes.
sigprocmask() found.
POSIX sigsetjmp found.
snprintf() found.
vsnprintf() found.
sockatmark() found.
socks5_init() NOT found.
Checking whether sprintf returns the length of the string...
sprintf returns the length of the string (as ANSI says it should)
srand48_r() found.
srandom_r() found.
<sys/stat.h> found.
Checking to see if your struct stat has st_blocks field...
<sys/vfs.h> found.
<sys/statfs.h> found.
Checking to see if your system supports struct statfs...
Checking to see if your struct statfs has f_flags field...
Your compiler supports static __inline__.
Checking how to access stdio streams by file descriptor number...
I can't figure out how to access stdio streams by file descriptor number.
strcoll() found.
Checking to see if your C compiler can copy structs...
strerror() found.
strerror_r() found.
strftime() found.
strlcat() NOT found.
strlcpy() NOT found.
strtod() found.
strtol() found.
strtold() found.
strtoll() found.
strtoq() found.
strtoul() found.
strtoull() found.
strtouq() found.
strxfrm() found.
symlink() found.
syscall() found.
sysconf() found.
system() found.
tcgetpgrp() found.
tcsetpgrp() found.
time() found.
time_t found.
timegm() found.
<sys/times.h> found.
times() found.
clock_t found.
tmpnam_r() found.
truncate() found.
ttyname_r() found.
tzname[] found.
(Testing for character data alignment may crash the test.  That's okay.)
It seems that you must access character data in an aligned manner.
ualarm() found.
umask() found.
unordered() NOT found.
unsetenv() found.
usleep() found.
ustat() found.
closedir() found.
Checking whether closedir() returns a status...
wait4() found.
waitpid() found.
wcstombs() found.
wctomb() found.
writev() found.
Checking alignment constraints...
Doubles must be aligned on a how-many-byte boundary? [8]  
Checking how long a character is (in bits)...
What is the length of a character (in bits)? [8]  
Checking to see how your cpp does stuff like concatenate tokens...
Oh!  Smells like ANSI's been here.
<db.h> found.
Hmm.  Based on the hints in hints/linux.sh, 
the recommended value for $i_db on this machine was "undef"!
    Keep the recommended value? [y]  
Looking for a random number function...
Good, found drand48().
Use which function to generate random numbers? [drand48]  
Determining whether or not we are on an EBCDIC system...
Nope, no EBCDIC, probably ASCII or some ISO Latin. Or UTF-8.
Checking how to flush all pending stdio output...
Your fflush(NULL) works okay for output streams.
Let's see if it clobbers input pipes...
fflush(NULL) seems to behave okay with input streams.
Checking the size of gid_t...
Checking the sign of gid_t...
Checking how to print 64-bit integers...
Checking the format strings to be used for Perl's internal types...
Checking the format string to be used for gids...
getgroups() found.
setgroups() found.
What type pointer is the second argument to getgroups() and setgroups()? [gid_t]  
Build Perl with MAD? [n]  
Checking if your /memex/linpengt/gentoo/usr/bin/make program sets $(MAKE)...
mode_t found.
It seems that va_copy() or similar will be needed.
size_t found.
What is the type for the 1st argument to gethostbyaddr? [char *]  
What is the type for the 2nd argument to gethostbyaddr? [size_t]  
What pager is used on your system? [/usr/bin/less -R]  
File /usr/bin/less -R doesn't exist.  Use that name anyway? [y]  
pid_t found.
Checking how to generate random libraries on your machine...
<values.h> found.
Sizeof time_t = 8
Your select() operates on 64 bits at a time.
Generating a list of signal names and numbers...
Checking the size of size_t...
Checking to see if you have socklen_t...
<socks.h> NOT found.
I'll be using ssize_t for functions returning a byte count.
Checking the size of st_ino...
Checking the sign of st_ino...
Your stdio uses signed chars.
Checking the size of uid_t...
Checking the sign of uid_t...
Checking the format string to be used for uids...
Determining whether we can use sysctl with KERN_PROC_PATHNAME to find executing program...
try.c: In function 'main':
try.c:22: error: 'KERN_PROC' undeclared (first use in this function)
try.c:22: error: (Each undeclared identifier is reported only once
try.c:22: error: for each function it appears in.)
try.c:23: error: 'KERN_PROC_PATHNAME' undeclared (first use in this function)
I'm unable to compile the test program.
I'll assume no sysctl with KERN_PROC_PATHNAME here.
Determining whether we can use _NSGetExecutablePath to find executing program...
try.c:4:25: error: mach-o/dyld.h: No such file or directory
try.c: In function 'main':
try.c:13: error: 'uint32_t' undeclared (first use in this function)
try.c:13: error: (Each undeclared identifier is reported only once
try.c:13: error: for each function it appears in.)
try.c:13: error: expected ';' before 'size'
try.c:25: error: 'size' undeclared (first use in this function)
I'm unable to compile the test program.
I'll assume no _NSGetExecutablePath here.
It appears we'll be able to prototype varargs functions.
Which compiler compiler (yacc or bison -y) shall I use? [yacc]  
<assert.h> found.
<fp.h> NOT found.
<fp_class.h> NOT found.
<gdbm.h> NOT found.
<ieeefp.h> NOT found.
<libutil.h> NOT found.
<mntent.h> found.
<net/errno.h> NOT found.
<netinet/tcp.h> found.
<poll.h> found.
<prot.h> NOT found.
Guessing which symbols your C compiler and preprocessor define...
tcsetattr() found.
You have POSIX termios.h... good!
<stdbool.h> found.
<stddef.h> found.
<sys/access.h> NOT found.
<sys/filio.h> NOT found.
<sys/ioctl.h> found.
<syslog.h> found.
<sys/mode.h> NOT found.
<sys/poll.h> found.
<sys/resource.h> found.
<sys/security.h> NOT found.
<sys/statvfs.h> found.
<sys/un.h> found.
<sys/utsname.h> found.
<sys/wait.h> found.
<ustat.h> found.
<utime.h> found.
Looking for extensions...
You have requested that certain extensions be ignored...
What extensions do you wish to load dynamically?
[B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate Unicode/Normalize XS/APItest XS/Typemap arybase attributes mro re threads threads/shared]  
What extensions do you wish to load statically? [none]  
I see a config.over file.  Do you wish to load it? [y]  
Stripping down executable paths...
Creating config.sh...
Doing variable substitutions on .SH files...
Extracting config.h (with variable substitutions)
Extracting cflags (with variable substitutions)
Not re-extracting config.h
Extracting makedepend (with variable substitutions)
Extracting Makefile (with variable substitutions)
Extracting myconfig (with variable substitutions)
Extracting pod/Makefile (with variable substitutions)
Extracting Policy.sh (with variable substitutions)
Extracting runtests (with variable substitutions)
Extracting utils/Makefile (with variable substitutions)
Extracting x2p/cflags (with variable substitutions)
Extracting x2p/Makefile (with variable substitutions)
Run make depend now? [y]  
sh ./makedepend MAKE=make
make[1]: Entering directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1'
rm -f opmini.c
/memex/linpengt/gentoo/bin/ln -s op.c opmini.c
rm -f perlmini.c
/memex/linpengt/gentoo/bin/ln -s perl.c perlmini.c
echo av.c scope.c op.c doop.c doio.c dump.c gv.c hv.c mg.c reentr.c mro.c perl.c perly.c pp.c pp_hot.c pp_ctl.c pp_sys.c regcomp.c regexec.c utf8.c sv.c taint.c toke.c util.c deb.c run.c universal.c pad.c globals.c keywords.c perlio.c perlapi.c numeric.c mathoms.c locale.c pp_pack.c pp_sort.c   miniperlmain.c opmini.c perlmini.c | tr ' ' '\n' >.clist
make[1]: Leaving directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1'
Finding dependencies for av.o.
Finding dependencies for scope.o.
Finding dependencies for op.o.
Finding dependencies for doop.o.
Finding dependencies for doio.o.
Finding dependencies for dump.o.
Finding dependencies for gv.o.
Finding dependencies for hv.o.
Finding dependencies for mg.o.
Finding dependencies for reentr.o.
Finding dependencies for mro.o.
Finding dependencies for perl.o.
Finding dependencies for perly.o.
Finding dependencies for pp.o.
Finding dependencies for pp_hot.o.
Finding dependencies for pp_ctl.o.
Finding dependencies for pp_sys.o.
Finding dependencies for regcomp.o.
Finding dependencies for regexec.o.
Finding dependencies for utf8.o.
Finding dependencies for sv.o.
Finding dependencies for taint.o.
Finding dependencies for toke.o.
Finding dependencies for util.o.
Finding dependencies for deb.o.
Finding dependencies for run.o.
Finding dependencies for universal.o.
Finding dependencies for pad.o.
Finding dependencies for globals.o.
Finding dependencies for keywords.o.
Finding dependencies for perlio.o.
Finding dependencies for perlapi.o.
Finding dependencies for numeric.o.
Finding dependencies for mathoms.o.
Finding dependencies for locale.o.
Finding dependencies for pp_pack.o.
Finding dependencies for pp_sort.o.
Finding dependencies for miniperlmain.o.
Finding dependencies for opmini.o.
Finding dependencies for perlmini.o.
make[1]: Entering directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1'
echo Makefile.SH cflags.SH config_h.SH makedepend.SH myconfig.SH pod/Makefile.SH | tr ' ' '\n' >.shlist
make[1]: Leaving directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1'
Updating makefile...
cd x2p; make depend
make[1]: Entering directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1/x2p'
sh ../makedepend MAKE=make
make[2]: Entering directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1/x2p'
echo hash.c str.c util.c walk.c | tr ' ' '\n' >.clist
make[2]: Leaving directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1/x2p'
Finding dependencies for hash.o.
Finding dependencies for str.o.
Finding dependencies for util.o.
Finding dependencies for walk.o.
make[2]: Entering directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1/x2p'
echo Makefile.SH cflags.SH | tr ' ' '\n' >.shlist
make[2]: Leaving directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1/x2p'
Updating makefile...
make[1]: Leaving directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1/x2p'
Now you must run 'make'.

If you compile perl5 on a different machine or from a different object
directory, copy the Policy.sh file from this object directory to the
new one before you run Configure -- this will help you with most of
the policy defaults.

>>> Source configured.
>>> Compiling source in /memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1 ...
make 
`sh  cflags "optimize='-O2 -pipe'" perlmini.o` -fPIC -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB perlmini.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" opmini.o` -fPIC -DPERL_IS_MINIPERL -DPERL_EXTERNAL_GLOB opmini.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" miniperlmain.o` -fPIC miniperlmain.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" gv.o` -fPIC gv.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" toke.o` -fPIC toke.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" perly.o` -fPIC perly.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" pad.o` -fPIC pad.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" regcomp.o` -fPIC regcomp.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
regcomp.c: In function 'S_regclass':
regcomp.c:10944: warning: ignoring return value of 'get_regex_charset', declared with attribute warn_unused_result
`sh  cflags "optimize='-O2 -pipe'" dump.o` -fPIC dump.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" util.o` -fPIC util.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" mg.o` -fPIC mg.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" reentr.o` -fPIC reentr.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" mro.o` -fPIC mro.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" keywords.o` -fPIC keywords.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" hv.o` -fPIC hv.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" av.o` -fPIC av.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" run.o` -fPIC run.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" pp_hot.o` -fPIC pp_hot.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" sv.o` -fPIC sv.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" pp.o` -fPIC pp.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" scope.o` -fPIC scope.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" pp_ctl.o` -fPIC pp_ctl.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" pp_sys.o` -fPIC pp_sys.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" doop.o` -fPIC doop.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" doio.o` -fPIC doio.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" regexec.o` -fPIC regexec.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" utf8.o` -fPIC utf8.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" taint.o` -fPIC taint.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" deb.o` -fPIC deb.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" universal.o` -fPIC universal.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" generate_uudmap.o` -fPIC generate_uudmap.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
x86_64-pc-linux-gnu-gcc -o generate_uudmap -L/memex/linpengt/gentoo/usr/lib -Wl,-rpath=/memex/linpengt/gentoo/usr/lib -L/memex/linpengt/gentoo/lib -Wl,-rpath=/memex/linpengt/gentoo/lib -L/memex/linpengt/gentoo/tmp/usr/lib -Wl,-rpath=/memex/linpengt/gentoo/tmp/usr/lib generate_uudmap.o -lnsl -ldl -lm -lcrypt -lutil -lc 
./generate_uudmap uudmap.h bitcount.h mg_data.h
`sh  cflags "optimize='-O2 -pipe'" globals.o` -fPIC globals.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" perlio.o` -fPIC perlio.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" perlapi.o` -fPIC perlapi.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" numeric.o` -fPIC numeric.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" mathoms.o` -fPIC mathoms.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" locale.o` -fPIC locale.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" pp_pack.o` -fPIC pp_pack.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
`sh  cflags "optimize='-O2 -pipe'" pp_sort.o` -fPIC pp_sort.c
	  CCCMD =  x86_64-pc-linux-gnu-gcc -DPERL_CORE -c -fno-strict-aliasing -pipe -I/memex/linpengt/gentoo/usr/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64  -std=c89 -O2 -pipe  -Wall -ansi -W -Wextra -Wdeclaration-after-statement -Wendif-labels -Wc++-compat -Wwrite-strings 
LD_LIBRARY_PATH=/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1 x86_64-pc-linux-gnu-gcc -L/memex/linpengt/gentoo/usr/lib -Wl,-rpath=/memex/linpengt/gentoo/usr/lib -L/memex/linpengt/gentoo/lib -Wl,-rpath=/memex/linpengt/gentoo/lib -L/memex/linpengt/gentoo/tmp/usr/lib -Wl,-rpath=/memex/linpengt/gentoo/tmp/usr/lib -o miniperl \
    perlmini.o opmini.o miniperlmain.o   gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o keywords.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o   -lnsl -ldl -lm -lcrypt -lutil -lc 
LD_LIBRARY_PATH=/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1  ./miniperl -w -Ilib -MExporter -e '<?>' || make minitest
/memex/linpengt/gentoo/bin/ln -s perldelta.pod pod/perl5161delta.pod
LD_LIBRARY_PATH=/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1  ./miniperl -Ilib autodoc.pl
LD_LIBRARY_PATH=/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1  ./miniperl -Ilib -Idist/Cwd -Idist/Cwd/lib -Idist/Carp/lib pod/perlmodlib.PL -q
LD_LIBRARY_PATH=/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1  ./miniperl -Ilib make_patchnum.pl
Updating 'git_version.h' and 'lib/Config_git.pl'
LD_LIBRARY_PATH=/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1  ./miniperl -Ilib configpm
written lib/Config.pod
updated lib/Config.pm
updated lib/Config_heavy.pl
LD_LIBRARY_PATH=/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1  ./miniperl -Ilib write_buildcustomize.pl >lib/buildcustomize.pl
LD_LIBRARY_PATH=/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1  ./miniperl -Ilib make_ext.pl cpan/Archive-Extract/pm_to_blib MAKE=make LIBPERL_A=libperl.so.5.16.1
	Making Archive::Extract (all)

Creating Makefile.PL in cpan/Archive-Extract for Archive::Extract

Running Makefile.PL in cpan/Archive-Extract
../../miniperl -I../../lib Makefile.PL INSTALLDIRS=perl INSTALLMAN1DIR=none INSTALLMAN3DIR=none PERL_CORE=1 LIBPERL_A=libperl.so.5.16.1
Writing Makefile for Archive::Extract
make[1]: Entering directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1/cpan/Archive-Extract'
Makefile out-of-date with respect to Makefile.PL
Cleaning current config before rebuilding Makefile...
make -f Makefile.old clean > /dev/null 2>&1
../../miniperl "-I../../lib" "-I../../lib" Makefile.PL "INSTALLDIRS=perl" "INSTALLMAN1DIR=none" "INSTALLMAN3DIR=none" "PERL_CORE=1" "LIBPERL_A=libperl.so.5.16.1"
Writing Makefile for Archive::Extract
==> Your Makefile has been rebuilt. <==
==> Please rerun the make command.  <==
false
make[1]: *** [Makefile] Error 1
make[1]: Leaving directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1/cpan/Archive-Extract'
 make config PERL_CORE=1 LIBPERL_A=libperl.so.5.16.1 failed, continuing anyway...
Making all in cpan/Archive-Extract
 make all PERL_CORE=1 LIBPERL_A=libperl.so.5.16.1
make[1]: Entering directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1/cpan/Archive-Extract'
Makefile out-of-date with respect to Makefile.PL
Cleaning current config before rebuilding Makefile...
make -f Makefile.old clean > /dev/null 2>&1
../../miniperl "-I../../lib" "-I../../lib" Makefile.PL "INSTALLDIRS=perl" "INSTALLMAN1DIR=none" "INSTALLMAN3DIR=none" "PERL_CORE=1" "LIBPERL_A=libperl.so.5.16.1"
Writing Makefile for Archive::Extract
==> Your Makefile has been rebuilt. <==
==> Please rerun the make command.  <==
false
make[1]: *** [Makefile] Error 1
make[1]: Leaving directory `/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1/cpan/Archive-Extract'
Unsuccessful make(cpan/Archive-Extract): code=512 at make_ext.pl line 466.
make: *** [cpan/Archive-Extract/pm_to_blib] Error 25
 * ERROR: dev-lang/perl-5.16.1 failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=dev-lang/perl-5.16.1'`,
 * the complete build log and the output of `emerge -pqv '=dev-lang/perl-5.16.1'`.
 * The complete build log is located at '/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/temp/build.log'.
 * The ebuild environment file is located at '/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/temp/environmen't.
 * Working directory: '/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1'
 * S: '/memex/linpengt/gentoo/var/tmp/portage/dev-lang/perl-5.16.1/work/perl-5.16.1'

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2013-02-02 14:42 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-19 22:12 [gentoo-alt] problems with bootstrapping in Gentoo-prefix Linpeng Tang
2013-01-19 22:28 ` [gentoo-alt] " Linpeng Tang
2013-01-21  7:35   ` heroxbd
2013-01-21  8:31 ` [gentoo-alt] " Christopher Schwan
2013-01-21 15:18   ` Linpeng Tang
2013-01-22  3:12     ` Linpeng Tang
2013-01-22  7:19       ` heroxbd
2013-01-22 22:19         ` Fabian Groffen
2013-01-23 14:32         ` Linpeng Tang
2013-01-24  0:51           ` Linpeng Tang
2013-01-24  4:41             ` heroxbd
2013-01-25  8:39             ` heroxbd
2013-01-26  6:25               ` Linpeng Tang
2013-01-26 11:29                 ` heroxbd
2013-02-01  6:57                   ` Linpeng Tang
2013-02-01 17:47                     ` Steven Trogdon
2013-02-02 12:37                       ` Fabian Groffen
2013-02-02 14:41                         ` Linpeng Tang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox