diff gcc/exec-tool.in @ 67:f6334be47118

update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 22 Mar 2011 17:18:12 +0900
parents 77e2b8dfacca
children 04ced10e8804
line wrap: on
line diff
--- a/gcc/exec-tool.in	Tue May 25 18:58:51 2010 +0900
+++ b/gcc/exec-tool.in	Tue Mar 22 17:18:12 2011 +0900
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-# Copyright (C) 2007, 2008 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
@@ -28,6 +28,7 @@
 objdir=@objdir@
 
 invoked=`basename "$0"`
+id=$invoked
 case "$invoked" in
   as)
     original=$ORIGINAL_AS_FOR_TARGET
@@ -36,14 +37,15 @@
     ;;
   collect-ld)
     # when using a linker plugin, gcc will always pass '-plugin' as the
-    # first option to the linker.
-    if test x"$1" = "x-plugin"; then
+    # 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
@@ -68,9 +70,11 @@
       # 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}"
       test x"$LT_RCU" = x"1" && exec $scriptdir/../prev-$dir/$prog ${1+"$@"}
 
-      LT_RCU=1; export LT_RCU
+      eval LT_RCU_$id=1
+      export LT_RCU_$id
       $scriptdir/../$dir/$prog ${1+"$@"}
       result=$?
       exit $result
@@ -80,8 +84,6 @@
     fi
     ;;
   *)
-    exec "$original" ${1+"$@"}
+    exec $original ${1+"$@"}
     ;;
 esac
-
-