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
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)
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.
30 aarch64_be-*-elf) targ_emul=aarch64elfb
31 targ_extra_emuls="aarch64elf armelfb armelf" ;;
32 aarch64-*-elf) targ_emul=aarch64elf
33 targ_extra_emuls="aarch64elfb armelf armelfb" ;;
34 aarch64_be-*-linux*) targ_emul=aarch64linuxb
35 targ_extra_emuls="aarch64linux aarch64elfb aarch64elf armelfb_linux_eabi armelf_linux_eabi armelfb armelf" ;;
36 aarch64-*-linux*) targ_emul=aarch64linux
37 targ_extra_emuls="aarch64linuxb aarch64elf aarch64elfb armelf_linux_eabi armelfb_linux_eabi armelf armelfb" ;;
38 alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
39 targ_emul=elf64alpha_fbsd
40 targ_extra_emuls="elf64alpha alpha"
41 tdir_alpha=`echo ${targ_alias} | sed -e 's/freebsd/freebsdecoff/'` ;;
42 alpha*-*-linuxecoff*) targ_emul=alpha targ_extra_emuls=elf64alpha
43 tdir_elf64alpha=`echo ${targ_alias} | sed -e 's/ecoff//'` ;;
44 alpha*-*-linux-*) targ_emul=elf64alpha targ_extra_emuls=alpha
45 tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'` ;;
46 alpha*-*-osf*) targ_emul=alpha ;;
47 alpha*-*-gnu*) targ_emul=elf64alpha ;;
48 alpha*-*-netware*) targ_emul=alpha ;;
49 alpha*-*-netbsd*) targ_emul=elf64alpha_nbsd ;;
50 alpha*-*-openbsd*) targ_emul=elf64alpha ;;
51 alpha*-*-*vms*) targ_emul=alphavms
53 arc-*-elf*) targ_emul=arcelf
55 arm-epoc-pe) targ_emul=arm_epoc_pe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
56 arm*-*-cegcc*) targ_emul=arm_wince_pe ; targ_extra_ofiles="deffilep.o pe-dll.o"
57 LIB_PATH='${tooldir}/lib/w32api' ;;
58 arm-wince-pe | arm-*-wince | arm*-*-mingw32ce*)
59 targ_emul=arm_wince_pe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
60 arm-*-pe) targ_emul=armpe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
61 arm-*-aout | armel-*-aout) targ_emul=armaoutl ;;
62 armeb-*-aout) targ_emul=armaoutb ;;
63 arm-*-coff) targ_emul=armcoff ;;
64 arm-*-freebsd* | arm-*-kfreebsd*-gnu)
66 targ_extra_emuls="armelf" ;;
67 armeb-*-netbsdelf*) targ_emul=armelfb_nbsd;
68 targ_extra_emuls="armelf_nbsd armelf armnbsd" ;;
69 arm-*-netbsdelf*) targ_emul=armelf_nbsd;
70 targ_extra_emuls="armelfb_nbsd armelf armnbsd" ;;
71 arm-*-netbsd*) targ_emul=armnbsd;
72 targ_extra_emuls="armelf armelf_nbsd armelfb_nbsd" ;;
73 arm-*-nto*) targ_emul=armnto ;;
74 arm-*-openbsd*) targ_emul=armnbsd ;;
75 arm-*-rtems*) targ_emul=armelf ;;
76 armeb-*-elf) targ_emul=armelfb ;;
77 arm-*-elf | arm*-*-eabi*)
79 arm*-*-symbianelf*) targ_emul=armsymbian;;
80 arm-*-kaos*) targ_emul=armelf ;;
81 arm9e-*-elf) targ_emul=armelf ;;
82 arm*b-*-linux-*eabi*) targ_emul=armelfb_linux_eabi
83 targ_extra_emuls=armelf_linux_eabi
84 targ_extra_libpath=$targ_extra_emuls
86 arm*b-*-linux-*) targ_emul=armelfb_linux
87 targ_extra_emuls="armelfb armelf armelf_linux"
88 targ_extra_libpath="armelf_linux"
90 arm*-*-linux-*eabi*) targ_emul=armelf_linux_eabi
91 targ_extra_emuls=armelfb_linux_eabi
92 targ_extra_libpath=$targ_extra_emuls
94 arm*-*-linux-*) targ_emul=armelf_linux
95 targ_extra_emuls="armelf armelfb armelfb_linux"
96 targ_extra_libpath="armelfb_linux"
98 arm*b-*-nacl*) targ_emul=armelfb_nacl
99 targ_extra_emuls="armelf_nacl elf_i386_nacl"
100 targ_extra_libpath=$targ_extra_emuls
101 targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
102 targ64_extra_libpath=$targ64_extra_emuls
104 arm*-*-nacl*) targ_emul=armelf_nacl
105 targ_extra_emuls="armelfb_nacl elf_i386_nacl"
106 targ_extra_libpath=$targ_extra_emuls
107 targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
108 targ64_extra_libpath=$targ64_extra_emuls
110 arm*-*-uclinux*eabi*) targ_emul=armelf_linux_eabi
111 targ_extra_emuls=armelfb_linux_eabi
112 targ_extra_libpath=$targ_extra_emuls
114 arm*-*-uclinux*) targ_emul=armelf_linux
115 targ_extra_emuls="armelf armelfb armelfb_linux"
116 targ_extra_libpath="armelfb_linux"
118 arm-*-vxworks) targ_emul=armelf_vxworks ;;
119 arm*-*-conix*) targ_emul=armelf ;;
120 avr-*-*) targ_emul=avr2
121 targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7"
123 bfin-*-elf) targ_emul=elf32bfin;
124 targ_extra_emuls="elf32bfinfd"
125 targ_extra_libpath=$targ_extra_emuls
127 bfin-*-rtems*) targ_emul=elf32bfin;
128 targ_extra_emuls="elf32bfinfd"
129 targ_extra_libpath=$targ_extra_emuls
131 bfin-*-uclinux*) targ_emul=elf32bfin;
132 targ_extra_emuls="elf32bfinfd"
133 targ_extra_libpath=$targ_extra_emuls
135 bfin-*-linux-uclibc*) targ_emul=elf32bfinfd;
136 targ_extra_emuls="elf32bfin"
137 targ_extra_libpath=$targ_extra_emuls
139 cr16-*-elf*) targ_emul=elf32cr16 ;;
140 cr16c-*-elf*) targ_emul=elf32cr16c
142 cris-*-*aout*) targ_emul=crisaout
143 targ_extra_emuls="criself crislinux"
144 targ_extra_libpath=$targ_extra_emuls ;;
145 cris-*-linux-* | crisv32-*-linux-*)
146 targ_emul=crislinux ;;
147 cris-*-* | crisv32-*-*) targ_emul=criself
148 targ_extra_emuls="crisaout crislinux"
149 targ_extra_libpath=$targ_extra_emuls
151 crx-*-elf*) targ_emul=elf32crx
153 d10v-*-*) targ_emul=d10velf ;;
154 d30v-*-*ext*) targ_emul=d30v_e; targ_extra_emuls="d30velf d30v_o" ;;
155 d30v-*-*onchip*) targ_emul=d30v_o; targ_extra_emuls="d30velf d30v_e" ;;
156 d30v-*-*) targ_emul=d30velf; targ_extra_emuls="d30v_e d30v_o"
158 dlx-*-elf*) targ_emul=elf32_dlx
160 epiphany-*-elf) targ_emul=elf32epiphany
161 targ_extra_emuls="elf32epiphany_4x4"
163 fido*-*-elf*) targ_emul=m68kelf ;;
164 fr30-*-*) targ_emul=elf32fr30
166 frv-*-*linux*) targ_emul=elf32frvfd ;;
167 frv-*-*) targ_emul=elf32frv ; targ_extra_emuls="elf32frvfd"
169 moxie-*-*) targ_emul=elf32moxie
171 h8300-*-hms* | h8300-*-coff* | h8300-*-rtemscoff*)
172 targ_emul=h8300; targ_extra_emuls="h8300h h8300s h8300hn h8300sn h8300sx h8300sxn" ;;
173 h8300-*-elf* | h8300-*-rtems*)
175 targ_extra_emuls="h8300helf h8300self h8300hnelf h8300snelf h8300sxelf h8300sxnelf" ;;
176 h8500-*-hms* | h8500-*-coff* | h8500-*-rtems*)
178 targ_extra_emuls="h8500s h8500b h8500m h8500c"
180 hppa*64*-*-linux-*) targ_emul=hppa64linux ;;
181 hppa*64*-hpux*) targ_emul=elf64hppa ;;
182 hppa*-*-linux-*) targ_emul=hppalinux ;;
183 hppa*-*-*elf*) targ_emul=hppaelf ;;
184 hppa*-*-lites*) targ_emul=hppaelf ;;
185 hppa*-*-netbsd*) targ_emul=hppanbsd ;;
186 hppa*-*-openbsd*) targ_emul=hppaobsd
188 i370-*-elf* | i370-*-linux-*) targ_emul=elf32i370
190 i[3-7]86-*-nto-qnx*) targ_emul=i386nto ;;
191 i[3-7]86-*-vsta) targ_emul=vsta ;;
192 i[3-7]86-*-go32) targ_emul=i386go32 ;;
193 i[3-7]86-*-msdosdjgpp*) targ_emul=i386go32 ;;
194 i[3-7]86-*-aix*) targ_emul=i386coff ;;
195 i[3-7]86-*-sco*) targ_emul=i386coff ;;
196 i[3-7]86-*-isc*) targ_emul=i386coff ;;
197 i[3-7]86-*-lynxos*) targ_emul=i386lynx ;;
198 i[3-7]86-*-coff) targ_emul=i386coff ;;
199 i[3-7]86-*-rtems*) targ_emul=elf_i386 ;;
200 i[3-7]86-*-aros*) targ_emul=elf_i386 ;;
201 i[3-7]86-*-rdos*) targ_emul=elf_i386 ;;
202 x86_64-*-rdos*) targ_emul=elf_x86_64 ;;
203 i[3-7]86-*-bsd) targ_emul=i386bsd ;;
204 i[3-7]86-*-bsd386) targ_emul=i386bsd ;;
205 i[3-7]86-*-bsdi*) targ_emul=i386bsd ;;
206 i[3-7]86-*-aout) targ_emul=i386aout ;;
207 i[3-7]86-*-linux*aout*) targ_emul=i386linux
208 targ_extra_emuls=elf_i386
209 tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` ;;
210 i[3-7]86-*-linux*oldld) targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
211 i[3-7]86-*-linux-*) targ_emul=elf_i386
212 targ_extra_emuls=i386linux
213 targ64_extra_emuls="elf_x86_64 elf32_x86_64 elf_l1om elf_k1om"
214 targ64_extra_libpath=elf_x86_64
215 targ_extra_libpath=elf32_x86_64
216 tdir_i386linux=${targ_alias}aout ;;
217 x86_64-*-linux-gnux32) targ_emul=elf32_x86_64
218 targ_extra_emuls="elf_x86_64 elf_i386 i386linux elf_l1om elf_k1om"
219 targ_extra_libpath="elf_i386 elf_x86_64 elf_l1om elf_k1om"
220 tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'`
221 tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'` ;;
222 x86_64-*-linux-*) targ_emul=elf_x86_64
223 targ_extra_emuls="elf32_x86_64 elf_i386 i386linux elf_l1om elf_k1om"
224 targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
225 tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
226 tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
227 i[3-7]86-*-sysv[45]*) targ_emul=elf_i386 ;;
228 i[3-7]86-*-solaris2*) targ_emul=elf_i386_sol2
229 targ_extra_emuls="elf_i386_ldso elf_i386 elf_x86_64_sol2 elf_x86_64 elf_l1om elf_k1om"
230 targ_extra_libpath=$targ_extra_emuls
233 targ_emul=elf_x86_64_sol2
234 targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_l1om elf_k1om"
235 targ_extra_libpath=$targ_extra_emuls
236 tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
237 i[3-7]86-*-unixware) targ_emul=elf_i386 ;;
238 i[3-7]86-*-solaris*) targ_emul=elf_i386_ldso
239 targ_extra_emuls="elf_i386"
240 targ_extra_libpath=$targ_extra_emuls
242 i[3-7]86-*-netbsdelf* | \
243 i[3-7]86-*-netbsd*-gnu* | \
244 i[3-7]86-*-knetbsd*-gnu)
246 targ_extra_emuls=i386nbsd ;;
247 i[3-7]86-*-netbsdpe*) targ_emul=i386pe
248 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
249 i[3-7]86-*-netbsd*) targ_emul=i386nbsd
250 targ_extra_emuls=elf_i386 ;;
251 x86_64-*-netbsd*) targ_emul=elf_x86_64
252 targ_extra_emuls="elf_i386 i386nbsd elf_l1om elf_k1om"
253 tdir_elf_i386=`echo ${targ_alias} | \
254 sed -e 's/x86_64/i386/'`
255 case "${tdir_elf_i386}" in
257 *) tdir_elf_i386=`echo ${tdir_elf_i386} | \
258 sed -e 's/netbsd/netbsdelf/'`;;
260 i[3-7]86-*-netware) targ_emul=i386nw ;;
261 i[3-7]86-*-elf*) targ_emul=elf_i386 ;;
262 x86_64-*-elf*) targ_emul=elf_x86_64
263 targ_extra_emuls="elf_i386 elf_l1om elf_k1om"
265 i[3-7]86-*-kaos*) targ_emul=elf_i386 ;;
266 i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12])
268 i[3-7]86-*-dragonfly*) targ_emul=elf_i386
269 targ_extra_emuls="i386bsd" ;;
270 x86_64-*-dragonfly*) targ_emul=elf_x86_64
271 targ_extra_emuls="elf_i386 elf_l1om elf_k1om" ;;
272 i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
273 targ_emul=elf_i386_fbsd
274 targ_extra_emuls="elf_i386 i386bsd" ;;
275 x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
276 targ_emul=elf_x86_64_fbsd
277 targ_extra_emuls="elf_i386_fbsd elf_x86_64 elf_i386 elf_l1om elf_l1om_fbsd elf_k1om elf_k1om_fbsd"
278 targ_extra_libpath="elf_i386_fbsd"
279 tdir_elf_i386_fbsd=`echo ${targ_alias} \
280 | sed -e 's/x86_64/i386/'`
281 tdir_elf_i386=`echo ${targ_alias} \
282 | sed -e 's/x86_64/i386/'` ;;
283 i[3-7]86-*-sysv*) targ_emul=i386coff ;;
284 i[3-7]86-*-ptx*) targ_emul=i386coff ;;
285 i[3-7]86-*-mach*) targ_emul=i386mach ;;
286 i[3-7]86-*-gnu*) targ_emul=elf_i386 ;;
287 i[3-7]86-*-msdos*) targ_emul=i386msdos; targ_extra_emuls=i386aout ;;
288 i[3-7]86-*-moss*) targ_emul=i386moss; targ_extra_emuls=i386msdos ;;
289 i[3-7]86-*-winnt*) targ_emul=i386pe ;
290 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
291 i[3-7]86-*-pe) targ_emul=i386pe ;
292 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
293 i[3-7]86-*-cygwin*) targ_emul=i386pe ;
294 targ_extra_ofiles="deffilep.o pe-dll.o"
295 test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;;
296 i[3-7]86-*-mingw32*) targ_emul=i386pe ;
297 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
298 x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ;
299 targ_extra_emuls=i386pe ;
300 targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;;
301 x86_64-*-mingw*) targ_emul=i386pep ;
302 targ_extra_emuls=i386pe
303 targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;;
304 i[3-7]86-*-interix*) targ_emul=i386pe_posix;
305 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
306 i[3-7]86-*-beospe*) targ_emul=i386beos ;;
307 i[3-7]86-*-beos*) targ_emul=elf_i386_be ;;
308 i[3-7]86-*-vxworks*) targ_emul=elf_i386_vxworks ;;
309 i[3-7]86-*-chaos) targ_emul=elf_i386_chaos
311 i[3-7]86-*-nacl*) targ_emul=elf_i386_nacl
312 targ_extra_emuls="armelf_nacl armelfb_nacl"
313 targ_extra_libpath=$targ_extra_emuls
314 targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
315 targ64_extra_libpath=$targ64_extra_emuls
317 x86_64-*-nacl*) targ_emul=elf32_x86_64_nacl
318 targ_extra_emuls="elf_i386_nacl elf_x86_64_nacl armelf_nacl armelfb_nacl"
319 targ_extra_libpath=$targ_extra_emuls
320 tdir_elf_i386_nacl=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
322 i860-*-coff) targ_emul=coff_i860 ;;
323 i860-stardent-sysv4* | i860-stardent-elf*)
326 i960-wrs-vxworks5.0*) targ_emul=gld960 ;;
327 i960-wrs-vxworks5*) targ_emul=gld960coff ;;
328 i960-wrs-vxworks*) targ_emul=gld960 ;;
329 i960-*-coff) targ_emul=gld960coff ;;
330 i960-intel-nindy) targ_emul=gld960 ;;
331 i960-*-rtems*) targ_emul=gld960coff ;;
332 i960-*-elf*) targ_emul=elf32_i960
334 ia64-*-elf*) targ_emul=elf64_ia64 ;;
335 ia64-*-freebsd* | ia64-*-kfreebsd*-gnu)
336 targ_emul=elf64_ia64_fbsd
337 targ_extra_emuls="elf64_ia64" ;;
338 ia64-*-netbsd*) targ_emul=elf64_ia64 ;;
339 ia64-*-linux*) targ_emul=elf64_ia64 ;;
340 ia64-*-*vms*) targ_emul=elf64_ia64_vms ;;
341 ia64-*-aix*) targ_emul=elf64_aix
343 ip2k-*-elf) targ_emul=elf32ip2k
345 iq2000-*-elf) targ_emul=elf32iq2000 ; targ_extra_emuls="elf32iq10"
347 lm32-*-*linux*) targ_emul=elf32lm32fd ;;
348 lm32-*-*) targ_emul=elf32lm32 ; targ_extra_emuls="elf32lm32fd"
350 m32c-*-elf | m32c-*-rtems*)
353 m32r*le-*-elf*) targ_emul=m32rlelf ;;
354 m32r*-*-elf* | m32r*-*-rtems*)
356 m32r*le-*-linux-*) targ_emul=m32rlelf_linux ;;
357 m32r*-*-linux-*) targ_emul=m32relf_linux
359 m68hc11-*-*|m6811-*-*) targ_emul=m68hc11elf
360 targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;;
361 m68hc12-*-*|m6812-*-*) targ_emul=m68hc12elf
362 targ_extra_emuls="m68hc12elfb m68hc11elf m68hc11elfb" ;;
363 m68*-sun-sunos[34]*) targ_emul=sun3 ;;
364 m68*-wrs-vxworks*) targ_emul=sun3 ;;
365 m68*-ericsson-ose) targ_emul=sun3 ;;
366 m68*-apple-aux*) targ_emul=m68kaux ;;
367 m68k-sony-*) targ_emul=news ;;
368 m68k-hp-bsd*) targ_emul=hp300bsd ;;
369 m68*-motorola-sysv*) targ_emul=delta68 ;;
370 m68*-*-aout) targ_emul=m68kaout ;;
371 m68*-*-coff) targ_emul=m68kcoff ;;
372 m68*-*-elf) targ_emul=m68kelf ;;
373 m68*-*-hpux*) targ_emul=hp3hpux ;;
374 m68k-*-linux*aout*) targ_emul=m68klinux
375 targ_extra_emuls=m68kelf
376 tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'` ;;
377 m68k-*-linux-*) targ_emul=m68kelf
378 targ_extra_emuls=m68klinux
379 tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'` ;;
380 m68k-*-uclinux*) targ_emul=m68kelf ;;
381 m68*-*-gnu*) targ_emul=m68kelf ;;
382 m68*-*-netbsd*4k*) targ_emul=m68k4knbsd
383 targ_extra_emuls="m68knbsd m68kelfnbsd" ;;
384 m68*-*-netbsdelf*) targ_emul=m68kelfnbsd
385 targ_extra_emuls="m68knbsd m68k4knbsd" ;;
386 m68*-*-netbsdaout* | m68*-*-netbsd*)
388 targ_extra_emuls="m68kelfnbsd m68k4knbsd" ;;
389 m68*-*-psos*) targ_emul=m68kpsos ;;
390 m68*-*-rtemscoff*) targ_emul=m68kcoff ;;
391 m68*-*-rtems*) targ_emul=m68kelf
393 m8*-*-*) targ_emul=m88kbcs
395 mcore-*-pe) targ_emul=mcorepe ;
396 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
397 mcore-*-elf) targ_emul=elf32mcore
399 mep-*-elf) targ_emul=elf32mep ;;
400 microblazeel*-linux*) targ_emul="elf32mbel_linux"
401 targ_extra_emuls="elf32mb_linux"
403 microblaze*-linux*) targ_emul="elf32mb_linux"
404 targ_extra_emuls="elf32mbel_linux"
406 microblazeel*) targ_emul=elf32microblazeel
407 targ_extra_emuls=elf32microblaze
409 microblaze*) targ_emul=elf32microblaze
410 targ_extra_emuls=elf32microblazeel
412 mips*-*-pe) targ_emul=mipspe ;
413 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
414 mips*-dec-ultrix*) targ_emul=mipslit ;;
415 mips*-dec-osf*) targ_emul=mipslit ;;
416 mips*-sgi-irix5*) targ_emul=elf32bsmip ;;
417 mips*-sgi-irix6*) targ_emul=elf32bmipn32
418 targ_extra_emuls="elf32bsmip elf64bmip"
419 targ_extra_libpath=$targ_extra_emuls ;;
420 mips*-sgi-irix*) targ_emul=mipsbig ;;
421 mips*el-*-ecoff*) targ_emul=mipsidtl ;;
422 mips*-*-ecoff*) targ_emul=mipsidt ;;
423 mips*el-*-netbsd*) targ_emul=elf32ltsmip
424 targ_extra_emuls="elf32btsmip elf64ltsmip elf64btsmip"
426 mips*-*-netbsd*) targ_emul=elf32btsmip
427 targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip"
429 mips*-*-bsd*) targ_emul=mipsbig ;;
430 mips*vr4300el-*-elf*) targ_emul=elf32l4300 ;;
431 mips*vr4300-*-elf*) targ_emul=elf32b4300 ;;
432 mips*vr4100el-*-elf*) targ_emul=elf32l4300 ;;
433 mips*vr4100-*-elf*) targ_emul=elf32b4300 ;;
434 mips*vr5000el-*-elf*) targ_emul=elf32l4300 ;;
435 mips*vr5000-*-elf*) targ_emul=elf32b4300 ;;
436 mips*el-sde-elf*) targ_emul=elf32ltsmip
437 targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" ;;
438 mips*-sde-elf* | mips*-mti-elf*)
439 targ_emul=elf32btsmip
440 targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" ;;
441 mips*el-*-elf*) targ_emul=elf32elmip ;;
442 mips*-*-elf*) targ_emul=elf32ebmip ;;
443 mips*-*-rtems*) targ_emul=elf32ebmip ;;
444 mips*el-*-vxworks*) targ_emul=elf32elmipvxworks
445 targ_extra_emuls="elf32ebmipvxworks" ;;
446 mips*-*-vxworks*) targ_emul=elf32ebmipvxworks
447 targ_extra_emuls="elf32elmipvxworks" ;;
448 mips*-*-windiss) targ_emul=elf32mipswindiss ;;
449 mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
450 targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
451 targ_extra_libpath=$targ_extra_emuls ;;
452 mips64*-*-linux-*) targ_emul=elf32btsmipn32
453 targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
454 targ_extra_libpath=$targ_extra_emuls ;;
455 mips*el-*-linux-*) targ_emul=elf32ltsmip
456 targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
457 targ_extra_libpath=$targ_extra_emuls ;;
458 mips*-*-linux-*) targ_emul=elf32btsmip
459 targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
460 targ_extra_libpath=$targ_extra_emuls ;;
461 mips64*el-*-freebsd* | mips64*el-*-kfreebsd*-gnu)
462 targ_emul=elf32ltsmipn32_fbsd
463 targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
464 targ_extra_libpath=$targ_extra_emuls ;;
465 mips64*-*-freebsd* | mips64*-*-kfreebsd*-gnu)
466 targ_emul=elf32btsmipn32_fbsd
467 targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
468 targ_extra_libpath=$targ_extra_emuls ;;
469 mips*el-*-freebsd* | mips*el-*-kfreebsd*-gnu)
470 targ_emul=elf32ltsmip_fbsd
471 targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmipn32_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
472 targ_extra_libpath=$targ_extra_emuls ;;
473 mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
474 targ_emul=elf32btsmip_fbsd
475 targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmipn32_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
476 targ_extra_libpath=$targ_extra_emuls ;;
477 mips*-*-lnews*) targ_emul=mipslnews ;;
478 mips*-*-sysv4*) targ_emul=elf32btsmip
480 mmix-*-*) targ_emul=mmo
481 targ_extra_emuls=elf64mmix
483 am34-*-linux*) targ_emul=elf32am33lin ;;
484 am33_2.0-*-linux*) targ_emul=elf32am33lin ;;
485 mn10200-*-*) targ_emul=mn10200 ;;
486 mn10300-*-*) targ_emul=mn10300
488 mt-*elf) targ_emul=elf32mt
490 msp430-*-*) targ_emul=msp430x110
491 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"
493 ns32k-pc532-mach* | ns32k-pc532-ux*) targ_emul=pc532macha ;;
494 ns32k-*-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd
496 openrisc-*-*) targ_emul=elf32openrisc ;;
497 or32-*-coff) targ_emul=or32 ;;
498 or32-*-elf) targ_emul=or32elf ;;
499 or32-*-rtems*) targ_emul=or32elf
501 pdp11-*-*) targ_emul=pdp11
503 pjl*-*-*) targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;;
504 pj*-*-*) targ_emul=pjelf
506 powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu)
507 targ_emul=elf32ppc_fbsd
508 targ_extra_emuls="elf32ppc elf32ppcsim"
509 targ_extra_libpath=elf32ppc;
510 tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'` ;;
511 powerpc64-*-freebsd*)
512 targ_emul=elf64ppc_fbsd
513 targ_extra_emuls="elf64ppc elf32ppc_fbsd elf32ppc"
514 targ_extra_libpath="elf32ppc_fbsd elf32ppc"
515 tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
516 tdir_elf32ppc_fbsd=$tdir_elf32ppc
518 powerpc*-*-linux*) case "${targ}" in
519 *64*) targ_emul=elf64ppc
520 targ_extra_emuls="elf32ppclinux elf32ppc elf32ppcsim"
521 targ_extra_libpath="elf32ppclinux elf32ppc"
522 tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
523 tdir_elf32ppclinux=$tdir_elf32ppc
524 tdir_elf32ppcsim=$tdir_elf32ppc
526 *) targ_emul=elf32ppclinux
527 targ_extra_emuls="elf32ppc elf32ppcsim"
528 targ_extra_libpath=elf32ppc
529 targ64_extra_emuls=elf64ppc
530 targ64_extra_libpath=elf64ppc
533 powerpc*le-*-elf* | powerpc*le-*-eabi* | powerpc*le-*-solaris* \
534 | powerpc*le-*-sysv* | powerpc*le-*-vxworks*)
536 *64*) targ_emul=elf64lppc
537 targ_extra_emuls="elf32lppc elf32lppcsim"
538 targ_extra_libpath=elf32lppc
539 tdir_elf32lppc=`echo "${targ_alias}" | sed -e 's/64//'`
540 tdir_elf32lppcsim=$tdir_elf32lppc
542 *) targ_emul=elf32lppc
543 targ_extra_emuls=elf32lppcsim
544 targ64_extra_emuls=elf64lppc
545 targ64_extra_libpath=elf64lppc
548 powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \
549 | powerpc*-*-netbsd* | powerpc-*-openbsd* | powerpc*-*-kaos*)
551 *64*) targ_emul=elf64ppc
552 targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim"
553 targ_extra_libpath="elf32ppc elf32ppclinux"
554 tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
555 tdir_elf32ppclinux=$tdir_elf32ppc
556 tdir_elf32ppcsim=$tdir_elf32ppc
558 *) targ_emul=elf32ppc
559 targ_extra_emuls="elf32ppclinux elf32ppcsim"
560 targ_extra_libpath=elf32ppclinux
561 targ64_extra_emuls=elf64ppc
562 targ64_extra_libpath=elf64ppc
566 targ_emul=elf32ppcvxworks
567 targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" ;;
568 powerpc-*-nto*) targ_emul=elf32ppcnto ;;
569 powerpcle-*-nto*) targ_emul=elf32lppcnto ;;
570 powerpc-*-rtems*) targ_emul=elf32ppc ;;
571 powerpc-*-macos*) targ_emul=ppcmacos ;;
572 powerpc-*-netware*) targ_emul=ppcnw ;;
573 powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*)
575 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
576 powerpc-*-aix[5-9]*) targ_emul=aix5ppc ;;
577 powerpc-*-aix*) targ_emul=aixppc ;;
578 powerpc-*-beos*) targ_emul=aixppc ;;
579 powerpc-*-windiss*) targ_emul=elf32ppcwindiss ;;
580 powerpc-*-lynxos*) targ_emul=ppclynx ;;
581 rs6000-*-aix[5-9]*) targ_emul=aix5rs6 ;;
582 rs6000-*-aix*) targ_emul=aixrs6
584 rl78-*-*) targ_emul=elf32rl78 ;;
585 rx-*-*) targ_emul=elf32rx ;;
586 s390x-*-linux*) targ_emul=elf64_s390
587 targ_extra_emuls=elf_s390
588 targ_extra_libpath=$targ_extra_emuls
589 tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
590 s390x-*-tpf*) targ_emul=elf64_s390
591 tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
592 s390-*-linux*) targ_emul=elf_s390
593 targ64_extra_emuls=elf64_s390
594 targ64_extra_libpath=elf64_s390
595 tdir_elf64_s390=`echo ${targ_alias} | sed -e 's/s390/s390x/'`
597 score-*-elf) targ_emul=score7_elf
598 targ_extra_emuls=score3_elf ;;
599 sh-*-linux*) targ_emul=shlelf_linux
600 targ_extra_emuls=shelf_linux
601 targ_extra_libpath=shelf_linux ;;
602 sh64eb-*-linux*) targ_emul=shelf32_linux
603 targ_extra_emuls="shlelf32_linux" ;;
604 sh64-*-linux*) targ_emul=shlelf32_linux
605 targ_extra_emuls="shelf32_linux"
606 targ_extra_libpath=shelf32_linux ;;
607 sh*eb-*-linux*) targ_emul=shelf_linux ;;
608 sh*-*-linux*) targ_emul=shlelf_linux ;;
609 sh5le-*-netbsd*) targ_emul=shlelf32_nbsd
610 targ_extra_emuls="shelf32_nbsd shelf64_nbsd shlelf64_nbsd shelf_nbsd shlelf_nbsd" ;;
611 sh5-*-netbsd*) targ_emul=shelf32_nbsd
612 targ_extra_emuls="shlelf32_nbsd shelf64_nbsd shlelf64_nbsd shelf_nbsd shlelf_nbsd" ;;
613 sh64le-*-netbsd*) targ_emul=shlelf64_nbsd
614 targ_extra_emuls="shelf64_nbsd shelf32_nbsd shlelf32_nbsd shelf_nbsd shlelf_nbsd" ;;
615 sh64-*-netbsd*) targ_emul=shelf64_nbsd
616 targ_extra_emuls="shlelf64_nbsd shelf32_nbsd shlelf32_nbsd shelf_nbsd shlelf_nbsd" ;;
617 sh*l*-*-netbsdelf*) targ_emul=shlelf_nbsd
618 targ_extra_emuls=shelf_nbsd ;;
619 sh*-*-netbsdelf*) targ_emul=shelf_nbsd
620 targ_extra_emuls=shlelf_nbsd ;;
621 sh*-*-symbianelf*) targ_emul=shlsymbian ;;
622 shle*-*-elf* | sh[1234]*le*-*-elf | shle*-*-kaos*)
624 targ_extra_emuls="shelf shl sh" ;;
625 sh-*-rtemscoff*) targ_emul=sh; targ_extra_emuls=shl ;;
626 sh-*-elf* | sh[1234]*-*-elf | sh-*-rtems* | sh-*-kaos*)
628 targ_extra_emuls="shlelf sh shl" ;;
629 sh-*-uclinux* | sh[12]-*-uclinux*)
630 targ_emul=shelf_uclinux
631 targ_extra_emuls="shelf shlelf sh shl shelf_fd shlelf_fd" ;;
632 sh-*-vxworks) targ_emul=shelf_vxworks
633 targ_extra_emuls=shlelf_vxworks ;;
634 sh-*-nto*) targ_emul=shelf_nto
635 targ_extra_emuls=shlelf_nto ;;
636 sh-*-pe) targ_emul=shpe ;
637 targ_extra_ofiles="deffilep.o pe-dll.o" ;;
638 sh-*-*) targ_emul=sh; targ_extra_emuls=shl ;;
639 sh64le-*-elf*) targ_emul=shlelf
640 targ_extra_emuls="shelf shlelf32 shelf32 shlelf64 shelf64"
641 targ_extra_libpath=$targ_extra_emuls ;;
642 sh64-*-elf*) targ_emul=shelf
643 targ_extra_emuls="shlelf shelf32 shlelf32 shelf64 shlelf64"
644 targ_extra_libpath=$targ_extra_emuls ;;
645 sparc64-*-aout*) targ_emul=sparcaout ;;
646 sparc64-*-elf*) targ_emul=elf64_sparc ;;
647 sparc64-*-rtems*) targ_emul=elf64_sparc ;;
648 sparc-sun-sunos4*) targ_emul=sun4 ;;
649 sparclite*-*-elf) targ_emul=elf32_sparc ;;
650 sparclite*-*-coff) targ_emul=coff_sparc ;;
651 sparclite*-fujitsu-*) targ_emul=sparcaout ;;
652 sparc*-*-aout) targ_emul=sparcaout ;;
653 sparc*-*-coff) targ_emul=coff_sparc ;;
654 sparc*-*-elf) targ_emul=elf32_sparc ;;
655 sparc*-*-sysv4*) targ_emul=elf32_sparc ;;
656 sparc*-*-vxworks*) targ_emul=elf32_sparc_vxworks ;;
657 sparc64-*-freebsd* | sparcv9-*-freebsd* | sparc64-*-kfreebsd*-gnu | sparcv9-*-kfreebsd*-gnu)
658 targ_emul=elf64_sparc_fbsd
659 targ_extra_emuls="elf64_sparc elf32_sparc"
660 targ_extra_libpath=$targ_extra_emuls
661 tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;;
662 sparc*-*-linux*aout*) targ_emul=sparclinux
663 targ_extra_emuls="elf32_sparc sun4"
664 tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'`
665 tdir_sun4=sparc-sun-sunos4 ;;
666 sparc64-*-linux-*) targ_emul=elf64_sparc
667 targ_extra_emuls="elf32_sparc sparclinux sun4"
668 targ_extra_libpath=elf32_sparc
669 tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
670 tdir_sparclinux=${tdir_elf32_sparc}aout
671 tdir_sun4=sparc-sun-sunos4 ;;
672 sparc*-*-linux-*) targ_emul=elf32_sparc
673 targ_extra_emuls="sparclinux elf64_sparc sun4"
674 targ_extra_libpath=elf64_sparc
675 tdir_sparclinux=${targ_alias}aout
676 tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
677 tdir_sun4=sparc-sun-sunos4 ;;
678 sparc64-*-netbsd* | sparc64-*-openbsd*)
679 targ_emul=elf64_sparc
680 targ_extra_emuls="elf32_sparc" ;;
681 sparc*-*-netbsd*elf*) targ_emul=elf32_sparc ;;
682 sparc*-*-netbsd*) targ_emul=sparcnbsd ;;
683 sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
684 targ_emul=elf32_sparc_sol2
685 targ_extra_emuls=elf32_sparc ;;
686 sparc-*-solaris2*) targ_emul=elf32_sparc_sol2
687 targ_extra_emuls="elf32_sparc elf64_sparc_sol2 elf64_sparc"
688 targ_extra_libpath=$targ_extra_emuls
689 tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'` ;;
690 sparcv9-*-solaris2* | sparc64-*-solaris2*)
691 targ_emul=elf64_sparc_sol2
692 targ_extra_emuls="elf64_sparc elf32_sparc_sol2 elf32_sparc"
693 targ_extra_libpath=$targ_extra_emuls
694 tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;;
695 sparc*-*-solaris2*) targ_emul=elf32_sparc ;;
696 sparc*-wrs-vxworks*) targ_emul=sparcaout ;;
697 sparc-*-rtems*) targ_emul=elf32_sparc
699 spu-*-elf*) targ_emul=elf32_spu ;;
700 tic30-*-*aout*) targ_emul=tic30aout ;;
701 tic30-*-*coff*) targ_emul=tic30coff ;;
702 tic4x-*-* | c4x-*-*) targ_emul=tic4xcoff ; targ_extra_emuls="tic3xcoff tic3xcoff_onchip" ;;
703 tic54x-*-* | c54x*-*-*) targ_emul=tic54xcoff ;;
704 tic6x-*-elf) targ_emul=elf32_tic6x_elf_le
705 targ_extra_emuls="elf32_tic6x_elf_be elf32_tic6x_le elf32_tic6x_be"
706 targ_extra_libpath=$targ_extra_emuls
708 tic6x-*-uclinux) targ_emul=elf32_tic6x_linux_le
709 targ_extra_emuls="elf32_tic6x_linux_be elf32_tic6x_le elf32_tic6x_be"
710 targ_extra_libpath=$targ_extra_emuls
712 tic80-*-*) targ_emul=tic80coff
714 tilegx-*-*) targ_emul=elf64tilegx
715 targ_extra_emuls="elf64tilegx_be elf32tilegx elf32tilegx_be"
716 targ_extra_libpath=$targ_extra_emuls ;;
717 tilegxbe-*-*) targ_emul=elf64tilegx_be
718 targ_extra_emuls="elf64tilegx elf32tilegx elf32tilegx_be"
719 targ_extra_libpath=$targ_extra_emuls ;;
720 tilepro-*-*) targ_emul=elf32tilepro ;;
721 v850*-*-*) targ_emul=v850_rh850
722 targ_extra_emuls=v850
724 vax-dec-ultrix* | vax-dec-bsd*) targ_emul=vax ;;
725 vax-*-netbsdelf*) targ_emul=elf32vax
726 targ_extra_emuls=vaxnbsd ;;
727 vax-*-netbsdaout* | vax-*-netbsd*)
729 targ_extra_emuls=elf32vax ;;
730 vax-*-linux-*) targ_emul=elf32vax
732 w65-*-*) targ_emul=w65
734 xc16x-*-elf) targ_emul=elf32xc16x
735 targ_extra_emuls="elf32xc16xl elf32xc16xs"
737 xstormy16-*-*) targ_emul=elf32xstormy16
739 xtensa*-*-*) targ_emul=elf32xtensa
741 xgate-*-*) targ_emul=xgateelf
743 z80-*-coff) targ_emul=z80
745 z8k-*-coff) targ_emul=z8002; targ_extra_emuls=z8001
747 *-*-ieee*) targ_emul=vanilla
749 *-tandem-none) targ_emul=st2000
752 echo 2>&1 "*** ld does not support target ${targ}"
753 echo 2>&1 "*** see ld/configure.tgt for supported targets"
758 NATIVE_LIB_DIRS='/usr/local/lib /lib /usr/lib'
762 NATIVE_LIB_DIRS='/usr/lib /usr/pkg/lib /usr/local/lib'
766 NATIVE_LIB_DIRS='/lib /usr/lib /usr/local/lib'
770 NATIVE_LIB_DIRS=/usr/lib/pa20_64
774 NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
778 NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
781 i[3-7]86-pc-interix*)
782 NATIVE_LIB_DIRS='/usr/local/lib $$INTERIX_ROOT/usr/lib /lib /usr/lib'
786 NATIVE_LIB_DIRS='/usr/local/lib /usr/lib/ia64l64 /lib /usr/lib'
790 NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
794 # This allows to build a pair of PPU/SPU toolchains with common sysroot.
795 NATIVE_LIB_DIRS='/lib'
798 i[03-9x]86-*-cygwin*)
799 NATIVE_LIB_DIRS='/usr/lib /usr/lib/w32api'
809 NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'