| #! /bin/sh |
| |
| # Copyright (C) 2007, 2008 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 |
| # <http://www.gnu.org/licenses/>. |
| |
| # 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_NM_FOR_TARGET="@ORIGINAL_NM_FOR_TARGET@" |
| exeext=@host_exeext@ |
| fast_install=@enable_fast_install@ |
| objdir=@objdir@ |
| |
| invoked=`basename "$0"` |
| case "$invoked" in |
| as) |
| original=$ORIGINAL_AS_FOR_TARGET |
| prog=as-new$exeext |
| dir=gas |
| ;; |
| collect-ld) |
| original=$ORIGINAL_LD_FOR_TARGET |
| prog=ld-new$exeext |
| dir=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 |
| test "$fast_install" = yes || exec $scriptdir/../$dir/$prog ${1+"$@"} |
| |
| # if libtool did everything it needs to do, there's a fast path |
| lt_prog=$scriptdir/../$dir/$objdir/lt-$prog |
| test -x $lt_prog && exec $lt_prog ${1+"$@"} |
| |
| # 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*. |
| test x"$LT_RCU" = x"1" && exec $scriptdir/../prev-$dir/$prog ${1+"$@"} |
| |
| LT_RCU=1; export LT_RCU |
| $scriptdir/../$dir/$prog ${1+"$@"} |
| result=$? |
| exit $result |
| |
| else |
| exec $scriptdir/../prev-$dir/$prog ${1+"$@"} |
| fi |
| ;; |
| *) |
| exec "$original" ${1+"$@"} |
| ;; |
| esac |
| |
| |