bfd:
[binutils-gdb.git] / ld / configure.tgt
1 # This is the linker target specific file. This is invoked by the
2 # autoconf generated configure script. Putting it in a separate shell
3 # file lets us skip running autoconf when modifying target specific
4 # information.
5
6 # This file switches on the shell variable ${targ}, and sets the
7 # following shell variables:
8 # targ_emul name of linker emulation to use
9 # targ_extra_emuls additional linker emulations to provide
10 # targ_extra_libpath additional linker emulations using LIB_PATH
11 # targ_extra_ofiles additional objects needed by the emulation
12 # targ64_extra_emuls additional linker emulations to provide if
13 # --enable-64-bit-bfd is given or if host is 64 bit.
14 # targ64_extra_libpath additional linker emulations using LIB_PATH if
15 # --enable-64-bit-bfd is given or if host is 64 bit.
16 # NATIVE_LIB_DIRS library directories to search on this host
17 # (if we are a native or sysrooted linker)
18
19 targ_extra_emuls=
20 targ_extra_libpath=
21 targ_extra_ofiles=
22 targ64_extra_emuls=
23 targ64_extra_libpath=
24
25 # Please try to keep this table in alphabetic order - it makes it
26 # much easier to lookup a specific archictecture. Naturally any
27 # architecture variants should be kept together even if their names
28 # break the alpha sorting.
29 case "${targ}" in
30 alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
31 targ_emul=elf64alpha_fbsd
32 targ_extra_emuls="elf64alpha alpha"
33 tdir_alpha=`echo ${targ_alias} | sed -e 's/freebsd/freebsdecoff/'` ;;
34 alpha*-*-linuxecoff*) targ_emul=alpha targ_extra_emuls=elf64alpha
35 tdir_elf64alpha=`echo ${targ_alias} | sed -e 's/ecoff//'` ;;
36 alpha*-*-linux-*) targ_emul=elf64alpha targ_extra_emuls=alpha
37 tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'` ;;
38 alpha*-*-osf*) targ_emul=alpha ;;
39 alpha*-*-gnu*) targ_emul=elf64alpha ;;
40 alpha*-*-netware*) targ_emul=alpha ;;
41 alpha*-*-netbsd*) targ_emul=elf64alpha_nbsd ;;
42 alpha*-*-openbsd*) targ_emul=elf64alpha ;;
43 alpha*-*-*vms*) targ_emul=alphavms
44 ;;
45 arc-*-elf*) targ_emul=arcelf
46 ;;
47 arm-epoc-pe) targ_emul=arm_epoc_pe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
48 arm*-*-cegcc*) targ_emul=arm_wince_pe ; targ_extra_ofiles="deffilep.o pe-dll.o"
49 LIB_PATH='${tooldir}/lib/w32api' ;;
50 arm-wince-pe | arm-*-wince | arm*-*-mingw32ce*)
51 targ_emul=arm_wince_pe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
52 arm-*-pe) targ_emul=armpe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
53 arm-*-aout | armel-*-aout) targ_emul=armaoutl ;;
54 armeb-*-aout) targ_emul=armaoutb ;;
55 arm-*-coff) targ_emul=armcoff ;;
56 arm-*-freebsd* | arm-*-kfreebsd*-gnu)
57 targ_emul=armelf_fbsd
58 targ_extra_emuls="armelf" ;;
59 armeb-*-netbsdelf*) targ_emul=armelfb_nbsd;
60 targ_extra_emuls="armelf_nbsd armelf armnbsd" ;;
61 arm-*-netbsdelf*) targ_emul=armelf_nbsd;
62 targ_extra_emuls="armelfb_nbsd armelf armnbsd" ;;
63 arm-*-netbsd*) targ_emul=armnbsd;
64 targ_extra_emuls="armelf armelf_nbsd armelfb_nbsd" ;;
65 arm-*-nto*) targ_emul=armnto ;;
66 arm-*-openbsd*) targ_emul=armnbsd ;;
67 arm-*-rtems*) targ_emul=armelf ;;
68 armeb-*-elf) targ_emul=armelfb ;;
69 arm-*-elf | arm*-*-eabi*)
70 targ_emul=armelf ;;
71 arm*-*-symbianelf*) targ_emul=armsymbian;;
72 arm-*-kaos*) targ_emul=armelf ;;
73 arm9e-*-elf) targ_emul=armelf ;;
74 arm*b-*-linux-*eabi) targ_emul=armelfb_linux_eabi
75 targ_extra_emuls=armelf_linux_eabi
76 targ_extra_libpath=$targ_extra_emuls
77 ;;
78 arm*b-*-linux-*) targ_emul=armelfb_linux
79 targ_extra_emuls="armelfb armelf armelf_linux"
80 targ_extra_libpath="armelf_linux"
81 ;;
82 arm*-*-linux-*eabi) targ_emul=armelf_linux_eabi
83 targ_extra_emuls=armelfb_linux_eabi
84 targ_extra_libpath=$targ_extra_emuls
85 ;;
86 arm*-*-linux-*) targ_emul=armelf_linux
87 targ_extra_emuls="armelf armelfb armelfb_linux"
88 targ_extra_libpath="armelfb_linux"
89 ;;
90 arm*-*-uclinux*eabi) targ_emul=armelf_linux_eabi
91 targ_extra_emuls=armelfb_linux_eabi
92 targ_extra_libpath=$targ_extra_emuls
93 ;;
94 arm*-*-uclinux*) targ_emul=armelf_linux
95 targ_extra_emuls="armelf armelfb armelfb_linux"
96 targ_extra_libpath="armelfb_linux"
97 ;;
98 arm-*-vxworks) targ_emul=armelf_vxworks ;;
99 arm*-*-conix*) targ_emul=armelf ;;
100 ;;
101 avr-*-*) targ_emul=avr2
102 targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7"
103 ;;
104 bfin-*-elf) targ_emul=elf32bfin;
105 targ_extra_emuls="elf32bfinfd"
106 targ_extra_libpath=$targ_extra_emuls
107 ;;
108 bfin-*-rtems*) targ_emul=elf32bfin;
109 targ_extra_emuls="elf32bfinfd"
110 targ_extra_libpath=$targ_extra_emuls
111 ;;
112 bfin-*-uclinux*) targ_emul=elf32bfin;
113 targ_extra_emuls="elf32bfinfd"
114 targ_extra_libpath=$targ_extra_emuls
115 ;;
116 bfin-*-linux-uclibc*) targ_emul=elf32bfinfd;
117 targ_extra_emuls="elf32bfin"
118 targ_extra_libpath=$targ_extra_emuls
119 ;;
120 cr16-*-elf*) targ_emul=elf32cr16 ;;
121 cr16c-*-elf*) targ_emul=elf32cr16c
122 ;;
123 cris-*-*aout*) targ_emul=crisaout
124 targ_extra_emuls="criself crislinux"
125 targ_extra_libpath=$targ_extra_emuls ;;
126 cris-*-linux-* | crisv32-*-linux-*)
127 targ_emul=crislinux ;;
128 cris-*-* | crisv32-*-*) targ_emul=criself
129 targ_extra_emuls="crisaout crislinux"
130 targ_extra_libpath=$targ_extra_emuls
131 ;;
132 crx-*-elf*) targ_emul=elf32crx
133 ;;
134 d10v-*-*) targ_emul=d10velf ;;
135 d30v-*-*ext*) targ_emul=d30v_e; targ_extra_emuls="d30velf d30v_o" ;;
136 d30v-*-*onchip*) targ_emul=d30v_o; targ_extra_emuls="d30velf d30v_e" ;;
137 d30v-*-*) targ_emul=d30velf; targ_extra_emuls="d30v_e d30v_o"
138 ;;
139 dlx-*-elf*) targ_emul=elf32_dlx
140 ;;
141 fido*-*-elf*) targ_emul=m68kelf ;;
142 fr30-*-*) targ_emul=elf32fr30
143 ;;
144 frv-*-*linux*) targ_emul=elf32frvfd ;;
145 frv-*-*) targ_emul=elf32frv ; targ_extra_emuls="elf32frvfd"
146 ;;
147 moxie-*-*) targ_emul=elf32moxie
148 ;;
149 h8300-*-hms* | h8300-*-coff* | h8300-*-rtemscoff*)
150 targ_emul=h8300; targ_extra_emuls="h8300h h8300s h8300hn h8300sn h8300sx h8300sxn" ;;
151 h8300-*-elf* | h8300-*-rtems*)
152 targ_emul=h8300elf;
153 targ_extra_emuls="h8300helf h8300self h8300hnelf h8300snelf h8300sxelf h8300sxnelf" ;;
154 h8500-*-hms* | h8500-*-coff* | h8500-*-rtems*)
155 targ_emul=h8500
156 targ_extra_emuls="h8500s h8500b h8500m h8500c"
157 ;;
158 hppa*64*-*-linux-*) targ_emul=hppa64linux ;;
159 hppa*64*-hpux*) targ_emul=elf64hppa ;;
160 hppa*-*-linux-*) targ_emul=hppalinux ;;
161 hppa*-*-*elf*) targ_emul=hppaelf ;;
162 hppa*-*-lites*) targ_emul=hppaelf ;;
163 hppa*-*-netbsd*) targ_emul=hppanbsd ;;
164 hppa*-*-openbsd*) targ_emul=hppaobsd
165 ;;
166 i370-*-elf* | i370-*-linux-*) targ_emul=elf32i370
167 ;;
168 i[3-7]86-*-nto-qnx*) targ_emul=i386nto ;;
169 i[3-7]86-*-vsta) targ_emul=vsta ;;
170 i[3-7]86-*-go32) targ_emul=i386go32 ;;
171 i[3-7]86-*-msdosdjgpp*) targ_emul=i386go32 ;;
172 i[3-7]86-*-aix*) targ_emul=i386coff ;;
173 i[3-7]86-*-sco*) targ_emul=i386coff ;;
174 i[3-7]86-*-isc*) targ_emul=i386coff ;;
175 i[3-7]86-*-lynxos*) targ_emul=i386lynx ;;
176 i[3-7]86-*-coff) targ_emul=i386coff ;;
177 i[3-7]86-*-rtems*) targ_emul=elf_i386 ;;
178 i[3-7]86-*-aros*) targ_emul=elf_i386 ;;
179 i[3-7]86-*-rdos*) targ_emul=elf_i386 ;;
180 i[3-7]86-*-bsd) targ_emul=i386bsd ;;
181 i[3-7]86-*-bsd386) targ_emul=i386bsd ;;
182 i[3-7]86-*-bsdi*) targ_emul=i386bsd ;;
183 i[3-7]86-*-aout) targ_emul=i386aout ;;
184 i[3-7]86-*-linux*aout*) targ_emul=i386linux
185 targ_extra_emuls=elf_i386
186 tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` ;;
187 i[3-7]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
188 i[3-7]86-*-linux-*) targ_emul=elf_i386
189 targ_extra_emuls=i386linux
190 targ64_extra_emuls="elf_x86_64 elf32_x86_64 elf_l1om"
191 targ64_extra_libpath=elf_x86_64
192 targ_extra_libpath=elf32_x86_64
193 tdir_i386linux=${targ_alias}aout ;;
194 x86_64-*-linux-*) targ_emul=elf_x86_64
195 targ_extra_emuls="elf32_x86_64 elf_i386 i386linux elf_l1om"
196 targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om"
197 tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
198 tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
199 i[3-7]86-*-sysv[45]*) targ_emul=elf_i386 ;;
200 i[3-7]86-*-solaris2*) targ_emul=elf_i386_sol2
201 targ_extra_emuls="elf_i386_ldso elf_i386 elf_x86_64_sol2 elf_x86_64 elf_l1om"
202 targ_extra_libpath=$targ_extra_emuls
203 ;;
204 x86_64-*-solaris2*)
205 targ_emul=elf_x86_64_sol2
206 targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_l1om"
207 targ_extra_libpath=elf_i386
208 tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
209 i[3-7]86-*-unixware) targ_emul=elf_i386 ;;
210 i[3-7]86-*-solaris*) targ_emul=elf_i386_ldso
211 targ_extra_emuls="elf_i386"
212 targ_extra_libpath=$targ_extra_emuls
213 ;;
214 i[3-7]86-*-netbsdelf* | \
215 i[3-7]86-*-netbsd*-gnu* | \
216 i[3-7]86-*-knetbsd*-gnu)
217 targ_emul=elf_i386
218 targ_extra_emuls=i386nbsd ;;
219 i[3-7]86-*-netbsdpe*) targ_emul=i386pe
220 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
221 i[3-7]86-*-netbsd*) targ_emul=i386nbsd
222 targ_extra_emuls=elf_i386 ;;
223 x86_64-*-netbsd*) targ_emul=elf_x86_64
224 targ_extra_emuls="elf_i386 i386nbsd elf_l1om"
225 tdir_elf_i386=`echo ${targ_alias} | \
226 sed -e 's/x86_64/i386/'`
227 case "${tdir_elf_i386}" in
228 *-netbsdelf*) ;;
229 *) tdir_elf_i386=`echo ${tdir_elf_i386} | \
230 sed -e 's/netbsd/netbsdelf/'`;;
231 esac ;;
232 i[3-7]86-*-netware) targ_emul=i386nw ;;
233 i[3-7]86-*-elf*) targ_emul=elf_i386 ;;
234 x86_64-*-elf*) targ_emul=elf_x86_64
235 targ_extra_emuls="elf_i386 elf_l1om"
236 ;;
237 i[3-7]86-*-kaos*) targ_emul=elf_i386 ;;
238 i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12])
239 targ_emul=i386bsd ;;
240 i[3-7]86-*-dragonfly*) targ_emul=elf_i386
241 targ_extra_emuls="i386bsd" ;;
242 x86_64-*-dragonfly*) targ_emul=elf_x86_64
243 targ_extra_emuls="elf_i386 elf_l1om" ;;
244 i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
245 targ_emul=elf_i386_fbsd
246 targ_extra_emuls="elf_i386 i386bsd" ;;
247 x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
248 targ_emul=elf_x86_64_fbsd
249 targ_extra_emuls="elf_i386_fbsd elf_x86_64 elf_i386 elf_l1om elf_l1om_fbsd"
250 targ_extra_libpath="elf_i386_fbsd"
251 tdir_elf_i386_fbsd=`echo ${targ_alias} \
252 | sed -e 's/x86_64/i386/'`
253 tdir_elf_i386=`echo ${targ_alias} \
254 | sed -e 's/x86_64/i386/'` ;;
255 i[3-7]86-*-sysv*) targ_emul=i386coff ;;
256 i[3-7]86-*-ptx*) targ_emul=i386coff ;;
257 i[3-7]86-*-mach*) targ_emul=i386mach ;;
258 i[3-7]86-*-gnu*) targ_emul=elf_i386 ;;
259 i[3-7]86-*-msdos*) targ_emul=i386msdos; targ_extra_emuls=i386aout ;;
260 i[3-7]86-*-moss*) targ_emul=i386moss; targ_extra_emuls=i386msdos ;;
261 i[3-7]86-*-winnt*) targ_emul=i386pe ;
262 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
263 i[3-7]86-*-pe) targ_emul=i386pe ;
264 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
265 i[3-7]86-*-cygwin*) targ_emul=i386pe ;
266 targ_extra_ofiles="deffilep.o pe-dll.o"
267 test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;;
268 i[3-7]86-*-mingw32*) targ_emul=i386pe ;
269 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
270 x86_64-*-mingw*) targ_emul=i386pep ;
271 targ_extra_emuls=i386pe
272 targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;;
273 i[3-7]86-*-interix*) targ_emul=i386pe_posix;
274 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
275 i[3-7]86-*-beospe*) targ_emul=i386beos ;;
276 i[3-7]86-*-beos*) targ_emul=elf_i386_be ;;
277 i[3-7]86-*-vxworks*) targ_emul=elf_i386_vxworks ;;
278 i[3-7]86-*-chaos) targ_emul=elf_i386_chaos
279 ;;
280 i860-*-coff) targ_emul=coff_i860 ;;
281 i860-stardent-sysv4* | i860-stardent-elf*)
282 targ_emul=elf32_i860
283 ;;
284 i960-wrs-vxworks5.0*) targ_emul=gld960 ;;
285 i960-wrs-vxworks5*) targ_emul=gld960coff ;;
286 i960-wrs-vxworks*) targ_emul=gld960 ;;
287 i960-*-coff) targ_emul=gld960coff ;;
288 i960-intel-nindy) targ_emul=gld960 ;;
289 i960-*-rtems*) targ_emul=gld960coff ;;
290 i960-*-elf*) targ_emul=elf32_i960
291 ;;
292 ia64-*-elf*) targ_emul=elf64_ia64 ;;
293 ia64-*-freebsd* | ia64-*-kfreebsd*-gnu)
294 targ_emul=elf64_ia64_fbsd
295 targ_extra_emuls="elf64_ia64" ;;
296 ia64-*-netbsd*) targ_emul=elf64_ia64 ;;
297 ia64-*-linux*) targ_emul=elf64_ia64 ;;
298 ia64-*-aix*) targ_emul=elf64_aix
299 ;;
300 ip2k-*-elf) targ_emul=elf32ip2k
301 ;;
302 iq2000-*-elf) targ_emul=elf32iq2000 ; targ_extra_emuls="elf32iq10"
303 ;;
304 lm32-*-*linux*) targ_emul=elf32lm32fd ;;
305 lm32-*-*) targ_emul=elf32lm32 ; targ_extra_emuls="elf32lm32fd"
306 ;;
307 m32c-*-elf | m32c-*-rtems*)
308 targ_emul=elf32m32c
309 ;;
310 m32r*le-*-elf*) targ_emul=m32rlelf ;;
311 m32r*-*-elf* | m32r*-*-rtems*)
312 targ_emul=m32relf ;;
313 m32r*le-*-linux-*) targ_emul=m32rlelf_linux ;;
314 m32r*-*-linux-*) targ_emul=m32relf_linux
315 ;;
316 m68hc11-*-*|m6811-*-*) targ_emul=m68hc11elf
317 targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;;
318 m68hc12-*-*|m6812-*-*) targ_emul=m68hc12elf
319 targ_extra_emuls="m68hc12elfb m68hc11elf m68hc11elfb" ;;
320 m68*-sun-sunos[34]*) targ_emul=sun3 ;;
321 m68*-wrs-vxworks*) targ_emul=sun3 ;;
322 m68*-ericsson-ose) targ_emul=sun3 ;;
323 m68*-apple-aux*) targ_emul=m68kaux ;;
324 m68k-sony-*) targ_emul=news ;;
325 m68k-hp-bsd*) targ_emul=hp300bsd ;;
326 m68*-motorola-sysv*) targ_emul=delta68 ;;
327 m68*-*-aout) targ_emul=m68kaout ;;
328 m68*-*-coff) targ_emul=m68kcoff ;;
329 m68*-*-elf) targ_emul=m68kelf ;;
330 m68*-*-hpux*) targ_emul=hp3hpux ;;
331 m68k-*-linux*aout*) targ_emul=m68klinux
332 targ_extra_emuls=m68kelf
333 tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'` ;;
334 m68k-*-linux-*) targ_emul=m68kelf
335 targ_extra_emuls=m68klinux
336 tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'` ;;
337 m68k-*-uclinux*) targ_emul=m68kelf ;;
338 m68*-*-gnu*) targ_emul=m68kelf ;;
339 m68*-*-netbsd*4k*) targ_emul=m68k4knbsd
340 targ_extra_emuls="m68knbsd m68kelfnbsd" ;;
341 m68*-*-netbsdelf*) targ_emul=m68kelfnbsd
342 targ_extra_emuls="m68knbsd m68k4knbsd" ;;
343 m68*-*-netbsdaout* | m68*-*-netbsd*)
344 targ_emul=m68knbsd
345 targ_extra_emuls="m68kelfnbsd m68k4knbsd" ;;
346 m68*-*-psos*) targ_emul=m68kpsos ;;
347 m68*-*-rtemscoff*) targ_emul=m68kcoff ;;
348 m68*-*-rtems*) targ_emul=m68kelf
349 ;;
350 m8*-*-*) targ_emul=m88kbcs
351 ;;
352 mcore-*-pe) targ_emul=mcorepe ;
353 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
354 mcore-*-elf) targ_emul=elf32mcore
355 ;;
356 mep-*-elf) targ_emul=elf32mep ;;
357 microblaze*-linux*)
358 targ_emul="elf32mb_linux" ;;
359 microblaze*) targ_emul=elf32microblaze ;;
360 mips*-*-pe) targ_emul=mipspe ;
361 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
362 mips*-dec-ultrix*) targ_emul=mipslit ;;
363 mips*-dec-osf*) targ_emul=mipslit ;;
364 mips*-sgi-irix5*) targ_emul=elf32bsmip ;;
365 mips*-sgi-irix6*) targ_emul=elf32bmipn32
366 targ_extra_emuls="elf32bsmip elf64bmip"
367 targ_extra_libpath=$targ_extra_emuls ;;
368 mips*-sgi-irix*) targ_emul=mipsbig ;;
369 mips*el-*-ecoff*) targ_emul=mipsidtl ;;
370 mips*-*-ecoff*) targ_emul=mipsidt ;;
371 mips*el-*-netbsd*) targ_emul=elf32ltsmip
372 targ_extra_emuls="elf32btsmip elf64ltsmip elf64btsmip"
373 ;;
374 mips*-*-netbsd*) targ_emul=elf32btsmip
375 targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip"
376 ;;
377 mips*-*-bsd*) targ_emul=mipsbig ;;
378 mips*vr4300el-*-elf*) targ_emul=elf32l4300 ;;
379 mips*vr4300-*-elf*) targ_emul=elf32b4300 ;;
380 mips*vr4100el-*-elf*) targ_emul=elf32l4300 ;;
381 mips*vr4100-*-elf*) targ_emul=elf32b4300 ;;
382 mips*vr5000el-*-elf*) targ_emul=elf32l4300 ;;
383 mips*vr5000-*-elf*) targ_emul=elf32b4300 ;;
384 mips*el-sde-elf*) targ_emul=elf32ltsmip
385 targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" ;;
386 mips*-sde-elf*) targ_emul=elf32btsmip
387 targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" ;;
388 mips*el-*-elf*) targ_emul=elf32elmip ;;
389 mips*-*-elf*) targ_emul=elf32ebmip ;;
390 mips*-*-rtems*) targ_emul=elf32ebmip ;;
391 mips*el-*-vxworks*) targ_emul=elf32elmipvxworks
392 targ_extra_emuls="elf32ebmipvxworks" ;;
393 mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
394 targ_extra_emuls="elf32elmipvxworks" ;;
395 mips*-*-windiss) targ_emul=elf32mipswindiss ;;
396 mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
397 targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
398 targ_extra_libpath=$targ_extra_emuls ;;
399 mips64*-*-linux-*) targ_emul=elf32btsmipn32
400 targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
401 targ_extra_libpath=$targ_extra_emuls ;;
402 mips*el-*-linux-*) targ_emul=elf32ltsmip
403 targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
404 targ_extra_libpath=$targ_extra_emuls ;;
405 mips*-*-linux-*) targ_emul=elf32btsmip
406 targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
407 targ_extra_libpath=$targ_extra_emuls ;;
408 mips64*el-*-freebsd-* | mips64*el-*-kfreebsd*-gnu)
409 targ_emul=elf32ltsmipn32_fbsd
410 targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
411 targ_extra_libpath=$targ_extra_emuls ;;
412 mips64*-*-freebsd-* | mips64*-*-kfreebsd*-gnu)
413 targ_emul=elf32btsmipn32_fbsd
414 targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
415 targ_extra_libpath=$targ_extra_emuls ;;
416 mips*el-*-freebsd-* | mips*el-*-kfreebsd*-gnu)
417 targ_emul=elf32ltsmip_fbsd
418 targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmipn32_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
419 targ_extra_libpath=$targ_extra_emuls ;;
420 mips*-*-freebsd-* | mips*-*-kfreebsd*-gnu)
421 targ_emul=elf32btsmip_fbsd
422 targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmipn32_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
423 targ_extra_libpath=$targ_extra_emuls ;;
424 mips*-*-lnews*) targ_emul=mipslnews ;;
425 mips*-*-sysv4*) targ_emul=elf32btsmip
426 ;;
427 mmix-*-*) targ_emul=mmo
428 targ_extra_emuls=elf64mmix
429 ;;
430 am34-*-linux*) targ_emul=elf32am33lin ;;
431 am33_2.0-*-linux*) targ_emul=elf32am33lin ;;
432 mn10200-*-*) targ_emul=mn10200 ;;
433 mn10300-*-*) targ_emul=mn10300
434 ;;
435 mt-*elf) targ_emul=elf32mt
436 ;;
437 msp430-*-*) targ_emul=msp430x110
438 targ_extra_emuls="msp430x112 msp430x1101 msp430x1111 msp430x1121 msp430x1122 msp430x1132 msp430x122 msp430x123 msp430x1222 msp430x1232 msp430x133 msp430x135 msp430x1331 msp430x1351 msp430x147 msp430x148 msp430x149 msp430x155 msp430x156 msp430x157 msp430x167 msp430x168 msp430x169 msp430x1610 msp430x1611 msp430x1612 msp430x2101 msp430x2111 msp430x2121 msp430x2131 msp430x311 msp430x312 msp430x313 msp430x314 msp430x315 msp430x323 msp430x325 msp430x336 msp430x337 msp430x412 msp430x413 msp430x415 msp430x417 msp430xE423 msp430xE425 msp430xE427 msp430xW423 msp430xW425 msp430xW427 msp430xG437 msp430xG438 msp430xG439 msp430x435 msp430x436 msp430x437 msp430x447 msp430x448 msp430x449"
439 ;;
440 ns32k-pc532-mach* | ns32k-pc532-ux*) targ_emul=pc532macha ;;
441 ns32k-*-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd
442 ;;
443 openrisc-*-*) targ_emul=elf32openrisc ;;
444 or32-*-coff) targ_emul=or32 ;;
445 or32-*-elf) targ_emul=or32elf ;;
446 or32-*-rtems*) targ_emul=or32elf
447 ;;
448 pdp11-*-*) targ_emul=pdp11
449 ;;
450 pjl*-*-*) targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;;
451 pj*-*-*) targ_emul=pjelf
452 ;;
453 powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu)
454 targ_emul=elf32ppc_fbsd;
455 targ_extra_emuls="elf32ppc elf32ppcsim";
456 targ_extra_libpath=elf32ppc;
457 tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'` ;;
458 powerpc*-*-linux*) case "${targ}" in
459 *64*) targ_emul=elf64ppc
460 targ_extra_emuls="elf32ppclinux elf32ppc elf32ppcsim"
461 targ_extra_libpath="elf32ppclinux elf32ppc"
462 tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
463 tdir_elf32ppclinux=$tdir_elf32ppc
464 tdir_elf32ppcsim=$tdir_elf32ppc
465 ;;
466 *) targ_emul=elf32ppclinux
467 targ_extra_emuls="elf32ppc elf32ppcsim"
468 targ_extra_libpath=elf32ppc
469 targ64_extra_emuls=elf64ppc
470 targ64_extra_libpath=elf64ppc
471 ;;
472 esac ;;
473 powerpc*le-*-elf* | powerpc*le-*-eabi* | powerpc*le-*-solaris* \
474 | powerpc*le-*-sysv* | powerpc*le-*-vxworks*)
475 case "${targ}" in
476 *64*) targ_emul=elf64lppc
477 targ_extra_emuls="elf32lppc elf32lppcsim"
478 tdir_elf32lppc=`echo "${targ_alias}" | sed -e 's/64//'`
479 tdir_elf32lppcsim=$tdir_elf32lppc
480 ;;
481 *) targ_emul=elf32lppc
482 targ_extra_emuls="elf32ppcsim" ;;
483 esac ;;
484 powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \
485 | powerpc*-*-netbsd* | powerpc-*-openbsd* | powerpc*-*-kaos*)
486 case "${targ}" in
487 *64*) targ_emul=elf64ppc
488 targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim"
489 tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
490 tdir_elf32ppclinux=$tdir_elf32ppc
491 tdir_elf32ppcsim=$tdir_elf32ppc
492 ;;
493 *) targ_emul=elf32ppc
494 targ_extra_emuls="elf32ppclinux elf32ppcsim" ;;
495 esac ;;
496 powerpc-*-vxworks*)
497 targ_emul=elf32ppcvxworks
498 targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" ;;
499 powerpc-*-nto*) targ_emul=elf32ppcnto ;;
500 powerpcle-*-nto*) targ_emul=elf32lppcnto ;;
501 powerpc-*-rtems*) targ_emul=elf32ppc ;;
502 powerpc-*-macos*) targ_emul=ppcmacos ;;
503 powerpc-*-netware*) targ_emul=ppcnw ;;
504 powerpcle-*-pe) targ_emul=ppcpe ;;
505 powerpcle-*-winnt*) targ_emul=ppcpe ;;
506 powerpcle-*-cygwin*) targ_emul=ppcpe ;;
507 powerpc-*-aix[5-9]*) targ_emul=aix5ppc ;;
508 powerpc-*-aix*) targ_emul=aixppc ;;
509 powerpc-*-beos*) targ_emul=aixppc ;;
510 powerpc-*-windiss*) targ_emul=elf32ppcwindiss ;;
511 powerpc-*-lynxos*) targ_emul=ppclynx ;;
512 rs6000-*-aix[5-9]*) targ_emul=aix5rs6 ;;
513 rs6000-*-aix*) targ_emul=aixrs6
514 ;;
515 rx-*-*) targ_emul=elf32rx ;;
516 s390x-*-linux*) targ_emul=elf64_s390
517 targ_extra_emuls=elf_s390
518 targ_extra_libpath=$targ_extra_emuls
519 tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
520 s390x-*-tpf*) targ_emul=elf64_s390
521 tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
522 s390-*-linux*) targ_emul=elf_s390
523 targ64_extra_emuls=elf64_s390
524 targ64_extra_libpath=elf64_s390
525 tdir_elf64_s390=`echo ${targ_alias} | sed -e 's/s390/s390x/'`
526 ;;
527 score-*-elf) targ_emul=score7_elf
528 targ_extra_emuls=score3_elf ;;
529 sh-*-linux*) targ_emul=shlelf_linux
530 targ_extra_emuls=shelf_linux
531 targ_extra_libpath=shelf_linux ;;
532 sh64eb-*-linux*) targ_emul=shelf32_linux
533 targ_extra_emuls="shlelf32_linux" ;;
534 sh64-*-linux*) targ_emul=shlelf32_linux
535 targ_extra_emuls="shelf32_linux"
536 targ_extra_libpath=shelf32_linux ;;
537 sh*eb-*-linux*) targ_emul=shelf_linux ;;
538 sh*-*-linux*) targ_emul=shlelf_linux ;;
539 sh5le-*-netbsd*) targ_emul=shlelf32_nbsd
540 targ_extra_emuls="shelf32_nbsd shelf64_nbsd shlelf64_nbsd shelf_nbsd shlelf_nbsd" ;;
541 sh5-*-netbsd*) targ_emul=shelf32_nbsd
542 targ_extra_emuls="shlelf32_nbsd shelf64_nbsd shlelf64_nbsd shelf_nbsd shlelf_nbsd" ;;
543 sh64le-*-netbsd*) targ_emul=shlelf64_nbsd
544 targ_extra_emuls="shelf64_nbsd shelf32_nbsd shlelf32_nbsd shelf_nbsd shlelf_nbsd" ;;
545 sh64-*-netbsd*) targ_emul=shelf64_nbsd
546 targ_extra_emuls="shlelf64_nbsd shelf32_nbsd shlelf32_nbsd shelf_nbsd shlelf_nbsd" ;;
547 sh*l*-*-netbsdelf*) targ_emul=shlelf_nbsd
548 targ_extra_emuls=shelf_nbsd ;;
549 sh*-*-netbsdelf*) targ_emul=shelf_nbsd
550 targ_extra_emuls=shlelf_nbsd ;;
551 sh*-*-symbianelf*) targ_emul=shlsymbian ;;
552 shle*-*-elf* | sh[1234]*le*-*-elf | shle*-*-kaos*)
553 targ_emul=shlelf
554 targ_extra_emuls="shelf shl sh" ;;
555 sh-*-rtemscoff*) targ_emul=sh; targ_extra_emuls=shl ;;
556 sh-*-elf* | sh[1234]*-*-elf | sh-*-rtems* | sh-*-kaos*)
557 targ_emul=shelf
558 targ_extra_emuls="shlelf sh shl" ;;
559 sh-*-uclinux* | sh[12]-*-uclinux*)
560 targ_emul=shelf_uclinux
561 targ_extra_emuls="shelf shlelf sh shl shelf_fd shlelf_fd" ;;
562 sh-*-vxworks) targ_emul=shelf_vxworks
563 targ_extra_emuls=shlelf_vxworks ;;
564 sh-*-nto*) targ_emul=shelf_nto
565 targ_extra_emuls=shlelf_nto ;;
566 sh-*-pe) targ_emul=shpe ;
567 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
568 sh-*-*) targ_emul=sh; targ_extra_emuls=shl ;;
569 sh64le-*-elf*) targ_emul=shlelf
570 targ_extra_emuls="shelf shlelf32 shelf32 shlelf64 shelf64"
571 targ_extra_libpath=$targ_extra_emuls ;;
572 sh64-*-elf*) targ_emul=shelf
573 targ_extra_emuls="shlelf shelf32 shlelf32 shelf64 shlelf64"
574 targ_extra_libpath=$targ_extra_emuls ;;
575 sparc64-*-aout*) targ_emul=sparcaout ;;
576 sparc64-*-elf*) targ_emul=elf64_sparc ;;
577 sparc64-*-rtems*) targ_emul=elf64_sparc ;;
578 sparc-sun-sunos4*) targ_emul=sun4 ;;
579 sparclite*-*-elf) targ_emul=elf32_sparc ;;
580 sparclite*-*-coff) targ_emul=coff_sparc ;;
581 sparclite*-fujitsu-*) targ_emul=sparcaout ;;
582 sparc*-*-aout) targ_emul=sparcaout ;;
583 sparc*-*-coff) targ_emul=coff_sparc ;;
584 sparc*-*-elf) targ_emul=elf32_sparc ;;
585 sparc*-*-sysv4*) targ_emul=elf32_sparc ;;
586 sparc*-*-vxworks*) targ_emul=elf32_sparc_vxworks ;;
587 sparc64-*-freebsd* | sparcv9-*-freebsd* | sparc64-*-kfreebsd*-gnu | sparcv9-*-kfreebsd*-gnu)
588 targ_emul=elf64_sparc_fbsd
589 targ_extra_emuls="elf64_sparc elf32_sparc"
590 targ_extra_libpath=$targ_extra_emuls
591 tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;;
592 sparc*-*-linux*aout*) targ_emul=sparclinux
593 targ_extra_emuls="elf32_sparc sun4"
594 tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'`
595 tdir_sun4=sparc-sun-sunos4 ;;
596 sparc64-*-linux-*) targ_emul=elf64_sparc
597 targ_extra_emuls="elf32_sparc sparclinux sun4"
598 targ_extra_libpath=elf32_sparc
599 tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
600 tdir_sparclinux=${tdir_elf32_sparc}aout
601 tdir_sun4=sparc-sun-sunos4 ;;
602 sparc*-*-linux-*) targ_emul=elf32_sparc
603 targ_extra_emuls="sparclinux elf64_sparc sun4"
604 targ_extra_libpath=elf64_sparc
605 tdir_sparclinux=${targ_alias}aout
606 tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
607 tdir_sun4=sparc-sun-sunos4 ;;
608 sparc64-*-netbsd* | sparc64-*-openbsd*)
609 targ_emul=elf64_sparc
610 targ_extra_emuls="elf32_sparc" ;;
611 sparc*-*-netbsd*elf*) targ_emul=elf32_sparc ;;
612 sparc*-*-netbsd*) targ_emul=sparcnbsd ;;
613 sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
614 targ_emul=elf32_sparc_sol2
615 targ_extra_emuls=elf32_sparc ;;
616 sparc-*-solaris2*) targ_emul=elf32_sparc_sol2
617 targ_extra_emuls="elf32_sparc elf64_sparc_sol2 elf64_sparc"
618 targ_extra_libpath=$targ_extra_emuls
619 tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'` ;;
620 sparcv9-*-solaris2* | sparc64-*-solaris2*)
621 targ_emul=elf64_sparc_sol2
622 targ_extra_emuls="elf64_sparc elf32_sparc_sol2 elf32_sparc"
623 targ_extra_libpath=$targ_extra_emuls
624 tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;;
625 sparc*-*-solaris2*) targ_emul=elf32_sparc ;;
626 sparc*-wrs-vxworks*) targ_emul=sparcaout ;;
627 sparc-*-rtems*) targ_emul=elf32_sparc
628 ;;
629 spu-*-elf*) targ_emul=elf32_spu ;;
630 tic30-*-*aout*) targ_emul=tic30aout ;;
631 tic30-*-*coff*) targ_emul=tic30coff ;;
632 tic4x-*-* | c4x-*-*) targ_emul=tic4xcoff ; targ_extra_emuls="tic3xcoff tic3xcoff_onchip" ;;
633 tic54x-*-* | c54x*-*-*) targ_emul=tic54xcoff ;;
634 tic6x-*-*) targ_emul=elf32_tic6x_le
635 targ_extra_emuls="elf32_tic6x_be"
636 ;;
637 tic80-*-*) targ_emul=tic80coff
638 ;;
639 v850-*-*) targ_emul=v850 ;;
640 v850e-*-*) targ_emul=v850 ;;
641 v850ea-*-*) targ_emul=v850
642 ;;
643 vax-dec-ultrix* | vax-dec-bsd*) targ_emul=vax ;;
644 vax-*-netbsdelf*) targ_emul=elf32vax
645 targ_extra_emuls=vaxnbsd ;;
646 vax-*-netbsdaout* | vax-*-netbsd*)
647 targ_emul=vaxnbsd
648 targ_extra_emuls=elf32vax ;;
649 vax-*-linux-*) targ_emul=elf32vax
650 ;;
651 w65-*-*) targ_emul=w65
652 ;;
653 xc16x-*-elf) targ_emul=elf32xc16x
654 targ_extra_emuls="elf32xc16xl elf32xc16xs"
655 ;;
656 xstormy16-*-*) targ_emul=elf32xstormy16
657 ;;
658 xtensa*-*-*) targ_emul=elf32xtensa
659 ;;
660 z80-*-coff) targ_emul=z80
661 ;;
662 z8k-*-coff) targ_emul=z8002; targ_extra_emuls=z8001
663 ;;
664 *-*-ieee*) targ_emul=vanilla
665 ;;
666 *-tandem-none) targ_emul=st2000
667 ;;
668 *)
669 echo 2>&1 "*** ld does not support target ${targ}"
670 echo 2>&1 "*** see ld/configure.tgt for supported targets"
671 exit 1
672
673 esac
674
675 NATIVE_LIB_DIRS='/usr/local/lib /lib /usr/lib'
676 case "${target}" in
677
678 *-*-dragonfly*)
679 NATIVE_LIB_DIRS='/usr/lib /usr/pkg/lib /usr/local/lib'
680 ;;
681
682 *-*-freebsd*)
683 NATIVE_LIB_DIRS='/lib /usr/lib /usr/local/lib'
684 ;;
685
686 hppa*64*-*-hpux11*)
687 NATIVE_LIB_DIRS=/usr/lib/pa20_64
688 ;;
689
690 i[3-7]86-*-sysv4*)
691 NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
692 ;;
693
694 i[3-7]86-*-solaris*)
695 NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
696 ;;
697
698 i[3-7]86-pc-interix*)
699 NATIVE_LIB_DIRS='/usr/local/lib $$INTERIX_ROOT/usr/lib /lib /usr/lib'
700 ;;
701
702 ia64-*-aix*)
703 NATIVE_LIB_DIRS='/usr/local/lib /usr/lib/ia64l64 /lib /usr/lib'
704 ;;
705
706 sparc*-*-solaris2*)
707 NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
708 ;;
709
710 spu-*-elf*)
711 # This allows to build a pair of PPU/SPU toolchains with common sysroot.
712 NATIVE_LIB_DIRS='/lib'
713 ;;
714
715 i[03-9x]86-*-cygwin*)
716 NATIVE_LIB_DIRS='/usr/lib /usr/lib/w32api'
717 ;;
718
719 *-*-linux*)
720 ;;
721
722 *-*-netbsd*)
723 ;;
724
725 alpha*-*-*)
726 NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
727 ;;
728
729 esac