#! /bin/sh # Copyright (C) 2007, 2008, 2010 Free Software Foundation, Inc. # This file is part of GCC. # GCC is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3, or (at your option) # any later version. # GCC is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with GCC; see the file COPYING3. If not see # . # Invoke as, ld or nm from the build tree. ORIGINAL_AS_FOR_TARGET="@ORIGINAL_AS_FOR_TARGET@" ORIGINAL_LD_FOR_TARGET="@ORIGINAL_LD_FOR_TARGET@" ORIGINAL_GOLD_FOR_TARGET="@ORIGINAL_GOLD_FOR_TARGET@" ORIGINAL_PLUGIN_LD_FOR_TARGET="@ORIGINAL_PLUGIN_LD_FOR_TARGET@" ORIGINAL_NM_FOR_TARGET="@ORIGINAL_NM_FOR_TARGET@" exeext=@host_exeext@ fast_install=@enable_fast_install@ objdir=@objdir@ version="1.1" invoked=`basename "$0"` id=$invoked case "$invoked" in as) original=$ORIGINAL_AS_FOR_TARGET prog=as-new$exeext dir=gas ;; collect-ld) prog=ld-new$exeext # Look for the a command line option # specifying the linker to be used. case " $* " in *\ -use-gold\ *) original=$ORIGINAL_GOLD_FOR_TARGET dir=gold ;; *\ -use-ld\ * | *\ -use-ld.bfd\ *) original=$ORIGINAL_LD_FOR_TARGET dir=ld ;; *\ -plugin\ *) original=$ORIGINAL_PLUGIN_LD_FOR_TARGET dir=ld ;; *) original=$ORIGINAL_LD_FOR_TARGET dir=ld ;; esac # If the selected linker has not been configured then # try using the others, in the order PLUGIN-LD, LD, GOLD. if test x"$original" = x; then if test x"$ORIGINAL_PLUGIN_LD_FOR_TARGET" != x; then original=$ORIGINAL_PLUGIN_LD_FOR_TARGET dir=ld elif test x"$ORIGINAL_LD_FOR_TARGET" != x; then original=$ORIGINAL_LD_FOR_TARGET dir=ld elif test x"$ORIGINAL_GOLD_FOR_TARGET" != x; then original=$ORIGINAL_GOLD_FOR_TARGET dir=gold # Otherwise do nothing - the case statement below # will issue an error message for us. fi fi id=ld ;; nm) original=$ORIGINAL_NM_FOR_TARGET prog=nm-new$exeext dir=binutils ;; esac case "$original" in ../*) # compute absolute path of the location of this script tdir=`dirname "$0"` scriptdir=`cd "$tdir" && pwd` if test -x $scriptdir/../$dir/$prog; then if test "$fast_install" = yes; then # If libtool did everything it needs to do, there's a fast path. lt_prog=$scriptdir/../$dir/$objdir/lt-$prog if test -x $lt_prog; then original=$lt_prog else # Libtool has not relinked ld-new yet, but we cannot just use the # previous stage (because then the relinking would just never happen!). # So we take extra care to use prev-ld/ld-new *on recursive calls*. eval LT_RCU="\${LT_RCU_$id}" if test x"$LT_RCU" = x"1"; then original=$scriptdir/../prev-$dir/$prog else eval LT_RCU_$id=1 export LT_RCU_$id case " $* " in *\ -v\ *) echo "$invoked $version" echo $scriptdir/../$dir/$prog $* ;; esac $scriptdir/../$dir/$prog ${1+"$@"} result=$? exit $result fi fi else original=$scriptdir/../$dir/$prog fi else original=$scriptdir/../prev-$dir/$prog fi ;; "") echo "$invoked: executable not configured" exit 1 ;; esac # If -v has been used then display our version number # and then echo the command we are about to invoke. case " $* " in *\ -v\ *) echo "$invoked $version" echo $original $* ;; esac if test -x $original; then exec "$original" ${1+"$@"} else echo "$invoked: unable to locate executable: $original" exit 1 fi