X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fexec-tool.in;h=8a10775731b1b8332560a8887a20efe64c31d43e;hp=6bdddd1d06348b67c37498facb1c3fd29a2a7651;hb=7e697abba23c586c52ecdc01a082d9fc9a3642e8;hpb=794723c16828ffa0a7c913450704823791f54129 diff --git a/gcc/exec-tool.in b/gcc/exec-tool.in index 6bdddd1d063..8a10775731b 100644 --- a/gcc/exec-tool.in +++ b/gcc/exec-tool.in @@ -1,6 +1,6 @@ #! /bin/sh -# Copyright (C) 2007 Free Software Foundation, Inc. +# 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 @@ -21,12 +21,14 @@ ORIGINAL_AS_FOR_TARGET="@ORIGINAL_AS_FOR_TARGET@" ORIGINAL_LD_FOR_TARGET="@ORIGINAL_LD_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@ invoked=`basename "$0"` +id=$invoked case "$invoked" in as) original=$ORIGINAL_AS_FOR_TARGET @@ -34,9 +36,16 @@ case "$invoked" in dir=gas ;; collect-ld) - original=$ORIGINAL_LD_FOR_TARGET + # when using a linker plugin, gcc will always pass '-plugin' as the + # first or second option to the linker. + if test x"$1" = "x-plugin" || test x"$2" = "x-plugin"; then + original=$ORIGINAL_PLUGIN_LD_FOR_TARGET + else + original=$ORIGINAL_LD_FOR_TARGET + fi prog=ld-new$exeext dir=ld + id=ld ;; nm) original=$ORIGINAL_NM_FOR_TARGET @@ -61,12 +70,13 @@ case "$original" in # 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 -f $lt_prog-recursive && exec $scriptdir/../prev-$dir/$prog ${1+"$@"} + eval LT_RCU="\${LT_RCU_$id}" + test x"$LT_RCU" = x"1" && exec $scriptdir/../prev-$dir/$prog ${1+"$@"} - touch $lt_prog-recursive + eval LT_RCU_$id=1 + export LT_RCU_$id $scriptdir/../$dir/$prog ${1+"$@"} result=$? - rm -f $lt_prog-recursive exit $result else @@ -74,8 +84,6 @@ case "$original" in fi ;; *) - exec "$original" ${1+"$@"} + exec $original ${1+"$@"} ;; esac - -