configure.tgt revision 1.25
1# configure.tgt
2#
3#   Copyright (C) 2013-2015 Free Software Foundation, Inc.
4#
5# This file is free software; you can redistribute it and/or modify
6# it under the terms of the GNU General Public License as published by
7# the Free Software Foundation; either version 3 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13# GNU General Public License for more details.
14#
15# You should have received a copy of the GNU General Public License
16# along with this program; see the file COPYING3.  If not see
17# <http://www.gnu.org/licenses/>.
18
19# This is the linker target specific file.  This is invoked by the
20# autoconf generated configure script.  Putting it in a separate shell
21# file lets us skip running autoconf when modifying target specific
22# information.
23
24# This file switches on the shell variable ${targ}, and sets the
25# following shell variables:
26#  targ_emul		name of linker emulation to use
27#  targ_extra_emuls	additional linker emulations to provide
28#  targ_extra_libpath	additional linker emulations using LIB_PATH
29#  targ_extra_ofiles	additional host-compiled objects needed by the emulation
30#  targ64_extra_emuls	additional linker emulations to provide if
31#  			--enable-64-bit-bfd is given or if host is 64 bit.
32#  targ64_extra_libpath	additional linker emulations using LIB_PATH if
33#  			--enable-64-bit-bfd is given or if host is 64 bit.
34#  NATIVE_LIB_DIRS	library directories to search on this host
35#			(if we are a native or sysrooted linker)
36
37targ_extra_emuls=
38targ_extra_libpath=
39targ_extra_ofiles=
40targ64_extra_emuls=
41targ64_extra_libpath=
42
43# Please try to keep this table in alphabetic order - it makes it
44# much easier to lookup a specific archictecture.  Naturally any
45# architecture variants should be kept together even if their names
46# break the alpha sorting.
47case "${targ}" in
48aarch64_be-*-elf)	targ_emul=aarch64elfb
49			targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf" ;;
50aarch64-*-elf)		targ_emul=aarch64elf
51			targ_extra_emuls="aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb" ;;
52aarch64-*-cloudabi*)	targ_emul=aarch64cloudabi
53			targ_extra_emuls=aarch64cloudabib ;;
54aarch64-*-freebsd*)	targ_emul=aarch64fbsd
55			targ_extra_emuls="aarch64fbsdb aarch64elf" ;;
56aarch64_be-*-linux*)	targ_emul=aarch64linuxb
57			targ_extra_libpath="aarch64linux aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
58			targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath" ;;
59aarch64-*-linux*)	targ_emul=aarch64linux
60			targ_extra_libpath="aarch64linuxb aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
61			targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb $targ_extra_libpath" ;;
62aarch64_be-*-netbsd*)	targ_emul=aarch64nbsdb
63			targ_extra_emuls="aarch64nbsd aarch64elfb aarch64elf armelfb_nbsd_eabihf armelf_nbsd_eabihf armelfb_nbsd_eabi armelf_nbsd_eabi armelfb_nbsd armelf_nbsd armelf armelfb" ;;
64aarch64-*-netbsd*)	targ_emul=aarch64nbsd
65			targ_extra_emuls="aarch64nbsdb aarch64elf aarch64elfb armelf_nbsd_eabihf armelfb_nbsd_eabihf armelf_nbsd_eabi armelfb_nbsd_eabi armelf_nbsd armelfb_nbsd armelf armelfb" ;;
66alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
67		        targ_emul=elf64alpha_fbsd
68			targ_extra_emuls="elf64alpha alpha"
69			tdir_alpha=`echo ${targ_alias} | sed -e 's/freebsd/freebsdecoff/'` ;;
70alpha*-*-linux*ecoff*)	targ_emul=alpha targ_extra_emuls=elf64alpha
71			tdir_elf64alpha=`echo ${targ_alias} | sed -e 's/ecoff//'` ;;
72alpha*-*-linux-*)	targ_emul=elf64alpha targ_extra_emuls=alpha
73			tdir_alpha=`echo ${targ_alias} | sed -e 's/linux\(-gnu\)*/linux\1ecoff/'` ;;
74alpha*-*-osf*)		targ_emul=alpha ;;
75alpha*-*-gnu*)		targ_emul=elf64alpha ;;
76alpha*-*-netware*)	targ_emul=alpha ;;
77alpha*-*-netbsd*)	targ_emul=elf64alpha_nbsd ;;
78alpha*-*-openbsd*)	targ_emul=elf64alpha ;;
79alpha*-*-*vms*)		targ_emul=alphavms
80			;;
81arc*-*-elf*)		targ_emul=arcelf
82            		targ_extra_emuls="arcelf_prof arclinux arclinux_prof arcv2elf arcv2elfx"
83            		;;
84arc*-*-linux-uclibc*)	targ_emul=arclinux
85			targ_extra_emuls="arclinux_prof arcelf arcelf_prof arcv2elf arcv2elfx"
86			;;
87arm-epoc-pe)		targ_emul=arm_epoc_pe ;	targ_extra_ofiles="deffilep.o pe-dll.o" ;;
88arm*-*-cegcc*)		targ_emul=arm_wince_pe ; targ_extra_ofiles="deffilep.o pe-dll.o"
89			LIB_PATH='${tooldir}/lib/w32api' ;;
90arm-wince-pe | arm-*-wince | arm*-*-mingw32ce*)
91			targ_emul=arm_wince_pe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
92arm-*-pe)		targ_emul=armpe ; targ_extra_ofiles="deffilep.o pe-dll.o" ;;
93arm-*-aout | armel-*-aout) targ_emul=armaoutl ;;
94armeb-*-aout)		targ_emul=armaoutb ;;
95arm-*-coff)		targ_emul=armcoff ;;
96arm*b-*-freebsd*)	targ_emul=armelfb_fbsd
97			targ_extra_emuls="armelf_fbsd armelf" ;;
98arm*-*-freebsd* | arm-*-kfreebsd*-gnu)
99	       		targ_emul=armelf_fbsd
100			targ_extra_emuls="armelf" ;;
101arm*eb-*-netbsdelf*-*eabihf*)
102			targ_emul=armelfb_nbsd_eabihf;
103			targ_extra_emuls="armelf_nbsd_eabihf armelf_nbsd_eabi armelfb_nbsd_eabi armelf_nbsd armelfb_nbsd armelf armnbsd" ;;
104arm*eb-*-netbsdelf*-*eabi*)
105			targ_emul=armelfb_nbsd_eabi;
106			targ_extra_emuls="armelf_nbsd_eabi armelf_nbsd_eabihf armelfb_nbsd_eabihf armelf_nbsd armelfb_nbsd armelf armnbsd" ;;
107arm*-*-netbsdelf*-*eabihf*)
108			targ_emul=armelf_nbsd_eabihf;
109			targ_extra_emuls="armelfb_nbsd_eabihf armelf_nbsd_eabi armelfb_nbsd_eabi armelf_nbsd armelfb_nbsd armelf armnbsd" ;;
110arm*-*-netbsdelf*-*eabi*)
111			targ_emul=armelf_nbsd_eabi;
112			targ_extra_emuls="armelfb_nbsd_eabi armelf_nbsd_eabihf armelfb_nbsd_eabihf armelf_nbsd armelfb_nbsd armelf armnbsd" ;;
113arm*eb-*-netbsdelf*)	targ_emul=armelfb_nbsd;
114			targ_extra_emuls="armelf_nbsd armelf armnbsd" ;;
115arm-*-netbsdelf*)	targ_emul=armelf_nbsd;
116			targ_extra_emuls="armelfb_nbsd armelf armnbsd" ;;
117arm-*-netbsd*)		targ_emul=armnbsd;
118			targ_extra_emuls="armelf armelf_nbsd armelfb_nbsd"  ;;
119arm-*-nto*)		targ_emul=armnto ;;
120arm-*-openbsd*)		targ_emul=armnbsd ;;
121arm-*-rtems*)		targ_emul=armelf ;;
122armeb-*-elf | armeb-*-eabi*)
123			targ_emul=armelfb ;;
124arm-*-elf | arm*-*-eabi*)
125	  		targ_emul=armelf ;;
126arm*-*-symbianelf*)     targ_emul=armsymbian;;
127arm-*-kaos*)		targ_emul=armelf ;;
128arm9e-*-elf)		targ_emul=armelf ;;
129arm*b-*-linux-*eabi*)	targ_emul=armelfb_linux_eabi
130			targ_extra_emuls=armelf_linux_eabi
131			targ_extra_libpath=$targ_extra_emuls
132			;;
133arm*b-*-linux-*)	targ_emul=armelfb_linux
134			targ_extra_emuls="armelfb armelf armelf_linux"
135			targ_extra_libpath="armelf_linux"
136			;;
137arm*-*-linux-*eabi*)	targ_emul=armelf_linux_eabi
138			targ_extra_emuls=armelfb_linux_eabi
139			targ_extra_libpath=$targ_extra_emuls
140			;;
141arm*-*-linux-*)	        targ_emul=armelf_linux
142			targ_extra_emuls="armelf armelfb armelfb_linux"
143			targ_extra_libpath="armelfb_linux"
144			;;
145arm*b-*-nacl*)		targ_emul=armelfb_nacl
146			targ_extra_emuls="armelf_nacl elf_i386_nacl"
147			targ_extra_libpath=$targ_extra_emuls
148			targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
149			targ64_extra_libpath=$targ64_extra_emuls
150			;;
151arm*-*-nacl*)		targ_emul=armelf_nacl
152			targ_extra_emuls="armelfb_nacl elf_i386_nacl"
153			targ_extra_libpath=$targ_extra_emuls
154			targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
155			targ64_extra_libpath=$targ64_extra_emuls
156			;;
157arm*-*-uclinux*eabi*)	targ_emul=armelf_linux_eabi
158			targ_extra_emuls=armelfb_linux_eabi
159			targ_extra_libpath=$targ_extra_emuls
160			;;
161arm*-*-uclinux*)	targ_emul=armelf_linux
162			targ_extra_emuls="armelf armelfb armelfb_linux"
163			targ_extra_libpath="armelfb_linux"
164			;;
165arm-*-vxworks)		targ_emul=armelf_vxworks ;;
166arm*-*-conix*)		targ_emul=armelf ;;
167avr-*-*)		targ_emul=avr2
168			targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny"
169			;;
170bfin-*-elf)		targ_emul=elf32bfin;
171			targ_extra_emuls="elf32bfinfd"
172			targ_extra_libpath=$targ_extra_emuls
173			;;
174bfin-*-rtems*)		targ_emul=elf32bfin;
175			targ_extra_emuls="elf32bfinfd"
176			targ_extra_libpath=$targ_extra_emuls
177			;;
178bfin-*-uclinux*)	targ_emul=elf32bfin;
179			targ_extra_emuls="elf32bfinfd"
180			targ_extra_libpath=$targ_extra_emuls
181			;;
182bfin-*-linux-uclibc*)	targ_emul=elf32bfinfd;
183			targ_extra_emuls="elf32bfin"
184			targ_extra_libpath=$targ_extra_emuls
185			;;
186cr16-*-elf*)            targ_emul=elf32cr16 ;;
187cr16c-*-elf*)           targ_emul=elf32cr16c
188			;;
189cris-*-*aout*)		targ_emul=crisaout
190			targ_extra_emuls="criself crislinux"
191			targ_extra_libpath=$targ_extra_emuls ;;
192cris-*-linux-* | crisv32-*-linux-*)
193			targ_emul=crislinux ;;
194cris-*-* | crisv32-*-*)	targ_emul=criself
195			targ_extra_emuls="crisaout crislinux"
196			targ_extra_libpath=$targ_extra_emuls
197			;;
198crx-*-elf*)		targ_emul=elf32crx
199			;;
200d10v-*-*)		targ_emul=d10velf ;;
201d30v-*-*ext*)		targ_emul=d30v_e; targ_extra_emuls="d30velf d30v_o" ;;
202d30v-*-*onchip*)	targ_emul=d30v_o; targ_extra_emuls="d30velf d30v_e" ;;
203d30v-*-*)		targ_emul=d30velf; targ_extra_emuls="d30v_e d30v_o"
204			;;
205dlx-*-elf*)		targ_emul=elf32_dlx
206			;;
207epiphany-*-elf)		targ_emul=elf32epiphany
208			targ_extra_emuls="elf32epiphany_4x4"
209			;;
210fido*-*-elf*)		targ_emul=m68kelf ;;
211fr30-*-*)		targ_emul=elf32fr30
212			;;
213frv-*-*linux*)		targ_emul=elf32frvfd ;;
214frv-*-*)		targ_emul=elf32frv ; targ_extra_emuls="elf32frvfd"
215			;;
216moxie-*-moxiebox*)	targ_emul=moxiebox
217			;;
218moxie-*-*)		targ_emul=elf32moxie
219			;;
220h8300-*-hms* | h8300-*-coff* | h8300-*-rtemscoff*)
221			targ_emul=h8300; targ_extra_emuls="h8300h h8300s h8300hn h8300sn h8300sx h8300sxn" ;;
222h8300-*-elf* | h8300-*-rtems*)
223			targ_emul=h8300elf;
224			targ_extra_emuls="h8300helf h8300self h8300hnelf h8300snelf h8300sxelf h8300sxnelf" ;;
225h8300-*-linux*)
226			targ_emul=h8300elf_linux;
227			targ_extra_emuls="h8300helf_linux h8300self_linux h8300sxelf_linux" ;;
228h8500-*-hms* | h8500-*-coff* | h8500-*-rtems*)
229			targ_emul=h8500
230			targ_extra_emuls="h8500s h8500b h8500m h8500c"
231			;;
232hppa*64*-*-linux-*)	targ_emul=hppa64linux ;;
233hppa*64*-hpux*)		targ_emul=elf64hppa ;;
234hppa*-*-linux-*)	targ_emul=hppalinux ;;
235hppa*-*-*elf*)		targ_emul=hppaelf ;;
236hppa*-*-lites*)		targ_emul=hppaelf ;;
237hppa*-*-netbsd*)	targ_emul=hppanbsd ;;
238hppa*-*-openbsd*)	targ_emul=hppaobsd
239			;;
240i370-*-elf* | i370-*-linux-*) targ_emul=elf32i370
241			;;
242i[3-7]86-*-nto-qnx*)	targ_emul=i386nto ;;
243i[3-7]86-*-vsta)	targ_emul=vsta ;;
244i[3-7]86-*-go32)	targ_emul=i386go32 ;;
245i[3-7]86-*-msdosdjgpp*) targ_emul=i386go32 ;;
246i[3-7]86-*-aix*)	targ_emul=i386coff ;;
247i[3-7]86-*-sco*)	targ_emul=i386coff ;;
248i[3-7]86-*-isc*)	targ_emul=i386coff ;;
249i[3-7]86-*-lynxos*)	targ_emul=i386lynx ;;
250i[3-7]86-*-coff)	targ_emul=i386coff ;;
251i[3-7]86-*-rtems*)	targ_emul=elf_i386
252			targ_extra_emuls=elf_iamcu ;;
253i[3-7]86-*-aros*)	targ_emul=elf_i386
254			targ_extra_emuls=elf_iamcu ;;
255i[3-7]86-*-rdos*)	targ_emul=elf_i386
256			targ_extra_emuls=elf_iamcu ;;
257x86_64-*-rdos*)		targ_emul=elf64rdos ;;
258x86_64-*-cloudabi*)	targ_emul=elf_x86_64_cloudabi ;;
259i[3-7]86-*-bsd)		targ_emul=i386bsd ;;
260i[3-7]86-*-bsd386)	targ_emul=i386bsd ;;
261i[3-7]86-*-bsdi*)	targ_emul=i386bsd ;;
262i[3-7]86-*-aout)	targ_emul=i386aout ;;
263i[3-7]86-*-linux*aout*)	targ_emul=i386linux
264			targ_extra_emuls="elf_i386 elf_iamcu"
265			tdir_elf_iamcu=`echo ${targ_alias} | sed -e 's/aout//'`
266			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'` ;;
267i[3-7]86-*-linux*oldld)	targ_emul=i386linux
268			targ_extra_emuls="elf_i386 elf_iamcu" ;;
269i[3-7]86-*-linux-*)	targ_emul=elf_i386
270			targ_extra_emuls="i386linux elf_iamcu"
271			targ64_extra_emuls="elf_x86_64 elf32_x86_64 elf_l1om elf_k1om"
272			targ64_extra_libpath=elf_x86_64
273			targ_extra_libpath=elf32_x86_64
274			tdir_i386linux=${targ_alias}aout ;;
275x86_64-*-linux-gnux32)	targ_emul=elf32_x86_64
276			targ_extra_emuls="elf_x86_64 elf_i386 elf_iamcu i386linux elf_l1om elf_k1om"
277			targ_extra_libpath="elf_i386 elf_iamcu elf_x86_64 elf_l1om elf_k1om"
278			tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'`
279			tdir_elf_iamcu=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'`
280			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'` ;;
281x86_64-*-linux-*)	targ_emul=elf_x86_64
282			targ_extra_emuls="elf32_x86_64 elf_i386 elf_iamcu i386linux elf_l1om elf_k1om"
283			targ_extra_libpath="elf_i386 elf32_x86_64 elf_l1om elf_k1om"
284			tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
285			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
286i[3-7]86-*-sysv[45]*)	targ_emul=elf_i386
287			targ_extra_emuls=elf_iamcu ;;
288i[3-7]86-*-solaris2*)	targ_emul=elf_i386_sol2
289                        targ_extra_emuls="elf_i386_ldso elf_i386 elf_iamcu elf_x86_64_sol2 elf_x86_64 elf_l1om elf_k1om"
290			targ_extra_libpath=$targ_extra_emuls
291                        ;;
292x86_64-*-solaris2*)
293			targ_emul=elf_x86_64_sol2
294			targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_iamcu elf_l1om elf_k1om"
295			targ_extra_libpath=$targ_extra_emuls
296			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'` ;;
297i[3-7]86-*-unixware)	targ_emul=elf_i386
298			targ_extra_emuls=elf_iamcu ;;
299i[3-7]86-*-solaris*)	targ_emul=elf_i386_ldso
300                        targ_extra_emuls="elf_i386"
301			targ_extra_libpath=$targ_extra_emuls
302                        ;;
303i[3-7]86-*-netbsdelf* | \
304i[3-7]86-*-netbsd*-gnu* | \
305i[3-7]86-*-knetbsd*-gnu)
306			targ_emul=elf_i386
307			targ_extra_emuls="elf_iamcu i386nbsd" ;;
308i[3-7]86-*-netbsdpe*)	targ_emul=i386pe
309			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
310i[3-7]86-*-netbsd*)	targ_emul=i386nbsd
311			targ_extra_emuls=elf_i386 ;;
312x86_64-*-netbsd*)	targ_emul=elf_x86_64
313			targ_extra_emuls="elf_i386 elf_iamcu i386nbsd elf_l1om elf_k1om"
314			tdir_elf_iamcu=`echo ${targ_alias} | \
315			    sed -e 's/x86_64/i386/'`
316			case "${tdir_elf_iamcu}" in
317			*-netbsdelf*)   ;;
318			*)		tdir_elf_iamcu=`echo ${tdir_elf_iamcu} | \
319				        sed -e 's/netbsd/netbsdelf/'`;;
320			esac
321			tdir_elf_i386=`echo ${targ_alias} | \
322			    sed -e 's/x86_64/i386/'`
323			case "${tdir_elf_i386}" in
324			*-netbsdelf*)   ;;
325			*)		tdir_elf_i386=`echo ${tdir_elf_i386} | \
326				        sed -e 's/netbsd/netbsdelf/'`;;
327			esac ;;
328i[3-7]86-*-netware)	targ_emul=i386nw ;;
329i[3-7]86-*-elfiamcu)	targ_emul=elf_iamcu
330			targ_extra_emuls=elf_i386 ;;
331i[3-7]86-*-elf*)	targ_emul=elf_i386
332			targ_extra_emuls=elf_iamcu ;;
333x86_64-*-elf*)		targ_emul=elf_x86_64
334			targ_extra_emuls="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
335			targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64 elf_l1om elf_k1om"
336			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
337			;;
338i[3-7]86-*-kaos*)	targ_emul=elf_i386 ;;
339i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12])
340			targ_emul=i386bsd ;;
341i[3-7]86-*-dragonfly*)	targ_emul=elf_i386
342			targ_extra_emuls="elf_iamcu i386bsd" ;;
343x86_64-*-dragonfly*)	targ_emul=elf_x86_64
344			targ_extra_emuls="elf_i386 elf_iamcu elf_l1om elf_k1om" ;;
345i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
346		        targ_emul=elf_i386_fbsd
347			targ_extra_emuls="elf_i386 elf_iamcu i386bsd" ;;
348x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
349			targ_emul=elf_x86_64_fbsd
350			targ_extra_emuls="elf_i386_fbsd elf_x86_64 elf_i386 elf_iamcu elf_l1om elf_l1om_fbsd elf_k1om elf_k1om_fbsd"
351			targ_extra_libpath="elf_i386_fbsd"
352			tdir_elf_i386_fbsd=`echo ${targ_alias} \
353			    | sed -e 's/x86_64/i386/'`
354			tdir_elf_iamcu=`echo ${targ_alias} \
355			    | sed -e 's/x86_64/i386/'`
356			tdir_elf_i386=`echo ${targ_alias} \
357			    | sed -e 's/x86_64/i386/'` ;;
358i[3-7]86-*-sysv*)	targ_emul=i386coff ;;
359i[3-7]86-*-ptx*)	targ_emul=i386coff ;;
360i[3-7]86-*-mach*)	targ_emul=i386mach ;;
361i[3-7]86-*-gnu*)	targ_emul=elf_i386
362			targ_extra_emuls=elf_iamcu ;;
363i[3-7]86-*-msdos*)	targ_emul=i386msdos; targ_extra_emuls=i386aout ;;
364i[3-7]86-*-moss*)	targ_emul=i386moss; targ_extra_emuls=i386msdos ;;
365i[3-7]86-*-winnt*)	targ_emul=i386pe ;
366			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
367i[3-7]86-*-pe)		targ_emul=i386pe ;
368			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
369i[3-7]86-*-cygwin*)	targ_emul=i386pe ;
370			targ_extra_ofiles="deffilep.o pe-dll.o" ;
371			test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;;
372i[3-7]86-*-mingw32*)	targ_emul=i386pe ;
373			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
374x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ;
375			targ_extra_emuls=i386pe ;
376			targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;;
377x86_64-*-cygwin)	targ_emul=i386pep ;
378			targ_extra_emuls=i386pe
379			targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o"
380			test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;;
381x86_64-*-mingw*)	targ_emul=i386pep ;
382			targ_extra_emuls=i386pe
383			targ_extra_ofiles="deffilep.o pep-dll.o pe-dll.o" ;;
384i[3-7]86-*-interix*)	targ_emul=i386pe_posix;
385 			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
386i[3-7]86-*-beospe*)	targ_emul=i386beos ;;
387i[3-7]86-*-beos*)	targ_emul=elf_i386_be ;;
388i[3-7]86-*-vxworks*)	targ_emul=elf_i386_vxworks ;;
389i[3-7]86-*-chaos)	targ_emul=elf_i386_chaos
390			;;
391i[3-7]86-*-nacl*)	targ_emul=elf_i386_nacl
392			targ_extra_emuls="armelf_nacl armelfb_nacl"
393			targ_extra_libpath=$targ_extra_emuls
394			targ64_extra_emuls="elf32_x86_64_nacl elf_x86_64_nacl"
395			targ64_extra_libpath=$targ64_extra_emuls
396			;;
397x86_64-*-nacl*)		targ_emul=elf32_x86_64_nacl
398			targ_extra_emuls="elf_i386_nacl elf_x86_64_nacl armelf_nacl armelfb_nacl"
399			targ_extra_libpath=$targ_extra_emuls
400			tdir_elf_i386_nacl=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
401			;;
402i860-*-coff)		targ_emul=coff_i860 ;;
403i860-stardent-sysv4* | i860-stardent-elf*)
404			targ_emul=elf32_i860
405			;;
406i960-wrs-vxworks5.0*)	targ_emul=gld960 ;;
407i960-wrs-vxworks5*)	targ_emul=gld960coff ;;
408i960-wrs-vxworks*)	targ_emul=gld960 ;;
409i960-*-coff)		targ_emul=gld960coff ;;
410i960-intel-nindy)	targ_emul=gld960 ;;
411i960-*-rtems*)		targ_emul=gld960coff ;;
412i960-*-elf*)		targ_emul=elf32_i960
413			;;
414ia64-*-elf*)		targ_emul=elf64_ia64 ;;
415ia64-*-freebsd* | ia64-*-kfreebsd*-gnu)
416		        targ_emul=elf64_ia64_fbsd
417			targ_extra_emuls="elf64_ia64" ;;
418ia64-*-netbsd*)		targ_emul=elf64_ia64 ;;
419ia64-*-linux*)		targ_emul=elf64_ia64 ;;
420ia64-*-*vms*)		targ_emul=elf64_ia64_vms ;;
421ia64-*-aix*)		targ_emul=elf64_aix
422			;;
423ip2k-*-elf)		targ_emul=elf32ip2k
424			;;
425iq2000-*-elf)           targ_emul=elf32iq2000 ; targ_extra_emuls="elf32iq10"
426			;;
427lm32-*-*linux*)         targ_emul=elf32lm32fd ;;
428lm32-*-*)               targ_emul=elf32lm32 ; targ_extra_emuls="elf32lm32fd"
429                        ;;
430m32c-*-elf | m32c-*-rtems*)
431			targ_emul=elf32m32c
432			;;
433m32r*le-*-elf*)         targ_emul=m32rlelf ;;
434m32r*-*-elf* | m32r*-*-rtems*)
435			targ_emul=m32relf ;;
436m32r*le-*-linux-*)      targ_emul=m32rlelf_linux ;;
437m32r*-*-linux-*)        targ_emul=m32relf_linux
438			;;
439m68hc11-*-*|m6811-*-*)	targ_emul=m68hc11elf
440			targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;;
441m68hc12-*-*|m6812-*-*)	targ_emul=m68hc12elf
442			targ_extra_emuls="m68hc12elfb m68hc11elf m68hc11elfb" ;;
443m68*-sun-sunos[34]*)	targ_emul=sun3 ;;
444m68*-wrs-vxworks*)	targ_emul=sun3 ;;
445m68*-ericsson-ose)	targ_emul=sun3 ;;
446m68*-apple-aux*)	targ_emul=m68kaux ;;
447m68k-sony-*)		targ_emul=news ;;
448m68k-hp-bsd*)		targ_emul=hp300bsd ;;
449m68*-motorola-sysv*)	targ_emul=delta68 ;;
450m68*-*-aout)		targ_emul=m68kaout ;;
451m68*-*-coff)		targ_emul=m68kcoff ;;
452m68*-*-elf)		targ_emul=m68kelf ;;
453m68*-*-hpux*)		targ_emul=hp3hpux ;;
454m68k-*-linux*aout*)	targ_emul=m68klinux
455			targ_extra_emuls=m68kelf
456			tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'` ;;
457m68k-*-linux-*) 	targ_emul=m68kelf
458			targ_extra_emuls=m68klinux
459			tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'` ;;
460m68k-*-uclinux*)	targ_emul=m68kelf ;;
461m68*-*-gnu*)		targ_emul=m68kelf ;;
462m68*-*-netbsd*4k*)	targ_emul=m68k4knbsd
463			targ_extra_emuls="m68knbsd m68kelfnbsd" ;;
464m68*-*-netbsdelf* | m5407*-*-netbsdelf*)
465			targ_emul=m68kelfnbsd
466			targ_extra_emuls="m68knbsd m68k4knbsd" ;;
467m68*-*-netbsdaout* | m68*-*-netbsd*)
468			targ_emul=m68knbsd
469			targ_extra_emuls="m68kelfnbsd m68k4knbsd" ;;
470m68*-*-psos*)		targ_emul=m68kpsos ;;
471m68*-*-rtemscoff*)	targ_emul=m68kcoff ;;
472m68*-*-rtems*)		targ_emul=m68kelf
473			;;
474m8*-*-*)		targ_emul=m88kbcs
475			;;
476mcore-*-pe)		targ_emul=mcorepe ;
477			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
478mcore-*-elf)		targ_emul=elf32mcore
479			;;
480mep-*-elf)		targ_emul=elf32mep ;;
481metag-*-*)		targ_emul=elf32metag ;;
482microblazeel*-linux*)	targ_emul="elf32mbel_linux"
483			targ_extra_emuls="elf32mb_linux"
484			;;
485microblaze*-linux*)	targ_emul="elf32mb_linux"
486			targ_extra_emuls="elf32mbel_linux"
487			;;
488microblazeel*)		targ_emul=elf32microblazeel
489			targ_extra_emuls=elf32microblaze
490			;;
491microblaze*)		targ_emul=elf32microblaze
492			targ_extra_emuls=elf32microblazeel
493			;;
494mips*-sgi-irix5*)	targ_emul=elf32bsmip ;;
495mips*-sgi-irix6*)	targ_emul=elf32bmipn32
496	                targ_extra_emuls="elf32bsmip elf64bmip"
497			targ_extra_libpath=$targ_extra_emuls ;;
498mips64*el-*-netbsd*)	targ_emul=elf32ltsmipn32 	 
499			targ_extra_emuls="elf64btsmip elf64ltsmip elf32ltsmip elf32btsmipn32 elf32btsmip" 	 
500			targ_extra_libpath=$targ_extra_emuls
501			;; 	 
502mips64*-*-netbsd*)	targ_emul=elf32btsmipn32
503			targ_extra_emuls="elf64ltsmip elf64btsmip elf32btsmip elf32ltsmipn32 elf32ltsmip"
504			targ_extra_libpath=$targ_extra_emuls
505  			;;
506mips*el-*-netbsd*)	targ_emul=elf32ltsmip
507			targ_extra_emuls="elf32btsmip elf64ltsmip elf64btsmip"
508			;;
509mips*-*-netbsd*)	targ_emul=elf32btsmip
510			targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip"
511			;;
512mips*-*-bsd*)		targ_emul=mipsbig ;;
513mips*vr4300el-*-elf*)	targ_emul=elf32l4300 ;;
514mips*vr4300-*-elf*)	targ_emul=elf32b4300 ;;
515mips*vr4100el-*-elf*)	targ_emul=elf32l4300 ;;
516mips*vr4100-*-elf*)	targ_emul=elf32b4300 ;;
517mips*vr5000el-*-elf*)	targ_emul=elf32l4300 ;;
518mips*vr5000-*-elf*)	targ_emul=elf32b4300 ;;
519mips*el-sde-elf*)	targ_emul=elf32ltsmip
520			targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip" ;;
521mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
522			targ_emul=elf32btsmip
523			targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip" ;;
524mips64*el-ps2-elf*)	targ_emul=elf32lr5900n32
525			targ_extra_emuls="elf32lr5900"
526			targ_extra_libpath=$targ_extra_emuls ;;
527mips*el-ps2-elf*)	targ_emul=elf32lr5900
528			targ_extra_emuls="elf32lr5900n32"
529			targ_extra_libpath=$targ_extra_emuls ;;
530mips*el-*-elf*)		targ_emul=elf32elmip ;;
531mips*-*-elf*)		targ_emul=elf32ebmip ;;
532mips*-*-rtems*)		targ_emul=elf32ebmip ;;
533mips*el-*-vxworks*)	targ_emul=elf32elmipvxworks
534			targ_extra_emuls="elf32ebmipvxworks" ;;
535mips*-*-vxworks*)	targ_emul=elf32ebmipvxworks
536		        targ_extra_emuls="elf32elmipvxworks" ;;
537mips*-*-windiss)	targ_emul=elf32mipswindiss ;;
538mips64*el-*-linux-*)	targ_emul=elf32ltsmipn32
539			targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
540			targ_extra_libpath=$targ_extra_emuls ;;
541mips64*-*-linux-*)	targ_emul=elf32btsmipn32
542			targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
543			targ_extra_libpath=$targ_extra_emuls ;;
544mips*el-*-linux-*)	targ_emul=elf32ltsmip
545			targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
546			targ_extra_libpath=$targ_extra_emuls ;;
547mips*-*-linux-*)	targ_emul=elf32btsmip
548			targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
549			targ_extra_libpath=$targ_extra_emuls ;;
550mips64*el-*-freebsd* | mips64*el-*-kfreebsd*-gnu)
551			targ_emul=elf32ltsmipn32_fbsd
552			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
553			targ_extra_libpath=$targ_extra_emuls ;;
554mips64*-*-freebsd* | mips64*-*-kfreebsd*-gnu)
555			targ_emul=elf32btsmipn32_fbsd
556			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
557			targ_extra_libpath=$targ_extra_emuls ;;
558mips*el-*-freebsd* | mips*el-*-kfreebsd*-gnu)
559			targ_emul=elf32ltsmip_fbsd
560			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmipn32_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
561			targ_extra_libpath=$targ_extra_emuls ;;
562mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
563			targ_emul=elf32btsmip_fbsd
564			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmipn32_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
565			targ_extra_libpath=$targ_extra_emuls ;;
566mips*-*-sysv4*)         targ_emul=elf32btsmip
567			;;
568mmix-*-*)		targ_emul=mmo
569			targ_extra_emuls=elf64mmix
570			;;
571am34-*-linux*)		targ_emul=elf32am33lin ;;
572am33_2.0-*-linux*)	targ_emul=elf32am33lin ;;
573mn10200-*-*)		targ_emul=mn10200 ;;
574mn10300-*-*)		targ_emul=mn10300
575			;;
576mt-*elf)                targ_emul=elf32mt
577			;;
578msp430-*-*)             targ_emul=msp430elf
579			targ_extra_emuls="msp430X"
580			;;
581nds32*le-*-elf*)	targ_emul=nds32elf
582			targ_extra_emuls="nds32elf16m nds32belf nds32belf16m"
583			;;
584nds32*be-*-elf*)	targ_emul=nds32belf
585			targ_extra_emuls="nds32elf nds32elf16m nds32belf16m"
586			;;
587nds32*le-*-linux-gnu*)	targ_emul=nds32elf_linux ;;
588nds32*be-*-linux-gnu*)	targ_emul=nds32belf_linux ;;
589nios2*-*-linux*)	targ_emul=nios2linux ;;
590nios2*-*-*)		targ_emul=nios2elf ;;
591ns32k-pc532-mach* | ns32k-pc532-ux*)  targ_emul=pc532macha ;;
592ns32k-*-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd
593			;;
594or1k-*-elf | or1knd-*-elf)		targ_emul=elf32or1k ;;
595or1k-*-linux* | or1knd-*-linux*)	targ_emul=elf32or1k_linux ;;
596or1k-*-netbsd* | or1knd-*-netbsd*)	targ_emul=elf32or1k_nbsd ;;
597or1k-*-rtems* | or1knd-*-rtems*)	targ_emul=elf32or1k
598			;;
599pdp11-*-*)		targ_emul=pdp11
600			;;
601pjl*-*-*)	        targ_emul=pjlelf
602			targ_extra_emuls="elf_i386 elf_iamcu" ;;
603pj*-*-*)	        targ_emul=pjelf
604			;;
605powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu)
606			targ_emul=elf32ppc_fbsd
607			targ_extra_emuls="elf32ppc elf32ppcsim"
608			targ_extra_libpath=elf32ppc;
609			tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'` ;;
610powerpc64-*-freebsd*)
611			targ_emul=elf64ppc_fbsd
612			targ_extra_emuls="elf64ppc elf32ppc_fbsd elf32ppc"
613			targ_extra_libpath="elf32ppc_fbsd elf32ppc"
614			tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
615			tdir_elf32ppc_fbsd=$tdir_elf32ppc
616			;;
617powerpc-*-netbsd*)
618			targ_emul=elf32ppc_nbsd
619			targ_extra_emuls="elf32ppc elf32ppcsim"
620			targ_extra_libpath=elf32ppc;
621			tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'`
622			targ64_extra_emuls=elf64ppc
623			targ64_extra_libpath=elf64ppc
624			;;
625powerpc64-*-netbsd*)
626			targ_emul=elf64ppc
627			targ_extra_emuls="elf32ppc elf32ppc_nbsd elf32ppcsim"
628			targ_extra_libpath="elf32ppc_nbsd elf32ppc"
629			tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
630			tdir_elf32ppc_fbsd=$tdir_elf32ppc
631			;;
632powerpc-*-vxworks*)
633			targ_emul=elf32ppcvxworks
634			targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim" ;;
635powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \
636  | powerpc*-*-linux* | powerpc*-*-openbsd* \
637  | powerpc*-*-solaris* | powerpc*-*-kaos* | powerpc*-*-vxworks*)
638			case "${targ}" in
639			*64*)	targ_emul=elf64ppc
640				targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim"
641				targ_extra_libpath="elf32ppc elf32ppclinux"
642				td=tdir_elf32ppc
643				case "${targ}" in
644				powerpc*le-*) td=tdir_elf32lppc;;
645				esac
646				eval ${td}=`echo "${targ_alias}" | sed -e 's/64//'`
647				eval ${td}linux=\$${td}
648				eval ${td}sim=\$${td}
649				;;
650			*linux*) targ_emul=elf32ppclinux
651				targ_extra_emuls="elf32ppc elf32ppcsim"
652				targ_extra_libpath=elf32ppc
653				targ64_extra_emuls=elf64ppc
654				targ64_extra_libpath=elf64ppc
655				;;
656			*)	targ_emul=elf32ppc
657				targ_extra_emuls="elf32ppclinux elf32ppcsim"
658				targ_extra_libpath=elf32ppclinux
659				targ64_extra_emuls=elf64ppc
660				targ64_extra_libpath=elf64ppc
661			esac
662			case "${targ}" in
663			powerpc*le-*)
664				for z in targ_emul targ_extra_emuls targ_extra_libpath targ64_extra_emuls targ64_extra_libpath
665				do
666				  eval ${z}=\"`eval echo \\$${z} | sed -e 's/ppc/lppc/g'`\"
667				done
668			esac ;;
669powerpc-*-nto*)         targ_emul=elf32ppcnto ;;
670powerpcle-*-nto*)       targ_emul=elf32lppcnto ;;
671powerpc-*-rtems*)	targ_emul=elf32ppc ;;
672powerpc-*-macos*)	targ_emul=ppcmacos ;;
673powerpc-*-netware*)	targ_emul=ppcnw ;;
674powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin*)
675			targ_emul=ppcpe
676			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
677powerpc-*-aix[5-9]*)	targ_emul=aix5ppc ;;
678powerpc-*-aix*)		targ_emul=aixppc ;;
679powerpc-*-beos*)	targ_emul=aixppc ;;
680powerpc-*-windiss*)	targ_emul=elf32ppcwindiss ;;
681powerpc-*-lynxos*)	targ_emul=ppclynx ;;
682riscv32-*-*)		targ_emul=elf32lriscv
683			targ_extra_emuls="elf64lriscv"
684			targ_extra_libpath=$targ_extra_emuls ;;
685riscv*-*-*)		targ_emul=elf64lriscv
686			targ_extra_emuls="elf32lriscv"
687			targ_extra_libpath=$targ_extra_emuls ;;
688rs6000-*-aix[5-9]*)	targ_emul=aix5rs6 ;;
689rs6000-*-aix*)		targ_emul=aixrs6
690			;;
691rl78-*-*)		targ_emul=elf32rl78 ;;
692rx-*-*)			targ_emul=elf32rx ;;
693s390x-*-linux*)         targ_emul=elf64_s390
694			targ_extra_emuls=elf_s390
695			targ_extra_libpath=$targ_extra_emuls
696			tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
697s390x-*-tpf*)		targ_emul=elf64_s390
698			tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
699s390-*-linux*)          targ_emul=elf_s390
700			targ64_extra_emuls=elf64_s390
701			targ64_extra_libpath=elf64_s390
702			tdir_elf64_s390=`echo ${targ_alias} | sed -e 's/s390/s390x/'`
703			;;
704score-*-elf)            targ_emul=score7_elf
705			targ_extra_emuls=score3_elf ;;
706sh-*-linux*)		targ_emul=shlelf_linux
707			targ_extra_emuls="shelf_linux shlelf_fd shelf_fd"
708			targ_extra_libpath=shelf_linux ;;
709sh64eb-*-linux*)	targ_emul=shelf32_linux
710			targ_extra_emuls="shlelf32_linux" ;;
711sh64-*-linux*)		targ_emul=shlelf32_linux
712			targ_extra_emuls="shelf32_linux"
713			targ_extra_libpath=shelf32_linux ;;
714sh*eb-*-linux*)		targ_emul=shelf_linux
715			targ_extra_emuls="shelf_fd" ;;
716sh*-*-linux*)		targ_emul=shlelf_linux
717			targ_extra_emuls="shlelf_fd" ;;
718sh5le-*-netbsd*)	targ_emul=shlelf32_nbsd
719			targ_extra_emuls="shelf32_nbsd shelf64_nbsd shlelf64_nbsd shelf_nbsd shlelf_nbsd" ;;
720sh5-*-netbsd*)		targ_emul=shelf32_nbsd
721			targ_extra_emuls="shlelf32_nbsd shelf64_nbsd shlelf64_nbsd shelf_nbsd shlelf_nbsd" ;;
722sh64le-*-netbsd*)	targ_emul=shlelf64_nbsd
723			targ_extra_emuls="shelf64_nbsd shelf32_nbsd shlelf32_nbsd shelf_nbsd shlelf_nbsd" ;;
724sh64-*-netbsd*)		targ_emul=shelf64_nbsd
725			targ_extra_emuls="shlelf64_nbsd shelf32_nbsd shlelf32_nbsd shelf_nbsd shlelf_nbsd" ;;
726sh*l*-*-netbsdelf*)	targ_emul=shlelf_nbsd
727			targ_extra_emuls=shelf_nbsd ;;
728sh*-*-netbsdelf*)	targ_emul=shelf_nbsd
729			targ_extra_emuls=shlelf_nbsd ;;
730sh*-*-symbianelf*)	targ_emul=shlsymbian ;;
731shle*-*-elf* | sh[1234]*le*-*-elf | shle*-*-kaos*)
732			targ_emul=shlelf
733			targ_extra_emuls="shelf shl sh"	;;
734sh-*-rtemscoff*)	targ_emul=sh; targ_extra_emuls=shl ;;
735sh-*-elf* | sh[1234]*-*-elf | sh-*-rtems* | sh-*-kaos*)
736			targ_emul=shelf
737			targ_extra_emuls="shlelf sh shl" ;;
738sh-*-uclinux* | sh[12]-*-uclinux*)
739			targ_emul=shelf_uclinux
740			targ_extra_emuls="shelf shlelf sh shl shelf_fd shlelf_fd" ;;
741sh-*-vxworks)		targ_emul=shelf_vxworks
742			targ_extra_emuls=shlelf_vxworks ;;
743sh-*-nto*)		targ_emul=shelf_nto
744			targ_extra_emuls=shlelf_nto ;;
745sh-*-pe)		targ_emul=shpe ;
746			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
747sh-*-*)			targ_emul=sh; targ_extra_emuls=shl ;;
748sh64le-*-elf*)		targ_emul=shlelf
749			targ_extra_emuls="shelf shlelf32 shelf32 shlelf64 shelf64"
750			targ_extra_libpath=$targ_extra_emuls ;;
751sh64-*-elf*)		targ_emul=shelf
752			targ_extra_emuls="shlelf shelf32 shlelf32 shelf64 shlelf64"
753			targ_extra_libpath=$targ_extra_emuls ;;
754sparc64-*-aout*)	targ_emul=sparcaout ;;
755sparc64-*-elf*)		targ_emul=elf64_sparc ;;
756sparc64-*-rtems*)	targ_emul=elf64_sparc ;;
757sparc-sun-sunos4*) 	targ_emul=sun4 ;;
758sparclite*-*-elf)	targ_emul=elf32_sparc ;;
759sparclite*-*-coff)	targ_emul=coff_sparc ;;
760sparclite*-fujitsu-*)	targ_emul=sparcaout ;;
761sparc*-*-aout)		targ_emul=sparcaout ;;
762sparc*-*-coff)		targ_emul=coff_sparc ;;
763sparc*-*-elf)		targ_emul=elf32_sparc ;;
764sparc*-*-sysv4*)	targ_emul=elf32_sparc ;;
765sparc*-*-vxworks*)	targ_emul=elf32_sparc_vxworks ;;
766sparc64-*-freebsd* | sparcv9-*-freebsd* | sparc64-*-kfreebsd*-gnu | sparcv9-*-kfreebsd*-gnu)
767			targ_emul=elf64_sparc_fbsd
768			targ_extra_emuls="elf64_sparc elf32_sparc"
769			targ_extra_libpath=$targ_extra_emuls
770			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`	;;
771sparc*-*-linux*aout*)	targ_emul=sparclinux
772			targ_extra_emuls="elf32_sparc sun4"
773			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'`
774			tdir_sun4=sparc-sun-sunos4 ;;
775sparc64-*-linux-*)	targ_emul=elf64_sparc
776			targ_extra_emuls="elf32_sparc sparclinux sun4"
777			targ_extra_libpath=elf32_sparc
778			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
779			tdir_sparclinux=${tdir_elf32_sparc}aout
780			tdir_sun4=sparc-sun-sunos4 ;;
781sparc*-*-linux-*)	targ_emul=elf32_sparc
782			targ_extra_emuls="sparclinux elf64_sparc sun4"
783			targ_extra_libpath=elf64_sparc
784			tdir_sparclinux=${targ_alias}aout
785			tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
786			tdir_sun4=sparc-sun-sunos4 ;;
787sparc64-*-netbsd*)	targ_emul=elf64_sparc
788			targ_extra_emuls="elf32_sparc sparcnbsd"
789			;;
790sparc64-*-openbsd*)	targ_emul=elf64_sparc
791			targ_extra_emuls="elf32_sparc"
792			;;
793sparc*-*-netbsd*elf*)	targ_emul=elf32_sparc
794			targ_extra_emuls=sparcnbsd
795			;;
796sparc*-*-netbsd*)	targ_emul=sparcnbsd ;;
797sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
798			targ_emul=elf32_sparc_sol2
799			targ_extra_emuls=elf32_sparc ;;
800sparc-*-solaris2*)	targ_emul=elf32_sparc_sol2
801			targ_extra_emuls="elf32_sparc elf64_sparc_sol2 elf64_sparc"
802			targ_extra_libpath=$targ_extra_emuls
803			tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`	;;
804sparcv9-*-solaris2* | sparc64-*-solaris2*)
805			targ_emul=elf64_sparc_sol2
806			targ_extra_emuls="elf64_sparc elf32_sparc_sol2 elf32_sparc"
807			targ_extra_libpath=$targ_extra_emuls
808			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'` ;;
809sparc*-*-solaris2*)	targ_emul=elf32_sparc ;;
810sparc*-wrs-vxworks*)	targ_emul=sparcaout ;;
811sparc-*-rtems*)		targ_emul=elf32_sparc
812			;;
813spu-*-elf*)		targ_emul=elf32_spu ;;
814tic30-*-*aout*)		targ_emul=tic30aout ;;
815tic30-*-*coff*)		targ_emul=tic30coff ;;
816tic4x-*-* | c4x-*-*)    targ_emul=tic4xcoff ; targ_extra_emuls="tic3xcoff tic3xcoff_onchip" ;;
817tic54x-*-* | c54x*-*-*)	targ_emul=tic54xcoff ;;
818tic6x-*-elf)		targ_emul=elf32_tic6x_elf_le
819			targ_extra_emuls="elf32_tic6x_elf_be elf32_tic6x_le elf32_tic6x_be"
820			targ_extra_libpath=$targ_extra_emuls
821			;;
822tic6x-*-uclinux)	targ_emul=elf32_tic6x_linux_le
823			targ_extra_emuls="elf32_tic6x_linux_be elf32_tic6x_le elf32_tic6x_be"
824			targ_extra_libpath=$targ_extra_emuls
825			;;
826tic80-*-*)		targ_emul=tic80coff
827			;;
828tilegx-*-*)		targ_emul=elf64tilegx
829			targ_extra_emuls="elf64tilegx_be elf32tilegx elf32tilegx_be"
830			targ_extra_libpath=$targ_extra_emuls ;;
831tilegxbe-*-*)		targ_emul=elf64tilegx_be
832			targ_extra_emuls="elf64tilegx elf32tilegx elf32tilegx_be"
833			targ_extra_libpath=$targ_extra_emuls ;;
834tilepro-*-*)		targ_emul=elf32tilepro ;;
835ft32-*-*)		targ_emul=elf32ft32
836			;;
837v850*-*-*)		targ_emul=v850_rh850
838			targ_extra_emuls=v850
839			;;
840vax-dec-ultrix* | vax-dec-bsd*) targ_emul=vax ;;
841vax-*-netbsdelf*)	targ_emul=elf32vax
842			targ_extra_emuls=vaxnbsd ;;
843vax-*-netbsdaout* | vax-*-netbsd*)
844			targ_emul=vaxnbsd
845			targ_extra_emuls=elf32vax ;;
846vax-*-linux-*)  	targ_emul=elf32vax
847			;;
848visium-*-elf)		targ_emul=elf32visium
849			;;
850w65-*-*)		targ_emul=w65
851			;;
852xc16x-*-elf)		targ_emul=elf32xc16x
853                        targ_extra_emuls="elf32xc16xl elf32xc16xs"
854                        ;;
855xstormy16-*-*)		targ_emul=elf32xstormy16
856			;;
857xtensa*-*-*)		targ_emul=elf32xtensa
858			;;
859xgate-*-*)  		targ_emul=xgateelf
860			;;
861z80-*-coff)		targ_emul=z80
862			;;
863z8k-*-coff) 		targ_emul=z8002; targ_extra_emuls=z8001
864			;;
865*-*-ieee*)		targ_emul=vanilla
866			;;
867*-tandem-none)		targ_emul=st2000
868			;;
869*)
870  echo 2>&1 "*** ld does not support target ${targ}"
871  echo 2>&1 "*** see ld/configure.tgt for supported targets"
872  exit 1
873
874esac
875
876NATIVE_LIB_DIRS='/usr/local/lib /lib /usr/lib'
877case "${target}" in
878
879*-*-dragonfly*)
880  NATIVE_LIB_DIRS='/lib /usr/lib /usr/pkg/lib /usr/local/lib'
881  ;;
882
883*-*-freebsd*)
884  NATIVE_LIB_DIRS='/lib /usr/lib /usr/local/lib'
885  ;;
886
887hppa*64*-*-hpux11*)
888  NATIVE_LIB_DIRS=/usr/lib/pa20_64
889  ;;
890
891i[3-7]86-*-sysv4*)
892  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
893  ;;
894
895i[3-7]86-*-solaris*)
896  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
897  ;;
898
899i[3-7]86-pc-interix*)
900  NATIVE_LIB_DIRS='/usr/local/lib $$INTERIX_ROOT/usr/lib /lib /usr/lib'
901  ;;
902
903ia64-*-aix*)
904  NATIVE_LIB_DIRS='/usr/local/lib /usr/lib/ia64l64 /lib /usr/lib'
905  ;;
906
907sparc*-*-solaris2*)
908  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
909  ;;
910
911spu-*-elf*)
912  # This allows to build a pair of PPU/SPU toolchains with common sysroot.
913  NATIVE_LIB_DIRS='/lib'
914  ;;
915
916i[03-9x]86-*-cygwin* | x86_64-*-cygwin*)
917  NATIVE_LIB_DIRS='/usr/lib /usr/lib/w32api'
918  ;;
919
920*-*-linux*)
921  ;;
922
923*-*-netbsd*)
924  ;;
925
926alpha*-*-*)
927  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
928  ;;
929
930esac
931