blob: f19a251e8dfd5786f3aec0e9ea16042a67cc068c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
#! /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
# <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_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
|