]>
Commit | Line | Data |
---|---|---|
be0fe523 PB |
1 | #! /bin/sh |
2 | ||
8d9254fc | 3 | # Copyright (C) 2007-2020 Free Software Foundation, Inc. |
be0fe523 PB |
4 | # This file is part of GCC. |
5 | ||
6 | # GCC is free software; you can redistribute it and/or modify | |
7 | # it under the terms of the GNU General Public License as published by | |
9dcd6f09 | 8 | # the Free Software Foundation; either version 3, or (at your option) |
be0fe523 PB |
9 | # any later version. |
10 | ||
11 | # GCC is distributed in the hope that it will be useful, | |
12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | # GNU General Public License for more details. | |
15 | ||
16 | # You should have received a copy of the GNU General Public License | |
9dcd6f09 NC |
17 | # along with GCC; see the file COPYING3. If not see |
18 | # <http://www.gnu.org/licenses/>. | |
be0fe523 PB |
19 | |
20 | # Invoke as, ld or nm from the build tree. | |
21 | ||
22 | ORIGINAL_AS_FOR_TARGET="@ORIGINAL_AS_FOR_TARGET@" | |
23 | ORIGINAL_LD_FOR_TARGET="@ORIGINAL_LD_FOR_TARGET@" | |
40f213e6 L |
24 | ORIGINAL_LD_BFD_FOR_TARGET="@ORIGINAL_LD_BFD_FOR_TARGET@" |
25 | ORIGINAL_LD_GOLD_FOR_TARGET="@ORIGINAL_LD_GOLD_FOR_TARGET@" | |
5938f74d | 26 | ORIGINAL_PLUGIN_LD_FOR_TARGET="@ORIGINAL_PLUGIN_LD_FOR_TARGET@" |
be0fe523 PB |
27 | ORIGINAL_NM_FOR_TARGET="@ORIGINAL_NM_FOR_TARGET@" |
28 | exeext=@host_exeext@ | |
da0f6381 PB |
29 | fast_install=@enable_fast_install@ |
30 | objdir=@objdir@ | |
be0fe523 PB |
31 | |
32 | invoked=`basename "$0"` | |
a55da563 | 33 | id=$invoked |
be0fe523 PB |
34 | case "$invoked" in |
35 | as) | |
36 | original=$ORIGINAL_AS_FOR_TARGET | |
37 | prog=as-new$exeext | |
38 | dir=gas | |
39 | ;; | |
40 | collect-ld) | |
40f213e6 L |
41 | # Check -fuse-ld=bfd and -fuse-ld=gold |
42 | case " $* " in | |
43 | *\ -fuse-ld=bfd\ *) | |
44 | original=$ORIGINAL_LD_BFD_FOR_TARGET | |
45 | ;; | |
46 | *\ -fuse-ld=gold\ *) | |
47 | original=$ORIGINAL_LD_GOLD_FOR_TARGET | |
48 | ;; | |
49 | *) | |
50 | # when using a linker plugin, gcc will always pass '-plugin' as the | |
51 | # first or second option to the linker. | |
52 | if test x"$1" = "x-plugin" || test x"$2" = "x-plugin"; then | |
53 | original=$ORIGINAL_PLUGIN_LD_FOR_TARGET | |
54 | else | |
55 | original=$ORIGINAL_LD_FOR_TARGET | |
56 | fi | |
57 | ;; | |
58 | esac | |
59 | prog=ld-new$exeext | |
60 | if test "$original" = ../gold/ld-new$exeext; then | |
61 | dir=gold | |
62 | # No need to handle relink since gold doesn't use libtool. | |
63 | fast_install=yes | |
5938f74d | 64 | else |
40f213e6 | 65 | dir=ld |
5938f74d | 66 | fi |
a55da563 | 67 | id=ld |
be0fe523 PB |
68 | ;; |
69 | nm) | |
70 | original=$ORIGINAL_NM_FOR_TARGET | |
71 | prog=nm-new$exeext | |
72 | dir=binutils | |
73 | ;; | |
74 | esac | |
75 | ||
76 | case "$original" in | |
77 | ../*) | |
78 | # compute absolute path of the location of this script | |
79 | tdir=`dirname "$0"` | |
80 | scriptdir=`cd "$tdir" && pwd` | |
81 | ||
82 | if test -x $scriptdir/../$dir/$prog; then | |
da0f6381 PB |
83 | test "$fast_install" = yes || exec $scriptdir/../$dir/$prog ${1+"$@"} |
84 | ||
85 | # if libtool did everything it needs to do, there's a fast path | |
86 | lt_prog=$scriptdir/../$dir/$objdir/lt-$prog | |
87 | test -x $lt_prog && exec $lt_prog ${1+"$@"} | |
88 | ||
89 | # libtool has not relinked ld-new yet, but we cannot just use the | |
90 | # previous stage (because then the relinking would just never happen!). | |
91 | # So we take extra care to use prev-ld/ld-new *on recursive calls*. | |
a55da563 | 92 | eval LT_RCU="\${LT_RCU_$id}" |
97c3860d | 93 | test x"$LT_RCU" = x"1" && exec $scriptdir/../prev-$dir/$prog ${1+"$@"} |
da0f6381 | 94 | |
a55da563 L |
95 | eval LT_RCU_$id=1 |
96 | export LT_RCU_$id | |
da0f6381 PB |
97 | $scriptdir/../$dir/$prog ${1+"$@"} |
98 | result=$? | |
da0f6381 PB |
99 | exit $result |
100 | ||
be0fe523 PB |
101 | else |
102 | exec $scriptdir/../prev-$dir/$prog ${1+"$@"} | |
103 | fi | |
104 | ;; | |
105 | *) | |
4a150fc8 | 106 | exec $original ${1+"$@"} |
be0fe523 PB |
107 | ;; |
108 | esac |