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#  NATIVE_LIB_DIRS	library directories to search on this host
13#			(if we are a native or sysrooted linker)
14
15targ_extra_emuls=
16targ_extra_ofiles=
17
18case "${targ}" in
19am33_2.0-*-linux*)	targ_emul=elf32am33lin ;;
20arm-epoc-pe)		targ_emul=arm_epoc_pe ;
21			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
22arm-*-wince)		targ_emul=armpe ;
23			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
24arm-*-pe)		targ_emul=armpe ;
25			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
26arc-*-elf*)		targ_emul=arcelf ;;
27avr-*-*)		targ_emul=avr2
28			targ_extra_emuls="avr1 avr3 avr4 avr5" ;;
29cris-*-*aout*)		targ_emul=crisaout
30			targ_extra_emuls="criself crislinux"
31			targ_extra_libpath=$targ_extra_emuls ;;
32cris-*-linux-gnu*)	targ_emul=crislinux ;;
33cris-*-*)		targ_emul=criself
34			targ_extra_emuls="crisaout crislinux"
35			targ_extra_libpath=$targ_extra_emuls ;;
36d10v-*-*)		targ_emul=d10velf ;;
37d30v-*-*ext*)		targ_emul=d30v_e; targ_extra_emuls="d30velf d30v_o" ;;
38d30v-*-*onchip*)	targ_emul=d30v_o; targ_extra_emuls="d30velf d30v_e" ;;
39d30v-*-*)		targ_emul=d30velf; targ_extra_emuls="d30v_e d30v_o" ;;
40dlx-*-elf*)		targ_emul=elf32_dlx ;;
41sparc64-*-aout*)	targ_emul=sparcaout ;;
42sparc64-*-elf*)		targ_emul=elf64_sparc ;;
43sparc-sun-sunos4*) 	targ_emul=sun4 ;;
44sparclite*-*-elf)	targ_emul=elf32_sparc ;;
45sparclite*-*-coff)	targ_emul=coff_sparc ;;
46sparclite*-fujitsu-*)	targ_emul=sparcaout ;;
47sparc*-*-aout)		targ_emul=sparcaout ;;
48sparc*-*-coff)		targ_emul=coff_sparc ;;
49sparc*-*-elf)		targ_emul=elf32_sparc ;;
50sparc*-*-sysv4*)	targ_emul=elf32_sparc ;;
51sparc64-*-freebsd* | sparcv9-*-freebsd* | sparc64-*-kfreebsd*-gnu | sparcv9-*-kfreebsd*-gnu)
52			targ_emul=elf64_sparc_fbsd
53			targ_extra_emuls="elf64_sparc elf32_sparc"
54			targ_extra_libpath=$targ_extra_emuls
55			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
56			;;
57sparc*-*-linux*aout*)	targ_emul=sparclinux
58			targ_extra_emuls="elf32_sparc sun4"
59			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/aout//'`
60			tdir_sun4=sparc-sun-sunos4
61			;;
62sparc64-*-linux-gnu*)	targ_emul=elf64_sparc
63			targ_extra_emuls="elf32_sparc sparclinux sun4"
64			targ_extra_libpath=elf32_sparc
65			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
66			tdir_sparclinux=${tdir_elf32_sparc}aout
67			tdir_sun4=sparc-sun-sunos4
68			;;
69sparc*-*-linux-gnu*)	targ_emul=elf32_sparc
70			targ_extra_emuls="sparclinux elf64_sparc sun4"
71			targ_extra_libpath=elf64_sparc
72			tdir_sparclinux=${targ_alias}aout
73			tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
74			tdir_sun4=sparc-sun-sunos4
75			;;
76sparc*-*-lynxos*)	targ_emul=sparclynx ;;
77sparc64-*-netbsd*)	targ_emul=elf64_sparc
78			targ_extra_emuls="elf32_sparc"
79			;;
80sparc64-*-openbsd*)	targ_emul=elf64_sparc_obsd ;;
81sparc*-*-netbsd*elf*)	targ_emul=elf32_sparc ;;
82sparc*-*-netbsd*)	targ_emul=sparcnbsd ;;
83sparc-*-openbsd[0-2].*|  sparc-*-openbsd3.[0-1])
84			targ_emul=sparcobsd ;;
85sparc-*-openbsd*)	targ_emul=elf32_sparc_obsd ;;
86sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
87			targ_emul=elf32_sparc ;;
88sparc-*-solaris2*)	targ_emul=elf32_sparc
89			targ_extra_emuls="elf64_sparc"
90			targ_extra_libpath=$targ_extra_emuls
91			tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
92			;;
93sparcv9-*-solaris2* | sparc64-*-solaris2*)
94			targ_emul=elf64_sparc
95			targ_extra_emuls="elf32_sparc"
96			targ_extra_libpath=$targ_extra_emuls
97			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
98			;;
99sparc*-*-solaris2*)	targ_emul=elf32_sparc ;;
100sparc*-wrs-vxworks*)	targ_emul=sparcaout ;;
101sparc*-*-rtemsaout*)    targ_emul=sparcaout ;;
102sparc*-*-rtemself*)     targ_emul=elf32_sparc ;;
103sparc*-*-rtems*)        targ_emul=elf32_sparc ;;
104i860-*-coff)		targ_emul=coff_i860 ;;
105i860-stardent-sysv4* | i860-stardent-elf*)
106			targ_emul=elf32_i860 ;;
107i960-wrs-vxworks5.0*)	targ_emul=gld960 ;;
108i960-wrs-vxworks5*)	targ_emul=gld960coff ;;
109i960-wrs-vxworks*)	targ_emul=gld960 ;;
110i960-*-coff)		targ_emul=gld960coff ;;
111i960-intel-nindy)	targ_emul=gld960 ;;
112i960-*-rtems*)		targ_emul=gld960coff ;;
113i960-*-elf*)		targ_emul=elf32_i960 ;;
114ia64-*-elf*)		targ_emul=elf64_ia64 ;;
115ia64-*-freebsd* | ia64-*-kfreebsd*-gnu)
116		        targ_emul=elf64_ia64_fbsd
117			targ_extra_emuls="elf64_ia64" ;;
118ia64-*-netbsd*)		targ_emul=elf64_ia64 ;;
119ia64-*-linux*)		targ_emul=elf64_ia64 ;;
120ia64-*-aix*)		targ_emul=elf64_aix ;;
121m32r*le-*-elf*)         targ_emul=m32rlelf ;;
122m32r*-*-elf*)           targ_emul=m32relf ;;
123m32r*le-*-linux-gnu*)   targ_emul=m32rlelf_linux ;;
124m32r*-*-linux-gnu*)     targ_emul=m32relf_linux ;;
125m68hc11-*-*|m6811-*-*)	targ_emul=m68hc11elf 
126			targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb" ;;
127m68hc12-*-*|m6812-*-*)	targ_emul=m68hc12elf 
128			targ_extra_emuls="m68hc12elfb m68hc11elf m68hc11elfb" ;;
129m68*-sun-sunos[34]*)	targ_emul=sun3 ;;
130m68*-wrs-vxworks*)	targ_emul=sun3 ;;
131m68*-ericsson-ose)	targ_emul=sun3 ;;
132m68*-apple-aux*)	targ_emul=m68kaux ;;
133*-tandem-none)		targ_emul=st2000 ;;
134i370-*-elf* | i370-*-linux-gnu*) targ_emul=elf32i370 ;;
135i[3-7]86-*-nto-qnx*)	targ_emul=i386nto ;;
136i[3-7]86-*-vsta)	targ_emul=vsta ;;
137i[3-7]86-go32-rtems*)	targ_emul=i386go32 ;;
138i[3-7]86-*-go32)	targ_emul=i386go32 ;;
139i[3-7]86-*-msdosdjgpp*) targ_emul=i386go32 ;;
140i[3-7]86-*-aix*)	targ_emul=i386coff ;;
141i[3-7]86-*-sco*)	targ_emul=i386coff ;;
142i[3-7]86-*-isc*)	targ_emul=i386coff ;;
143i[3-7]86-*-lynxos*)	targ_emul=i386lynx ;;
144i[3-7]86-*-coff)	targ_emul=i386coff ;;
145i[3-7]86-*-rtemscoff*)	targ_emul=i386coff ;;
146i[3-7]86-*-rtemself*)	targ_emul=elf_i386 ;;
147i[3-7]86-*-rtems*)	targ_emul=elf_i386 ;;
148i[3-7]86-*-aros*)	targ_emul=elf_i386 ;;
149i[3-7]86-*-bsd)		targ_emul=i386bsd ;;
150i[3-7]86-*-bsd386)	targ_emul=i386bsd ;;
151i[3-7]86-*-bsdi*)	targ_emul=i386bsd ;;
152i[3-7]86-*-aout)	targ_emul=i386aout ;;
153i[3-7]86-*-linux*aout*)	targ_emul=i386linux
154			targ_extra_emuls=elf_i386
155			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/aout//'`
156			;;
157i[3-7]86-*-linux*oldld)	targ_emul=i386linux; targ_extra_emuls=elf_i386 ;;
158i[3-7]86-*-linux-gnu*)	targ_emul=elf_i386
159			targ_extra_emuls=i386linux
160			if test x${want64} = xtrue; then
161			  targ_extra_emuls="$targ_extra_emuls elf_x86_64"
162			fi
163			tdir_i386linux=${targ_alias}aout
164			;;
165x86_64-*-linux-gnu*)	targ_emul=elf_x86_64
166			targ_extra_emuls="elf_i386 i386linux"
167			targ_extra_libpath=elf_i386
168			tdir_i386linux=`echo ${targ_alias}aout | sed -e 's/x86_64/i386/'`
169			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
170			;;
171i[3-7]86-*-sysv[45]*)	targ_emul=elf_i386 ;;
172i[3-7]86-*-solaris2*)	targ_emul=elf_i386_ldso
173                        targ_extra_emuls="elf_i386"
174                        ;;
175i[3-7]86-*-unixware)	targ_emul=elf_i386 ;;
176i[3-7]86-*-solaris*)	targ_emul=elf_i386_ldso
177                        targ_extra_emuls="elf_i386"
178                        ;;
179i[3-7]86-*-netbsdelf* | \
180i[3-7]86-*-netbsd*-gnu* | \
181i[3-7]86-*-knetbsd*-gnu)
182			targ_emul=elf_i386
183			targ_extra_emuls=i386nbsd
184			;;
185i[3-7]86-*-netbsdpe*)	targ_emul=i386pe
186			targ_extra_ofiles="deffilep.o pe-dll.o"
187			;;
188i[3-7]86-*-netbsd*)	targ_emul=i386nbsd
189			targ_extra_emuls=elf_i386
190			;;
191x86_64-*-netbsd*)	targ_emul=elf_x86_64
192			targ_extra_emuls="elf_i386 i386nbsd"
193			tdir_elf_i386=`echo ${targ_alias} | \
194			    sed -e 's/x86_64/i386/'`
195			case "${tdir_elf_i386}" in
196			*-netbsdelf*) ;;
197			*)
198				tdir_elf_i386=`echo ${tdir_elf_i386} | \
199				    sed -e 's/netbsd/netbsdelf/'`
200				;;
201			esac
202			;;
203i[3-7]86-*-netware)	targ_emul=i386nw ;;
204i[3-7]86-*-elf*)	targ_emul=elf_i386 ;;
205i[3-7]86-*-kaos*)	targ_emul=elf_i386 ;;
206i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12])
207			targ_emul=i386bsd ;;
208i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
209		        targ_emul=elf_i386_fbsd
210			targ_extra_emuls="elf_i386 i386bsd" ;;
211x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
212			targ_emul=elf_x86_64_fbsd
213			targ_extra_emuls="elf_i386_fbsd elf_x86_64 elf_i386"
214			tdir_elf_i386=`echo ${targ_alias} \
215			    | sed -e 's/x86_64/i386/'`
216			;;
217i[3-7]86-*-openbsd[0-2]* | i[3-7]86-*-openbsd3.[0-2])
218			targ_emul=i386obsd ;;
219i[3-7]86-*-openbsd*)	targ_emul=elf_i386_obsd ;;
220x86_64-*-openbsd*)	targ_emul=elf_x86_64_obsd
221			targ_extra_emuls="elf_i386_obsd elf_i386"
222			tdir_elf_i386_obsd=`echo ${targ_alias} | \
223			    sed -e 's/x86_64/i386/'`
224			;;
225i[3-7]86-*-sysv*)	targ_emul=i386coff ;;
226i[3-7]86-*-ptx*)	targ_emul=i386coff ;;
227i[3-7]86-*-mach*)	targ_emul=i386mach ;;
228i[3-7]86-*-gnu*)	targ_emul=elf_i386 ;;
229i[3-7]86-*-msdos*)	targ_emul=i386msdos; targ_extra_emuls=i386aout ;;
230i[3-7]86-*-moss*)	targ_emul=i386moss; targ_extra_emuls=i386msdos ;;
231i[3-7]86-*-winnt*)	targ_emul=i386pe ;
232			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
233i[3-7]86-*-pe)		targ_emul=i386pe ;
234			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
235i[3-7]86-*-cygwin*)	targ_emul=i386pe ;
236			targ_extra_ofiles="deffilep.o pe-dll.o"
237			test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api' ;;
238i[3-7]86-*-mingw32*)	targ_emul=i386pe ;
239			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
240i[3-7]86-*-interix*)	targ_emul=i386pe_posix;
241 			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
242i[3-7]86-*-beospe*)	targ_emul=i386beos ;;
243i[3-7]86-*-beos*)	targ_emul=elf_i386_be ;;
244i[3-7]86-*-vxworks*)	targ_emul=elf_i386 ;;
245i[3-7]86-*-chaos)	targ_emul=elf_i386_chaos ;;
246a29k-*-udi)		targ_emul=sa29200 ;;
247a29k-*-ebmon)		targ_emul=ebmon29k ;;
248a29k-*-*)		targ_emul=a29k ;;
249#  arm-*-riscix*)		targ_emul=riscix ;;
250arm-*-aout | armel-*-aout) targ_emul=armaoutl ;;
251armeb-*-aout)		targ_emul=armaoutb ;;
252arm-*-coff)		targ_emul=armcoff ;;
253arm-*-freebsd* | arm-*-kfreebsd*-gnu)
254	       		targ_emul=armelf_fbsd
255			targ_extra_emuls="armelf" ;;
256armeb-*-netbsdelf*)	targ_emul=armelfb_nbsd;
257			targ_extra_emuls="armelf_nbsd armelf armnbsd" ;;
258arm-*-netbsdelf*)	targ_emul=armelf_nbsd;
259			targ_extra_emuls="armelfb_nbsd armelf armnbsd" ;;
260arm-*-netbsd*)		targ_emul=armnbsd;
261			targ_extra_emuls="armelf armelf_nbsd armelfb_nbsd"  ;;
262arm-*-nto*)		targ_emul=armnto ;;
263armeb-*-openbsd*)	targ_emul=armelfb_obsd
264			targ_extra_emuls="armelf_obsd" ;;
265arm-*-openbsd*)		targ_emul=armelf_obsd
266			targ_extra_emuls="armelfb_obsd" ;;
267arm-*-rtems*)		targ_emul=armelf ;;
268armeb-*-elf)		targ_emul=armelfb ;;
269arm-*-elf | arm-*-vxworks)
270	  		targ_emul=armelf ;;
271arm-*-kaos*)		targ_emul=armelf ;;
272arm9e-*-elf)		targ_emul=armelf ;;
273arm-*-oabi)		targ_emul=armelf_oabi ;;
274arm*b-*-linux-gnu*)	targ_emul=armelfb_linux; targ_extra_emuls=armelfb ;;
275arm*-*-linux-gnu*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
276arm*-*-uclinux*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
277arm*-*-conix*)		targ_emul=armelf ;;
278thumb-*-linux-gnu* | thumb-*-uclinux*)	targ_emul=armelf_linux; targ_extra_emuls=armelf ;;
279strongarm-*-coff)	targ_emul=armcoff ;;
280strongarm-*-elf)	targ_emul=armelf ;;
281strongarm-*-kaos*)	targ_emul=armelf ;;
282thumb-*-coff)		targ_emul=armcoff ;;
283thumb-*-elf)		targ_emul=armelf ;;
284thumb-*-oabi)           targ_emul=armelf_oabi ;;
285thumb-epoc-pe)		targ_emul=arm_epoc_pe ;
286			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
287thumb-*-pe)		targ_emul=armpe ;
288			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
289xscale-*-coff)		targ_emul=armcoff ;;
290xscale-*-elf)		targ_emul=armelf ;;
291h8300-*-hms* | h8300-*-coff* | h8300-*-rtems*)
292			targ_emul=h8300; targ_extra_emuls="h8300h h8300s h8300hn h8300sn h8300sx h8300sxn"
293			;;
294h8300-*-elf*)
295			targ_emul=h8300elf;
296			targ_extra_emuls="h8300helf h8300self h8300hnelf h8300snelf h8300sxelf h8300sxnelf"
297			;;
298h8500-*-hms* | h8500-*-coff* | h8500-*-rtems*)
299			targ_emul=h8500
300			targ_extra_emuls="h8500s h8500b h8500m h8500c"
301			;;
302sh-*-linux*)
303			targ_emul=shlelf_linux
304			targ_extra_emuls=shelf_linux
305			targ_extra_libpath=shelf_linux
306			;;
307sh64eb-*-linux*)	targ_emul=shelf32_linux
308			targ_extra_emuls="shlelf32_linux"
309			;;
310sh64-*-linux*)		targ_emul=shlelf32_linux
311			targ_extra_emuls="shelf32_linux"
312			targ_extra_libpath=shelf32_linux
313			;;
314sh*eb-*-linux*)
315			targ_emul=shelf_linux
316			;;
317sh*-*-linux*)
318			targ_emul=shlelf_linux
319			;;
320sh5le-*-netbsd*)
321			targ_emul=shlelf32_nbsd
322			targ_extra_emuls="shelf32_nbsd shelf64_nbsd shlelf64_nbsd shelf_nbsd shlelf_nbsd"
323			;;
324sh5-*-netbsd*)
325			targ_emul=shelf32_nbsd
326			targ_extra_emuls="shlelf32_nbsd shelf64_nbsd shlelf64_nbsd shelf_nbsd shlelf_nbsd"
327			;;
328sh64le-*-netbsd*)
329			targ_emul=shlelf64_nbsd
330			targ_extra_emuls="shelf64_nbsd shelf32_nbsd shlelf32_nbsd shelf_nbsd shlelf_nbsd"
331			;;
332sh64-*-netbsd*)
333			targ_emul=shelf64_nbsd
334			targ_extra_emuls="shlelf64_nbsd shelf32_nbsd shlelf32_nbsd shelf_nbsd shlelf_nbsd"
335			;;
336sh*l*-*-netbsdelf*)
337			targ_emul=shlelf_nbsd
338			targ_extra_emuls=shelf_nbsd
339			;;
340sh*-*-netbsdelf*)
341			targ_emul=shelf_nbsd
342			targ_extra_emuls=shlelf_nbsd
343			;;
344sh*-*-openbsd*)
345			targ_emul=shlelf_obsd
346			targ_extra_emuls=shelf_obsd
347			;;
348shle*-*-elf* | sh[1234]*le*-*-elf | shle*-*-kaos*)
349			targ_emul=shlelf
350			targ_extra_emuls="shelf shl sh"
351			;;
352sh-*-rtemscoff*)	targ_emul=sh; targ_extra_emuls=shl ;;
353sh-*-elf* | sh[1234]*-*-elf | sh-*-rtems* | sh-*-kaos* | sh-*-vxworks)
354			targ_emul=shelf
355			targ_extra_emuls="shlelf sh shl"
356			;;
357sh-*-nto*)		targ_emul=shelf_nto
358			targ_extra_emuls=shlelf_nto
359			;;
360sh-*-pe)		targ_emul=shpe ;
361			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
362sh-*-*)			targ_emul=sh; targ_extra_emuls=shl ;;
363sh64le-*-elf*)
364			targ_emul=shlelf
365			targ_extra_emuls="shelf shlelf32 shelf32 shlelf64 shelf64"
366			targ_extra_libpath=$targ_extra_emuls
367			;;
368sh64-*-elf*)
369			targ_emul=shelf
370			targ_extra_emuls="shlelf shelf32 shlelf32 shelf64 shlelf64"
371			targ_extra_libpath=$targ_extra_emuls
372			;;
373m68k-sony-*)		targ_emul=news ;;
374m68k-hp-bsd*)		targ_emul=hp300bsd ;;
375m68*-motorola-sysv*)	targ_emul=delta68 ;;
376m68*-*-aout)		targ_emul=m68kaout ;;
377m68*-*-coff)		targ_emul=m68kcoff ;;
378m68*-*-elf)		targ_emul=m68kelf ;;
379m68*-*-hpux*)		targ_emul=hp3hpux ;;
380m68k-*-linux*aout*)	targ_emul=m68klinux
381			targ_extra_emuls=m68kelf
382			tdir_m68kelf=`echo ${targ_alias} | sed -e 's/aout//'`
383			;;
384m68k-*-linux-gnu*)	targ_emul=m68kelf
385			targ_extra_emuls=m68klinux
386			tdir_m68klinux=`echo ${targ_alias} | sed -e 's/linux/linuxaout/'`
387			;;
388m68k-*-uclinux*)	targ_emul=m68kelf ;;
389m68*-*-gnu*)		targ_emul=m68kelf ;;
390m68*-*-lynxos*)		targ_emul=m68klynx ;;
391m68*-*-netbsd*4k*)	targ_emul=m68k4knbsd
392			targ_extra_emuls="m68knbsd m68kelfnbsd" ;;
393m68*-*-netbsdelf*)	targ_emul=m68kelfnbsd
394			targ_extra_emuls="m68knbsd m68k4knbsd" ;;
395m68*-*-netbsdaout* | m68*-*-netbsd*)
396			targ_emul=m68knbsd
397			targ_extra_emuls="m68kelfnbsd m68k4knbsd" ;;
398m68*-*-openbsd*)	targ_emul=m68kelfobsd
399			targ_extra_emuls="m68knbsd m68k4knbsd" ;;
400m68*-*-psos*)		targ_emul=m68kpsos ;;
401m68*-*-rtemscoff*)	targ_emul=m68kcoff ;;
402m68*-*-rtems*)		targ_emul=m68kelf ;;
403m88*-*-openbsd*)	targ_emul=elf32m88k_obsd
404			targ_extra_emul="m88kopenbsd m88kbcs" ;;
405m88*-*-*)		targ_emul=m88kbcs ;;
406hppa*64*-*-linux-gnu*)	targ_emul=hppa64linux ;;
407hppa*64*-*)		targ_emul=elf64hppa ;;
408hppa*-*-linux-gnu*)	targ_emul=hppalinux ;;
409hppa*-*-*elf*)		targ_emul=hppaelf ;;
410hppa*-*-lites*)		targ_emul=hppaelf ;;
411hppa*-*-netbsd*)	targ_emul=hppanbsd ;;
412hppa*-*-openbsd*)	targ_emul=hppaobsd ;;
413hppa*-*-rtems*)		targ_emul=hppaelf ;;
414vax-dec-ultrix* | vax-dec-bsd*) targ_emul=vax ;;
415vax-*-netbsdelf*)	targ_emul=elf32vax
416			targ_extra_emuls=vaxnbsd ;;
417vax-*-netbsdaout* | vax-*-netbsd*)
418			targ_emul=vaxnbsd
419			targ_extra_emuls=elf32vax ;;
420vax-*-openbsd*)		targ_emul=elf32vax_obsd
421			targ_extra_emuls=vaxnbsd ;;
422vax-*-linux-gnu*)	targ_emul=elf32vax ;;
423mips*-*-pe)		targ_emul=mipspe ;
424			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
425mips*-dec-ultrix*)	targ_emul=mipslit ;;
426mips*-dec-osf*)		targ_emul=mipslit ;;
427mips*-sgi-irix5*)	targ_emul=elf32bsmip ;;
428mips*-sgi-irix6*)	targ_emul=elf32bmipn32
429	                targ_extra_emuls="elf32bsmip elf64bmip"
430			targ_extra_libpath=$targ_extra_emuls
431	                ;;
432mips*-sgi-irix*)	targ_emul=mipsbig ;;
433mips*el-*-ecoff*)	targ_emul=mipsidtl ;;
434mips*-*-ecoff*)		targ_emul=mipsidt ;;
435mips*el-*-netbsd*)	targ_emul=elf32lmip
436			targ_extra_emuls="elf32bmip"
437			;;
438mips*-*-netbsd*)	targ_emul=elf32bmip
439			targ_extra_emuls="elf32lmip"
440			;;
441mips64*el-*-openbsd*)	targ_emul=elf64ltsmip_obsd
442			targ_extra_emuls="elf32ltsmipn32 elf32btsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
443			;;
444mips64*-*-openbsd*)	targ_emul=elf64btsmip_obsd
445			targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
446			;;
447mips*el-*-openbsd*)	targ_emul=elf32ltsmip ;;
448mips*-*-openbsd*)	targ_emul=elf32btsmip ;;
449mips*-*-bsd*)		targ_emul=mipsbig ;;
450mips*vr4300el-*-elf*)	targ_emul=elf32l4300 ;;
451mips*vr4300-*-elf*)	targ_emul=elf32b4300 ;;
452mips*vr4100el-*-elf*)	targ_emul=elf32l4300 ;;
453mips*vr4100-*-elf*)	targ_emul=elf32b4300 ;;
454mips*vr5000el-*-elf*)	targ_emul=elf32l4300 ;;
455mips*vr5000-*-elf*)	targ_emul=elf32b4300 ;;
456mips*el-*-elf*)		targ_emul=elf32elmip ;;
457mips*-*-elf*)		targ_emul=elf32ebmip ;;
458mips*el-*-rtems*)	targ_emul=elf32elmip ;;
459mips*-*-rtems*)		targ_emul=elf32ebmip ;;
460mips*el-*-vxworks*)	targ_emul=elf32elmip ;;
461mips*-*-vxworks*)	targ_emul=elf32ebmip
462		        targ_extra_emuls="elf32elmip" ;;
463mips*-*-windiss)	targ_emul=elf32mipswindiss ;;
464mips64*el-*-linux-gnu*)	targ_emul=elf32ltsmipn32
465			targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
466			;;
467mips64*-*-linux-gnu*)	targ_emul=elf32btsmipn32
468			targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
469			;;
470mips*el-*-linux-gnu*)	targ_emul=elf32ltsmip
471			targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
472			;;
473mips*-*-linux-gnu*)	targ_emul=elf32btsmip
474			targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
475			;;
476mips*-*-lnews*)		targ_emul=mipslnews ;;
477mips*-*-sysv4*)         targ_emul=elf32btsmip ;;
478mmix-*-*)		targ_emul=mmo
479			targ_extra_emuls=elf64mmix
480			;;
481mn10200-*-*)		targ_emul=mn10200 ;;
482mn10300-*-*)		targ_emul=mn10300 ;;
483msp430-*-*)             targ_emul=msp430x110
484                        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 msp430x311 msp430x312 msp430x313 msp430x314 msp430x315 msp430x323 msp430x325 msp430x336 msp430x337 msp430x412 msp430x413 msp430xE423 msp430xE425 msp430xE427 msp430xW423 msp430xW425 msp430xW427 msp430x435 msp430x436 msp430x437 msp430x447 msp430x448 msp430x449" ;;
485alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
486		        targ_emul=elf64alpha_fbsd
487			targ_extra_emuls="elf64alpha alpha"
488			tdir_alpha=`echo ${targ_alias} | sed -e 's/freebsd/freebsdecoff/'`
489			;;
490alpha*-*-linuxecoff*)	targ_emul=alpha targ_extra_emuls=elf64alpha
491			tdir_elf64alpha=`echo ${targ_alias} | sed -e 's/ecoff//'`
492			;;
493alpha*-*-linux-gnu*)	targ_emul=elf64alpha targ_extra_emuls=alpha
494			tdir_alpha=`echo ${targ_alias} | sed -e 's/linux/linuxecoff/'`
495			;;
496alpha*-*-osf*)		targ_emul=alpha ;;
497alpha*-*-gnu*)		targ_emul=elf64alpha ;;
498alpha*-*-netware*)	targ_emul=alpha ;;
499alpha*-*-netbsd*)	targ_emul=elf64alpha_nbsd ;;
500alpha*-*-openbsd*)	targ_emul=elf64alpha_obsd ;;
501z8k-*-coff) 		targ_emul=z8002; targ_extra_emuls=z8001 ;;
502ns32k-pc532-mach* | ns32k-pc532-ux*)	targ_emul=pc532macha ;;
503ns32k-*-netbsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd ;;
504openrisc-*-*)		targ_emul=elf32openrisc ;;
505or32-*-coff)		targ_emul=or32 ;;
506or32-*-elf)		targ_emul=or32elf ;;
507or32-*-rtems*)          targ_emul=or32elf ;;
508pdp11-*-*)		targ_emul=pdp11 ;;
509pjl*-*-*)	        targ_emul=pjlelf ; targ_extra_emuls="elf_i386" ;;
510pj*-*-*)	        targ_emul=pjelf ;;
511powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu)
512			targ_emul=elf32ppc_fbsd;
513			targ_extra_emuls="elf32ppc elf32ppcsim";
514			targ_extra_libpath=elf32ppc;
515			tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'`
516			;;
517powerpc-*-openbsd*)	targ_emul=elf32ppc_obsd ;;
518powerpc*-*-linux*)
519	case "${targ}" in
520	*64*)	targ_emul=elf64ppc
521		targ_extra_emuls="elf32ppclinux elf32ppc elf32ppcsim"
522		targ_extra_libpath="elf32ppclinux elf32ppc"
523		tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
524		tdir_elf32ppclinux=$tdir_elf32ppc
525		tdir_elf32ppcsim=$tdir_elf32ppc ;;
526	*)	targ_emul=elf32ppclinux
527		targ_extra_emuls="elf32ppc elf32ppcsim"
528		targ_extra_libpath=elf32ppc
529		if test "${want64}" = "true"; then
530		  targ_extra_emuls="$targ_extra_emuls elf64ppc"
531		  targ_extra_libpath="$targ_extra_libpath elf64ppc"
532		fi
533		;;
534	esac ;;
535powerpc*le-*-elf* | powerpc*le-*-eabi* | powerpc*le-*-solaris* \
536  | powerpc*le-*-sysv* | powerpc*le-*-vxworks*)
537	case "${targ}" in
538	*64*)	targ_emul=elf64lppc
539		targ_extra_emuls="elf32lppc elf32lppcsim"
540		tdir_elf32lppc=`echo "${targ_alias}" | sed -e 's/64//'`
541		tdir_elf32lppcsim=$tdir_elf32lppc ;;
542	*)	targ_emul=elf32lppc
543		targ_extra_emuls="elf32ppcsim" ;;
544	esac ;;
545powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \
546  | powerpc*-*-netbsd* | powerpc*-*-vxworks* | powerpc*-*-kaos*)
547	case "${targ}" in
548	*64*)	targ_emul=elf64ppc
549		targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim"
550		tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
551		tdir_elf32ppclinux=$tdir_elf32ppc
552		tdir_elf32ppcsim=$tdir_elf32ppc ;;
553	*)	targ_emul=elf32ppc
554		targ_extra_emuls="elf32ppclinux elf32ppcsim" ;;
555	esac ;;
556powerpc-*-nto*)         targ_emul=elf32ppcnto ;;
557powerpcle-*-nto*)       targ_emul=elf32lppcnto ;;
558powerpcle-*-rtems*)	targ_emul=elf32leppc ;;
559powerpc-*-rtems*)	targ_emul=elf32ppc ;;
560powerpc-*-macos*)	targ_emul=ppcmacos ;;
561powerpc-*-netware*)	targ_emul=ppcnw ;;
562powerpcle-*-pe)         targ_emul=ppcpe ;;
563powerpcle-*-winnt*)     targ_emul=ppcpe ;;
564powerpcle-*-cygwin*)    targ_emul=ppcpe ;;
565powerpc-*-aix5*)	targ_emul=aix5ppc ;;
566powerpc-*-aix*)		targ_emul=aixppc ;;
567powerpc-*-beos*)	targ_emul=aixppc ;;
568powerpc-*-windiss*)	targ_emul=elf32ppcwindiss ;;
569rs6000-*-aix5*)		targ_emul=aix5rs6 ;;
570rs6000-*-aix*)		targ_emul=aixrs6 ;;
571tic30-*-*aout*)		targ_emul=tic30aout ;;
572tic30-*-*coff*)		targ_emul=tic30coff ;;
573tic4x-*-* | c4x-*-*)    targ_emul=tic4xcoff ; targ_extra_emuls="tic3xcoff tic3xcoff_onchip" ;;
574tic54x-*-* | c54x*-*-*)	targ_emul=tic54xcoff ;;
575tic80-*-*)		targ_emul=tic80coff ;;
576v850-*-*)		targ_emul=v850 ;;
577v850e-*-*)		targ_emul=v850 ;;
578v850ea-*-*)		targ_emul=v850 ;;
579iq2000-*-elf)           targ_emul=elf32iq2000 ; targ_extra_emuls="elf32iq10" ;;
580frv-*-*linux*)		targ_emul=elf32frvfd ;;
581frv-*-*)		targ_emul=elf32frv ; targ_extra_emuls="elf32frvfd" ;;
582w65-*-*)		targ_emul=w65 ;;
583xstormy16-*-*)		targ_emul=elf32xstormy16 ;;
584xtensa-*-*)		targ_emul=elf32xtensa;;
585fr30-*-*)		targ_emul=elf32fr30 ;;
586mcore-*-pe)		targ_emul=mcorepe ;
587			targ_extra_ofiles="deffilep.o pe-dll.o" ;;
588mcore-*-elf)		targ_emul=elf32mcore ;;
589s390x-*-linux*)         targ_emul=elf64_s390
590			targ_extra_emuls=elf_s390
591			targ_extra_libpath=$targ_extra_emuls
592			tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
593s390-*-linux*)          targ_emul=elf_s390
594			if test "${want64}" = "true"; then
595			  targ_extra_emuls=elf64_s390
596			  targ_extra_libpath=$targ_extra_emuls
597			  tdir_elf64_s390=`echo ${targ_alias} | sed -e 's/s390/s390x/'`
598			fi ;;
599*-*-ieee*)		targ_emul=vanilla ;;
600ip2k-*-elf)		targ_emul=elf32ip2k ;;
601
602*)
603  echo 2>&1 "*** ld does not support target ${targ}"
604  echo 2>&1 "*** see ld/configure.tgt for supported targets"
605  exit 1
606
607esac
608
609NATIVE_LIB_DIRS='/usr/local/lib /lib /usr/lib'
610case "${target}" in
611
612*-*-freebsd*)
613  NATIVE_LIB_DIRS='/lib /usr/lib /usr/local/lib'
614  ;;
615
616hppa*64*-*-hpux11*)
617  NATIVE_LIB_DIRS=/usr/lib/pa20_64
618  ;;
619
620i[3-7]86-*-sysv4*)
621  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
622  ;;
623
624i[3-7]86-*-solaris*)
625  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
626  ;;
627
628i[3-7]86-pc-interix*)
629  NATIVE_LIB_DIRS='/usr/local/lib $$INTERIX_ROOT/usr/lib /lib /usr/lib'
630  ;;
631
632ia64-*-aix*)
633  NATIVE_LIB_DIRS='/usr/local/lib /usr/lib/ia64l64 /lib /usr/lib'
634  ;;
635
636sparc*-*-solaris2*)
637  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
638  ;;
639
640i[03-9x]86-*-cygwin*)
641  NATIVE_LIB_DIRS='/usr/lib /usr/lib/w32api'
642  ;;
643
644*-*-linux*)
645  ;;
646
647*-*-freebsd*)
648  ;;
649
650*-*-netbsd*)
651  ;;
652
653alpha*-*-*)
654  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
655  ;;
656
657esac
658