Subversion Repositories QNX 8.QNX8 GNU binutils

Rev

Rev 6 | Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 pmbaty 1
# configure.tgt
2
#
3
#   Copyright (C) 2013-2023 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
 
37
targ_extra_emuls=
38
targ_extra_libpath=
39
targ_extra_ofiles="ldelf.o ldelfgen.o"
40
targ64_extra_emuls=
41
targ64_extra_libpath=
42
 
43
# By default the linker will generate warnings if it is creating an
44
# executable stack or a segment with all three of read, write and
45
# execute permissions.  These settings are not appropriate for all
46
# targets however, so we can change them here:
47
 
48
if test "${ac_default_ld_warn_rwx_segments}" = unset; then
49
  case "${targ}" in
50
      # The CRIS and V850 default linker scripts yields just one segment
51
      # as intended, so a rwx segment warning is not helpful.
52
      # The HPPA's and SPARC's PLT sections use a constructed trampoline
53
      # hence it needs to have a RWX segment.
54
      # Many MIPS targets use executable segments.
55
    cris-*-* | crisv32-*-* | \
56
    hppa*-*-* | \
57
    mips*-*-* | \
58
    sparc*-*-* | \
59
    v850*-*-*)
60
      ac_default_ld_warn_rwx_segments=0
61
      ;;
62
    *)
63
      ;;
64
  esac
65
fi
66
 
67
if test "${ac_default_ld_warn_execstack}" = 2; then
68
  case "${targ}" in
69
      # The HPPA port needs to support older kernels that
70
      # use executable stacks for signals and syscalls.
71
      # Many MIPS targets use executable stacks.
72
    hppa*-*-* | \
73
    mips*-*-*)
74
      ac_default_ld_warn_execstack=0
75
      ;;
76
    *)
77
      ;;
78
  esac
79
fi
80
 
81
# Please try to keep this table more or less in alphabetic order - it
82
# makes it much easier to lookup a specific archictecture.
83
case "${targ}" in
84
aarch64_be-*-elf)	targ_emul=aarch64elfb
85
			targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b armelfb armelf"
86
			;;
87
aarch64-*-elf | aarch64-*-rtems* | aarch64-*-genode*)
88
			targ_emul=aarch64elf
89
			targ_extra_emuls="aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb"
90
			;;
91
# Pierre-Marie Baty -- added aarch64 QNX case
92
aarch64-*-nto-qnx*)
93
			targ_emul=aarch64elf
94
			targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb"
95
			;;
96
aarch64-*-cloudabi*)	targ_emul=aarch64cloudabi
97
			targ_extra_emuls=aarch64cloudabib
98
			;;
99
aarch64-*-freebsd*)	targ_emul=aarch64fbsd
100
			targ_extra_emuls="aarch64fbsdb aarch64elf"
101
			;;
102
aarch64-*-fuchsia*)	targ_emul=aarch64elf
103
			targ_extra_emuls="aarch64elfb armelf armelfb"
104
			;;
105
aarch64_be-*-linux-gnu_ilp32)
106
			targ_emul=aarch64linux32b
107
			targ_extra_libpath="aarch64linuxb aarch64linux aarch64linux32 armelfb_linux_eabi armelf_linux_eabi"
108
			targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath"
109
			;;
110
aarch64-*-linux-gnu_ilp32)
111
			targ_emul=aarch64linux32
112
			targ_extra_libpath="aarch64linux aarch64linuxb aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
113
			targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb $targ_extra_libpath"
114
			;;
115
aarch64_be-*-linux*)	targ_emul=aarch64linuxb
116
			targ_extra_libpath="aarch64linux aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
117
			targ_extra_emuls="aarch64elfb aarch64elf aarch64elf32 aarch64elf32b armelfb armelf $targ_extra_libpath"
118
			;;
119
aarch64-*-linux*)	targ_emul=aarch64linux
120
			targ_extra_libpath="aarch64linuxb aarch64linux32 aarch64linux32b armelfb_linux_eabi armelf_linux_eabi"
121
			targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb $targ_extra_libpath"
122
			;;
123
aarch64-*-haiku*)	targ_emul=aarch64haiku
124
			targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb armelf_haiku $targ_extra_libpath"
125
			;;
126
aarch64-*-nto*)		targ_emul=aarch64nto
127
			targ_extra_emuls="aarch64elf aarch64elf32 aarch64elf32b aarch64elfb armelf armelfb"
128
			;;
129
aarch64-*-pe* | aarch64-*-mingw*)
130
			targ_emul=aarch64pe
131
			targ_extra_emuls="arm64pe"
132
			targ_extra_ofiles="deffilep.o pep-dll-aarch64.o pe-dll.o pdb.o"
133
			;;
134
alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
135
			targ_emul=elf64alpha_fbsd
136
			targ_extra_emuls="elf64alpha alpha"
137
			tdir_alpha=`echo ${targ_alias} | sed -e 's/freebsd/freebsdecoff/'`
138
			;;
139
alpha*-*-linux*ecoff*)	targ_emul=alpha
140
			targ_extra_emuls=elf64alpha
141
			tdir_elf64alpha=`echo ${targ_alias} | sed -e 's/ecoff//'`
142
			;;
143
alpha*-*-linux-*)	targ_emul=elf64alpha
144
			targ_extra_emuls=alpha
145
			tdir_alpha=`echo ${targ_alias} | sed -e 's/linux\(-gnu\)*/linux\1ecoff/'`
146
			;;
147
alpha*-*-osf*)		targ_emul=alpha
148
			targ_extra_ofiles=
149
			;;
150
alpha*-*-gnu*)		targ_emul=elf64alpha
151
			;;
152
alpha*-*-netbsd*)	targ_emul=elf64alpha_nbsd
153
			;;
154
alpha*-*-openbsd*)	targ_emul=elf64alpha
155
			;;
156
alpha*-*-*vms*)		targ_emul=alphavms
157
			targ_extra_ofiles=
158
			;;
159
am33_2.0-*-linux*)	targ_emul=elf32am33lin # mn10300 variant
160
			;;
161
arc*-*-elf*)		targ_emul=arcelf
162
			targ_extra_emuls="arclinux arclinux_nps arcv2elf arcv2elfx"
163
			;;
164
arc*-*-linux*)		case "${with_cpu}" in
165
			nps400)	targ_emul=arclinux_nps
166
				targ_extra_emuls=arclinux
167
				;;
168
			*)	targ_emul=arclinux
169
				targ_extra_emuls=arclinux_nps
170
				;;
171
			esac
172
			targ_extra_emuls="${targ_extra_emuls} arcelf arcv2elf arcv2elfx"
173
			;;
174
arm*-*-cegcc*)		targ_emul=arm_wince_pe
175
			targ_extra_ofiles="deffilep.o pe-dll.o"
176
			LIB_PATH='${tooldir}/lib/w32api'
177
			;;
178
arm-wince-pe | arm-*-wince | arm*-*-mingw32ce*)
179
			targ_emul=arm_wince_pe
180
			targ_extra_ofiles="deffilep.o pe-dll.o"
181
			;;
182
arm-*-pe)		targ_emul=armpe
183
			targ_extra_ofiles="deffilep.o pe-dll.o"
184
			;;
185
arm*b-*-freebsd*)	targ_emul=armelfb_fbsd
186
			targ_extra_emuls="armelf_fbsd armelf"
187
			;;
188
arm*-*-freebsd* | arm-*-kfreebsd*-gnu)
189
			targ_emul=armelf_fbsd
190
			targ_extra_emuls="armelfb_fbsd armelf"
191
			;;
192
armeb-*-netbsd*)	targ_emul=armelfb_nbsd;
193
			targ_extra_emuls="armelf_nbsd armelf"
194
			;;
195
arm-*-netbsd*)	targ_emul=armelf_nbsd;
196
			targ_extra_emuls="armelfb_nbsd armelf"
197
			;;
198
arm-*-nto*)		targ_emul=armnto
199
			;;
200
arm-*-phoenix*)		targ_emul=armelf
201
			;;
202
armeb-*-elf | armeb-*-eabi*)
203
			targ_emul=armelfb
204
			;;
205
arm-*-elf | arm*-*-eabi* | arm-*-rtems* | arm-*-genode*)
206
			targ_emul=armelf
207
			;;
208
arm-*-kaos*)		targ_emul=armelf
209
			;;
210
arm9e-*-elf)		targ_emul=armelf
211
			;;
212
arm*b-*-linux-*eabi*)	targ_emul=armelfb_linux_eabi
213
			targ_extra_emuls=armelf_linux_eabi
214
			targ_extra_libpath=$targ_extra_emuls
215
			;;
216
arm*b-*-linux-*)	targ_emul=armelfb_linux
217
			targ_extra_emuls="armelfb armelf armelf_linux"
218
			targ_extra_libpath="armelf_linux"
219
			;;
220
arm*-*-linux-*eabi*)	targ_emul=armelf_linux_eabi
221
			targ_extra_emuls="armelfb_linux_eabi"
222
			targ_extra_libpath=$targ_extra_emuls
223
			;;
224
arm*-*-uclinuxfdpiceabi)
225
			targ_emul=armelf_linux_eabi
226
			targ_extra_emuls="armelfb_linux_eabi armelf_linux_fdpiceabi armelfb_linux_fdpiceabi"
227
			targ_extra_libpath=$targ_extra_emuls
228
			;;
229
arm*-*-linux-*)		targ_emul=armelf_linux
230
			targ_extra_emuls="armelf armelfb armelfb_linux"
231
			targ_extra_libpath="armelfb_linux"
232
			;;
233
arm*b-*-nacl*)		targ_emul=armelfb_nacl
234
			targ_extra_emuls="armelf_nacl"
235
			targ_extra_libpath=$targ_extra_emuls
236
			;;
237
arm*-*-nacl*)		targ_emul=armelf_nacl
238
			targ_extra_emuls="armelfb_nacl"
239
			targ_extra_libpath=$targ_extra_emuls
240
			;;
241
arm*-*-uclinux*eabi*)	targ_emul=armelf_linux_eabi
242
			targ_extra_emuls=armelfb_linux_eabi
243
			targ_extra_libpath=$targ_extra_emuls
244
			;;
245
arm*-*-uclinux*)	targ_emul=armelf_linux
246
			targ_extra_emuls="armelf armelfb armelfb_linux"
247
			targ_extra_libpath="armelfb_linux"
248
			;;
249
arm-*-vxworks)		targ_emul=armelf_vxworks
250
			;;
251
arm*-*-conix*)		targ_emul=armelf
252
			;;
253
arm*-*-fuchsia*)	targ_emul=armelf_fuchsia
254
			targ_extra_emuls="armelfb_fuchsia armelf armelfb"
255
			;;
256
arm*-*-haiku*)		targ_emul=armelf_haiku
257
			targ_extra_emuls=armelf
258
			;;
259
avr-*-*)		targ_emul=avr2
260
			targ_extra_emuls="avr1 avr25 avr3 avr31 avr35 avr4 avr5 avr51 avr6 avrxmega1 avrxmega2 avrxmega3 avrxmega4 avrxmega5 avrxmega6 avrxmega7 avrtiny"
261
			;;
262
bfin-*-elf | bfin-*-rtems*)
263
			targ_emul=elf32bfin
264
			targ_extra_emuls="elf32bfinfd"
265
			targ_extra_libpath=$targ_extra_emuls
266
			;;
267
bfin-*-uclinux*)	targ_emul=elf32bfin;
268
			targ_extra_emuls="elf32bfinfd"
269
			targ_extra_libpath=$targ_extra_emuls
270
			;;
271
bfin-*-linux-uclibc*)	targ_emul=elf32bfinfd;
272
			targ_extra_emuls="elf32bfin"
273
			targ_extra_libpath=$targ_extra_emuls
274
			;;
275
bpf-*-*)		targ_emul=elf64bpf
276
			;;
277
cr16-*-elf*)		targ_emul=elf32cr16
278
			;;
279
cris-*-*aout*)		targ_emul=crisaout
280
			targ_extra_emuls="criself crislinux"
281
			targ_extra_libpath=$targ_extra_emuls
282
			;;
283
cris-*-linux-* | crisv32-*-linux-*)
284
			targ_emul=crislinux
285
			;;
286
cris-*-* | crisv32-*-*)	targ_emul=criself
287
			targ_extra_emuls="crisaout crislinux"
288
			targ_extra_libpath=$targ_extra_emuls
289
			;;
290
crx-*-elf*)		targ_emul=elf32crx
291
			;;
292
 
293
csky-*-elf*)		targ_emul=cskyelf
294
			;;
295
csky-*-linux*)		targ_emul=cskyelf_linux
296
			;;
297
 
298
d10v-*-*)		targ_emul=d10velf
299
			;;
300
d30v-*-*ext*)		targ_emul=d30v_e
301
			targ_extra_emuls="d30velf d30v_o"
302
			targ_extra_ofiles=ldelfgen.o
303
			;;
304
d30v-*-*onchip*)	targ_emul=d30v_o
305
			targ_extra_emuls="d30velf d30v_e"
306
			targ_extra_ofiles=ldelfgen.o
307
			;;
308
d30v-*-*)		targ_emul=d30velf
309
			targ_extra_emuls="d30v_e d30v_o"
310
			targ_extra_ofiles=ldelfgen.o
311
			;;
312
dlx-*-elf*)		targ_emul=elf32_dlx
313
			targ_extra_ofiles=ldelfgen.o
314
			;;
315
epiphany-*-*)		targ_emul=elf32epiphany
316
			targ_extra_emuls="elf32epiphany_4x4"
317
			;;
318
fido*-*-elf*)		targ_emul=m68kelf
319
			;;
320
fr30-*-*)		targ_emul=elf32fr30
321
			targ_extra_ofiles=ldelfgen.o
322
			;;
323
frv-*-*linux*)		targ_emul=elf32frvfd
324
			;;
325
frv-*-*)		targ_emul=elf32frv
326
			targ_extra_emuls="elf32frvfd"
327
			;;
328
ft32-*-*)		targ_emul=elf32ft32
329
			targ_extra_ofiles=ldelfgen.o
330
			;;
331
h8300-*-elf* | h8300-*-rtems*)
332
			targ_emul=h8300elf;
333
			targ_extra_emuls="h8300helf h8300self h8300hnelf h8300snelf h8300sxelf h8300sxnelf"
334
			;;
335
h8300-*-linux*)
336
			targ_emul=h8300elf_linux;
337
			targ_extra_emuls="h8300helf_linux h8300self_linux h8300sxelf_linux"
338
			;;
339
hppa*64*-*-linux-*)	targ_emul=hppa64linux
340
			;;
341
hppa*64*-hpux*)		targ_emul=elf64hppa
342
			;;
343
hppa*-*-linux-*)	targ_emul=hppalinux
344
			;;
345
hppa*-*-*elf*)		targ_emul=hppaelf
346
			;;
347
hppa*-*-lites*)		targ_emul=hppaelf
348
			;;
349
hppa*-*-netbsd*)	targ_emul=hppanbsd
350
			;;
351
hppa*-*-openbsd*)	targ_emul=hppaobsd
352
			;;
353
i[3-7]86-*-nto-qnx*)	targ_emul=i386nto
354
			;;
355
i[3-7]86-*-go32)	targ_emul=i386go32
356
			targ_extra_ofiles=
357
			;;
358
i[3-7]86-*-msdosdjgpp*) targ_emul=i386go32
359
			targ_extra_ofiles=
360
			;;
361
i[3-7]86-*-lynxos*)	targ_emul=i386lynx
362
			;;
363
i[3-7]86-*-aros*)	targ_emul=elf_i386
364
			targ_extra_emuls=elf_iamcu
365
			;;
366
i[3-7]86-*-rdos*)	targ_emul=elf_i386
367
			targ_extra_emuls=elf_iamcu
368
			;;
369
i[3-7]86-*-bsd)		targ_emul=i386bsd
370
			targ_extra_ofiles=
371
			;;
372
i[3-7]86-*-bsd386)	targ_emul=i386bsd
373
			targ_extra_ofiles=
374
			;;
375
i[3-7]86-*-bsdi*)	targ_emul=i386bsd
376
			targ_extra_ofiles=
377
			;;
378
i[3-7]86-*-linux-*)	targ_emul=elf_i386
379
			targ_extra_emuls="elf_iamcu"
380
			targ64_extra_emuls="elf_x86_64 elf32_x86_64"
381
			targ64_extra_libpath="elf_x86_64 elf32_x86_64"
382
			;;
383
i[3-7]86-*-redox*)	targ_emul=elf_i386
384
			targ_extra_emuls=elf_x86_64
385
			;;
386
i[3-7]86-*-solaris2*)	targ_emul=elf_i386_sol2
387
			targ_extra_emuls="elf_i386_ldso elf_i386 elf_iamcu elf_x86_64_sol2 elf_x86_64"
388
			targ_extra_libpath=$targ_extra_emuls
389
			;;
390
i[3-7]86-*-solaris*)	targ_emul=elf_i386_ldso
391
			targ_extra_emuls="elf_i386"
392
			targ_extra_libpath=$targ_extra_emuls
393
			;;
394
i[3-7]86-*-netbsd* | \
395
i[3-7]86-*-netbsd*-gnu* | \
396
i[3-7]86-*-knetbsd*-gnu | \
397
i[3-7]86-*-openbsd*)
398
			targ_emul=elf_i386
399
			targ_extra_emuls="elf_iamcu"
400
			;;
401
i[3-7]86-*-elfiamcu)	targ_emul=elf_iamcu
402
			targ_extra_emuls=elf_i386
403
			;;
404
i[3-7]86-*-elf* | i[3-7]86-*-rtems* | i[3-7]86-*-genode*)
405
			targ_emul=elf_i386
406
			targ_extra_emuls=elf_iamcu
407
			;;
408
i[3-7]86-*-dragonfly*)	targ_emul=elf_i386
409
			targ_extra_emuls="elf_iamcu i386bsd"
410
			;;
411
i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
412
			targ_emul=elf_i386_fbsd
413
			targ_extra_emuls="elf_i386 elf_iamcu i386bsd"
414
			;;
415
i[3-7]86-*-gnu*)	targ_emul=elf_i386
416
			targ_extra_emuls=elf_iamcu
417
			;;
418
i[3-7]86-*-msdos*)	targ_emul=i386msdos
419
			targ_extra_emuls=i386aout
420
			targ_extra_ofiles=
421
			;;
422
i[3-7]86-*-moss*)	targ_emul=i386moss
423
			targ_extra_emuls=i386msdos
424
			;;
425
i[3-7]86-*-winnt*)	targ_emul=i386pe ;
426
			targ_extra_ofiles="deffilep.o pdb.o pe-dll.o"
427
			;;
428
i[3-7]86-*-pe)		targ_emul=i386pe ;
429
			targ_extra_ofiles="deffilep.o pdb.o pe-dll.o"
430
			;;
431
i[3-7]86-*-cygwin*)	targ_emul=i386pe ;
432
			targ_extra_ofiles="deffilep.o pdb.o pe-dll.o" ;
433
			test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api'
434
			;;
435
i[3-7]86-*-mingw32*)	targ_emul=i386pe ;
436
			targ_extra_ofiles="deffilep.o pdb.o pe-dll.o"
437
			;;
438
i[3-7]86-*-interix*)	targ_emul=i386pe_posix;
439
			targ_extra_ofiles="deffilep.o pe-dll.o"
440
			;;
441
i[3-7]86-*-beospe*)	targ_emul=i386beos
442
			targ_extra_ofiles=
443
			;;
444
i[3-7]86-*-beos*)	targ_emul=elf_i386_be
445
			;;
446
i[3-7]86-*-haiku*)	targ_emul=elf_i386_haiku
447
			;;
448
i[3-7]86-*-vxworks*)	targ_emul=elf_i386_vxworks
449
			;;
450
i[3-7]86-*-chaos)	targ_emul=elf_i386_chaos
451
			;;
452
ia16-*-elf*)		targ_emul=elf_i386
453
			targ_extra_emuls=i386msdos
454
			;;
455
ia64-*-elf*)		targ_emul=elf64_ia64
456
			;;
457
ia64-*-freebsd* | ia64-*-kfreebsd*-gnu)
458
			targ_emul=elf64_ia64_fbsd
459
			targ_extra_emuls="elf64_ia64"
460
			;;
461
ia64-*-netbsd*)		targ_emul=elf64_ia64
462
			;;
463
ia64-*-linux*)		targ_emul=elf64_ia64
464
			;;
465
ia64-*-*vms*)		targ_emul=elf64_ia64_vms
466
			targ_extra_ofiles=ldelfgen.o
467
			;;
468
ia64-*-aix*)		targ_emul=elf64_aix
469
			;;
470
ip2k-*-elf)		targ_emul=elf32ip2k
471
			;;
472
iq2000-*-elf)		targ_emul=elf32iq2000
473
			targ_extra_emuls="elf32iq10"
474
			targ_extra_ofiles=ldelfgen.o
475
			;;
476
lm32-*-*linux*)		targ_emul=elf32lm32fd
477
			;;
478
lm32-*-*)		targ_emul=elf32lm32
479
			targ_extra_emuls="elf32lm32fd"
480
			;;
481
m32c-*-elf)
482
			targ_emul=elf32m32c
483
			;;
484
m32r*le-*-elf*)		targ_emul=m32rlelf
485
			;;
486
m32r*-*-elf*)
487
			targ_emul=m32relf
488
			;;
489
m32r*le-*-linux-*)	targ_emul=m32rlelf_linux
490
			;;
491
m32r*-*-linux-*)	targ_emul=m32relf_linux
492
			;;
493
m68hc11-*-*|m6811-*-*)	targ_emul=m68hc11elf
494
			targ_extra_emuls="m68hc11elfb m68hc12elf m68hc12elfb"
495
			;;
496
m68hc12-*-*|m6812-*-*)	targ_emul=m68hc12elf
497
			targ_extra_emuls="m68hc12elfb m68hc11elf m68hc11elfb"
498
			;;
499
m68*-*-netbsd*)	targ_emul=m68kelfnbsd
500
			;;
501
m68*-*-haiku*)		targ_emul=m68kelf
502
			;;
503
m68*-*-*)		targ_emul=m68kelf
504
			;;
505
mcore-*-pe)		targ_emul=mcorepe ;
506
			targ_extra_ofiles="deffilep.o pe-dll.o"
507
			;;
508
mcore-*-elf)		targ_emul=elf32mcore
509
			;;
510
mep-*-elf)		targ_emul=elf32mep
511
			;;
512
metag-*-*)		targ_emul=elf32metag
513
			;;
514
microblazeel*-linux*)	targ_emul="elf32mbel_linux"
515
			targ_extra_emuls="elf32mb_linux"
516
			;;
517
microblaze*-linux*)	targ_emul="elf32mb_linux"
518
			targ_extra_emuls="elf32mbel_linux"
519
			;;
520
microblazeel*)		targ_emul=elf32microblazeel
521
			targ_extra_emuls=elf32microblaze
522
			;;
523
microblaze*)		targ_emul=elf32microblaze
524
			targ_extra_emuls=elf32microblazeel
525
			;;
526
mips*-sgi-irix5*)	targ_emul=elf32bsmip
527
			;;
528
mips*-sgi-irix6*)	targ_emul=elf32bmipn32
529
			targ_extra_emuls="elf32bsmip elf64bmip"
530
			targ_extra_libpath=$targ_extra_emuls
531
			;;
532
mips*el-*-haiku*)	targ_emul=elf_mipsel_haiku
533
			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
534
			;;
535
mips*el-*-netbsd*)	targ_emul=elf32ltsmip
536
			targ_extra_emuls="elf32btsmip elf64ltsmip elf64btsmip"
537
			;;
538
mips*-*-netbsd*)	targ_emul=elf32btsmip
539
			targ_extra_emuls="elf32ltsmip elf64btsmip elf64ltsmip"
540
			;;
541
mips64el-*-openbsd*)	targ_emul=elf64ltsmip
542
			targ_extra_emuls=elf64btsmip
543
			;;
544
mips64-*-openbsd*)	targ_emul=elf64btsmip
545
			targ_extra_emuls=elf64ltsmip
546
			;;
547
mips*vr4300el-*-elf*)	targ_emul=elf32l4300
548
			;;
549
mips*vr4300-*-elf*)	targ_emul=elf32b4300
550
			;;
551
mips*vr4100el-*-elf*)	targ_emul=elf32l4300
552
			;;
553
mips*vr4100-*-elf*)	targ_emul=elf32b4300
554
			;;
555
mips*vr5000el-*-elf*)	targ_emul=elf32l4300
556
			;;
557
mips*vr5000-*-elf*)	targ_emul=elf32b4300
558
			;;
559
mips*el-sde-elf* | mips*el-mti-elf* | mips*el-img-elf*)
560
			targ_emul=elf32ltsmip
561
			targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
562
			;;
563
mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
564
			targ_emul=elf32btsmip
565
			targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
566
			;;
567
mips64*el-ps2-elf*)	targ_emul=elf32lr5900n32
568
			targ_extra_emuls="elf32lr5900"
569
			targ_extra_libpath=$targ_extra_emuls
570
			;;
571
mips*el-ps2-elf*)	targ_emul=elf32lr5900
572
			targ_extra_emuls="elf32lr5900n32"
573
			targ_extra_libpath=$targ_extra_emuls
574
			;;
575
mips*el-*-elf*)		targ_emul=elf32elmip
576
			;;
577
mips*-*-elf* | mips*-*-rtems*)
578
			targ_emul=elf32ebmip
579
			;;
580
mips*el-*-vxworks*)	targ_emul=elf32elmipvxworks
581
			targ_extra_emuls="elf32ebmipvxworks"
582
			;;
583
mips*-*-vxworks*)	targ_emul=elf32ebmipvxworks
584
			targ_extra_emuls="elf32elmipvxworks"
585
			;;
586
mips*-*-windiss)	targ_emul=elf32mipswindiss
587
			;;
588
mips64*el-*-linux-gnuabi64)
589
			targ_emul=elf64ltsmip
590
			targ_extra_emuls="elf64btsmip elf32ltsmipn32 elf32btsmipn32 elf32ltsmip elf32btsmip"
591
			targ_extra_libpath=$targ_extra_emuls
592
			;;
593
mips64*el-*-linux-*)	targ_emul=elf32ltsmipn32
594
			targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
595
			targ_extra_libpath=$targ_extra_emuls
596
			;;
597
mips64*-*-linux-gnuabi64)
598
			targ_emul=elf64btsmip
599
			targ_extra_emuls="elf64ltsmip elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip"
600
			targ_extra_libpath=$targ_extra_emuls
601
			;;
602
mips64*-*-linux-*)	targ_emul=elf32btsmipn32
603
			targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
604
			targ_extra_libpath=$targ_extra_emuls
605
			;;
606
mips*el-*-linux-*)	targ_emul=elf32ltsmip
607
			targ_extra_emuls="elf32btsmip elf32ltsmipn32 elf64ltsmip elf32btsmipn32 elf64btsmip"
608
			targ_extra_libpath=$targ_extra_emuls
609
			;;
610
mips*-*-linux-*)	targ_emul=elf32btsmip
611
			targ_extra_emuls="elf32ltsmip elf32btsmipn32 elf64btsmip elf32ltsmipn32 elf64ltsmip"
612
			targ_extra_libpath=$targ_extra_emuls
613
			;;
614
mips64*el-*-freebsd* | mips64*el-*-kfreebsd*-gnu)
615
			targ_emul=elf32ltsmipn32_fbsd
616
			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
617
			targ_extra_libpath=$targ_extra_emuls
618
			;;
619
mips64*-*-freebsd* | mips64*-*-kfreebsd*-gnu)
620
			targ_emul=elf32btsmipn32_fbsd
621
			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmip_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
622
			targ_extra_libpath=$targ_extra_emuls
623
			;;
624
mips*el-*-freebsd* | mips*el-*-kfreebsd*-gnu)
625
			targ_emul=elf32ltsmip_fbsd
626
			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmipn32_fbsd elf32btsmip_fbsd elf32btsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
627
			targ_extra_libpath=$targ_extra_emuls
628
			;;
629
mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
630
			targ_emul=elf32btsmip_fbsd
631
			targ_extra_emuls="elf32ltsmip elf32btsmip elf32ltsmipn32 elf32btsmipn32 elf64ltsmip elf64btsmip elf32ltsmip_fbsd elf32btsmipn32_fbsd elf32ltsmipn32_fbsd elf64ltsmip_fbsd elf64btsmip_fbsd"
632
			targ_extra_libpath=$targ_extra_emuls
633
			;;
634
mips*-*-sysv4*)		targ_emul=elf32btsmip
635
			;;
636
mmix-*-*)		targ_emul=mmo
637
			targ_extra_emuls=elf64mmix
638
			;;
639
mn10200-*-*)		targ_emul=mn10200
640
			targ_extra_ofiles=ldelfgen.o
641
			;;
642
mn10300-*-*)		targ_emul=mn10300
643
			;;
644
moxie-*-moxiebox*)	targ_emul=moxiebox
645
			targ_extra_ofiles=ldelfgen.o
646
			;;
647
moxie-*-*)		targ_emul=elf32moxie
648
			;;
649
msp430-*-*)		targ_emul=msp430elf
650
			targ_extra_emuls="msp430X"
651
			targ_extra_ofiles=ldelfgen.o
652
			;;
653
mt-*elf)		targ_emul=elf32mt
654
			targ_extra_ofiles=ldelfgen.o
655
			;;
656
nds32*le-*-elf*)	targ_emul=nds32elf
657
			targ_extra_emuls="nds32elf16m nds32belf nds32belf16m"
658
			;;
659
nds32*be-*-elf*)	targ_emul=nds32belf
660
			targ_extra_emuls="nds32elf nds32elf16m nds32belf16m"
661
			;;
662
nds32*le-*-linux-gnu*)	targ_emul=nds32elf_linux
663
			;;
664
nds32*be-*-linux-gnu*)	targ_emul=nds32belf_linux
665
			;;
666
nios2*-*-linux*)	targ_emul=nios2linux
667
			;;
668
nios2*-*-*)		targ_emul=nios2elf
669
			;;
670
ns32k-pc532-mach* | ns32k-pc532-ux*)  targ_emul=pc532macha
671
			targ_extra_ofiles=
672
			;;
673
ns32k-*-*bsd* | ns32k-pc532-lites*) targ_emul=ns32knbsd
674
			targ_extra_ofiles=
675
			;;
676
or1k-*-elf | or1knd-*-elf | or1k-*-rtems* | or1knd-*-rtems*)
677
			targ_emul=elf32or1k
678
			;;
679
or1k-*-linux* | or1knd-*-linux*)	targ_emul=elf32or1k_linux
680
			;;
681
pdp11-*-*)		targ_emul=pdp11
682
			targ_extra_ofiles=
683
			;;
684
pjl*-*-*)		targ_emul=pjlelf
685
			targ_extra_emuls="elf_i386 elf_iamcu"
686
			;;
687
pj*-*-*)		targ_emul=pjelf
688
			targ_extra_ofiles=ldelfgen.o
689
			;;
690
powerpc-*-freebsd* | powerpc-*-kfreebsd*-gnu)
691
			targ_emul=elf32ppc_fbsd
692
			targ_extra_emuls="elf32ppc elf32ppcsim"
693
			targ_extra_libpath=elf32ppc;
694
			tdir_elf32ppcsim=`echo ${targ_alias} | sed -e 's/ppc/ppcsim/'`
695
			;;
696
powerpc64-*-freebsd*)
697
			targ_emul=elf64ppc_fbsd
698
			targ_extra_emuls="elf64ppc elf32ppc_fbsd elf32ppc"
699
			targ_extra_libpath="elf32ppc_fbsd elf32ppc"
700
			tdir_elf32ppc=`echo "${targ_alias}" | sed -e 's/64//'`
701
			tdir_elf32ppc_fbsd=$tdir_elf32ppc
702
			;;
703
powerpc64le-*-freebsd*)
704
			targ_emul=elf64lppc_fbsd
705
			targ_extra_emuls="elf64lppc"
706
			;;
707
powerpc-*-vxworks*)
708
			targ_emul=elf32ppcvxworks
709
			targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim"
710
			;;
711
powerpc*-*-elf* | powerpc*-*-eabi* | powerpc*-*-sysv* \
712
  | powerpc*-*-linux* | powerpc*-*-netbsd* | powerpc*-*-openbsd* \
713
  | powerpc*-*-rtems* \
714
  | powerpc*-*-solaris* | powerpc*-*-kaos* | powerpc*-*-vxworks*)
715
			case "${targ}" in
716
			powerpc64*)
717
			    targ_emul=elf64ppc
718
			    targ_extra_emuls="elf32ppc elf32ppclinux elf32ppcsim"
719
			    targ_extra_libpath="elf32ppc elf32ppclinux" ;;
720
			*linux*)
721
			    targ_emul=elf32ppclinux
722
			    targ_extra_emuls="elf32ppc elf32ppcsim"
723
			    targ_extra_libpath=elf32ppc
724
			    targ64_extra_emuls=elf64ppc
725
			    targ64_extra_libpath=elf64ppc ;;
726
			*)
727
			    targ_emul=elf32ppc
728
			    targ_extra_emuls="elf32ppclinux elf32ppcsim"
729
			    targ_extra_libpath=elf32ppclinux
730
			    targ64_extra_emuls=elf64ppc
731
			    targ64_extra_libpath=elf64ppc ;;
732
			esac
733
			td=tdir_elf32ppc
734
			td64=tdir_elf64ppc
735
			s=s/ppc/lppc/g
736
			case "${targ}" in
737
			powerpcle-* | powerpc64le-*)
738
			    for z in td td64 targ_emul targ_extra_emuls \
739
					 targ_extra_libpath targ64_extra_emuls \
740
					 targ64_extra_libpath
741
			    do
742
				eval ${z}=\"\`echo \$${z} \| sed -e $s\`\"
743
			    done
744
			    s=s/lppc/ppc/g ;;
745
			esac
746
			# Why oh why did we set tooldir based on target_alias
747
			# rather than on target?
748
			eval tdir_${targ_emul}="${targ_alias}"
749
			cpu=`echo "${targ_alias}" | sed -e 's/-.*//'`
750
			rest=`echo "${targ_alias}" | sed -e 's/^[^-]*//'`
751
			le=le
752
			case "${cpu}" in
753
			*little) le=little
754
			esac
755
			ta32=`echo "${cpu}" | sed -e s/64//`"${rest}"
756
			ta64=`echo "${cpu}" | sed -e 's/64//;s/$/64/;s/'${le}'64$/64'${le}'/;s/be64$/64be/'`"${rest}"
757
			eval test -n \"\$${td}\" || eval ${td}="${ta32}"
758
			eval test -n \"\$${td}linux\" || eval ${td}linux="${ta32}"
759
			eval test -n \"\$${td}sim\" || eval ${td}sim="${ta32}"
760
			eval test -n \"\$${td64}\" || eval ${td64}="${ta64}"
761
			# Now provide the other endian
762
			for z in targ_extra_emuls targ_extra_libpath
763
			do
764
			    eval ${z}=\"\$${z} \`echo ${targ_emul} \$${z} \| sed -e $s\`\"
765
			done
766
			for z in targ64_extra_emuls targ64_extra_libpath
767
			do
768
			    eval ${z}=\"\$${z} \`echo \$${z} \| sed -e $s\`\"
769
			done
770
			td=`echo "${td}" | sed -e $s`
771
			td64=`echo "${td64}" | sed -e $s`
772
			case "${targ}" in
773
			powerpcle-* | powerpc64le-*)
774
			    cpu=`echo "${cpu}" | sed -e s/${le}\$//` ;;
775
			*)
776
			    cpu=`echo "${cpu}" | sed -e s/be\$//`${le} ;;
777
			esac
778
			ta32=`echo "${cpu}" | sed -e s/64//`"${rest}"
779
			ta64=`echo "${cpu}" | sed -e 's/64//;s/$/64/;s/'${le}'64$/64'${le}/`"${rest}"
780
			eval test -n \"\$${td}\" || eval ${td}="${ta32}"
781
			eval test -n \"\$${td}linux\" || eval ${td}linux="${ta32}"
782
			eval test -n \"\$${td}sim\" || eval ${td}sim="${ta32}"
783
			eval test -n \"\$${td64}\" || eval ${td64}="${ta64}"
784
			;;
785
powerpc-*-nto*)		targ_emul=elf32ppcnto
786
			;;
787
powerpcle-*-nto*)	targ_emul=elf32lppcnto
788
			;;
789
powerpc-*-macos*)	targ_emul=ppcmacos
790
			targ_extra_ofiles=
791
			;;
792
powerpc-*-aix[5-9]*)	targ_emul=aix5ppc
793
			targ_extra_ofiles=
794
			;;
795
powerpc-*-aix*)		targ_emul=aixppc
796
			targ_extra_ofiles=
797
			;;
798
powerpc-*-beos*)	targ_emul=aixppc
799
			targ_extra_ofiles=
800
			;;
801
powerpc-*-haiku*)	targ_emul=elf32ppchaiku
802
			;;
803
powerpc-*-windiss*)	targ_emul=elf32ppcwindiss
804
			;;
805
pru*-*-*)		targ_emul=pruelf
806
			;;
807
riscv32be*-*-linux*)	targ_emul=elf32briscv
808
			targ_extra_emuls="elf32briscv_ilp32f elf32briscv_ilp32 elf64briscv elf64briscv_lp64f elf64briscv_lp64 elf32lriscv elf32lriscv_ilp32f elf32lriscv_ilp32 elf64lriscv elf64lriscv_lp64f elf64lriscv_lp64"
809
			targ_extra_libpath=$targ_extra_emuls
810
			;;
811
riscv32*-*-linux*)	targ_emul=elf32lriscv
812
			targ_extra_emuls="elf32lriscv_ilp32f elf32lriscv_ilp32 elf64lriscv elf64lriscv_lp64f elf64lriscv_lp64 elf32briscv elf32briscv_ilp32f elf32briscv_ilp32 elf64briscv elf64briscv_lp64f elf64briscv_lp64"
813
			targ_extra_libpath=$targ_extra_emuls
814
			;;
815
riscvbe-*-* | riscv32be*-*-*)
816
			targ_emul=elf32briscv
817
			targ_extra_emuls="elf64briscv elf32lriscv elf64lriscv"
818
			targ_extra_libpath=$targ_extra_emuls
819
			;;
820
riscv-*-* | riscv32*-*-*)
821
			targ_emul=elf32lriscv
822
			targ_extra_emuls="elf64lriscv elf32briscv elf64briscv"
823
			targ_extra_libpath=$targ_extra_emuls
824
			;;
825
riscv64be*-*-linux*)	targ_emul=elf64briscv
826
			targ_extra_emuls="elf64briscv_lp64f elf64briscv_lp64 elf32briscv elf32briscv_ilp32f elf32briscv_ilp32 elf64lriscv elf64lriscv_lp64f elf64lriscv_lp64 elf32lriscv elf32lriscv_ilp32f elf32lriscv_ilp32"
827
			targ_extra_libpath=$targ_extra_emuls
828
			;;
829
riscv64*-*-linux*)	targ_emul=elf64lriscv
830
			targ_extra_emuls="elf64lriscv_lp64f elf64lriscv_lp64 elf32lriscv elf32lriscv_ilp32f elf32lriscv_ilp32 elf64briscv elf64briscv_lp64f elf64briscv_lp64 elf32briscv elf32briscv_ilp32f elf32briscv_ilp32"
831
			targ_extra_libpath=$targ_extra_emuls
832
			;;
833
riscv64be*-*-*)		targ_emul=elf64briscv
834
			targ_extra_emuls="elf32briscv elf64lriscv elf32lriscv"
835
			targ_extra_libpath=$targ_extra_emuls
836
			;;
837
riscv64*-*-*)		targ_emul=elf64lriscv
838
			targ_extra_emuls="elf32lriscv elf64briscv elf32briscv"
839
			targ_extra_libpath=$targ_extra_emuls
840
			;;
841
rs6000-*-aix[5-9]*)	targ_emul=aix5rs6
842
			targ_extra_ofiles=
843
			;;
844
rs6000-*-aix*)		targ_emul=aixrs6
845
			targ_extra_ofiles=
846
			;;
847
rl78-*-*)		targ_emul=elf32rl78
848
			;;
849
rx-*-linux*)		targ_emul=elf32rx_linux
850
			;;
851
rx-*-*)			targ_emul=elf32rx
852
			;;
853
s12z-*-*)		targ_emul=m9s12zelf
854
			targ_extra_ofiles=ldelfgen.o
855
			;;
856
s390x-*-linux*)		targ_emul=elf64_s390
857
			targ_extra_emuls=elf_s390
858
			targ_extra_libpath=$targ_extra_emuls
859
			tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'`
860
			;;
861
s390x-*-tpf*)		targ_emul=elf64_s390
862
			tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'`
863
			;;
864
s390-*-linux*)		targ_emul=elf_s390
865
			targ64_extra_emuls=elf64_s390
866
			targ64_extra_libpath=elf64_s390
867
			tdir_elf64_s390=`echo ${targ_alias} | sed -e 's/s390/s390x/'`
868
			;;
869
score-*-elf)		targ_emul=score7_elf
870
			targ_extra_emuls=score3_elf
871
			;;
872
sh-*-linux*)		targ_emul=shlelf_linux
873
			targ_extra_emuls="shelf_linux shlelf_fd shelf_fd"
874
			targ_extra_libpath=shelf_linux
875
			;;
876
sh*eb-*-linux*)		targ_emul=shelf_linux
877
			targ_extra_emuls="shelf_fd"
878
			;;
879
sh*-*-linux*)		targ_emul=shlelf_linux
880
			targ_extra_emuls="shlelf_fd"
881
			;;
882
sh*l*-*-netbsd*)	targ_emul=shlelf_nbsd
883
			targ_extra_emuls=shelf_nbsd
884
			;;
885
sh*-*-netbsd*)	targ_emul=shelf_nbsd
886
			targ_extra_emuls=shlelf_nbsd
887
			;;
888
shle*-*-elf* | sh[1234]*le*-*-elf | shle*-*-kaos*)
889
			targ_emul=shlelf
890
			targ_extra_emuls="shelf shl sh"
891
			;;
892
sh-*-elf* | sh[1234]*-*-elf | sh-*-rtems* | sh-*-kaos*)
893
			targ_emul=shelf
894
			targ_extra_emuls="shlelf sh shl"
895
			;;
896
sh-*-uclinux* | sh[12]-*-uclinux*)
897
			targ_emul=shelf_uclinux
898
			targ_extra_emuls="shelf shlelf sh shl shelf_fd shlelf_fd"
899
			;;
900
sh-*-vxworks)		targ_emul=shelf_vxworks
901
			targ_extra_emuls=shlelf_vxworks
902
			;;
903
sh-*-nto*)		targ_emul=shelf_nto
904
			targ_extra_emuls=shlelf_nto
905
			;;
906
sh-*-pe)		targ_emul=shpe ;
907
			targ_extra_ofiles="deffilep.o pe-dll.o"
908
			;;
909
sh-*-*)			targ_emul=sh;
910
			targ_extra_emuls=shl
911
			targ_extra_ofiles=
912
			;;
913
sparc64-*-freebsd* | sparcv9-*-freebsd* | sparc64-*-kfreebsd*-gnu | sparcv9-*-kfreebsd*-gnu)
914
			targ_emul=elf64_sparc_fbsd
915
			targ_extra_emuls="elf64_sparc elf32_sparc"
916
			targ_extra_libpath=$targ_extra_emuls
917
			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
918
			;;
919
sparc64-*-linux-*)	targ_emul=elf64_sparc
920
			targ_extra_emuls="elf32_sparc"
921
			targ_extra_libpath=elf32_sparc
922
			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
923
			;;
924
sparc64-*-*bsd*)	targ_emul=elf64_sparc
925
			targ_extra_emuls="elf32_sparc"
926
			;;
927
sparc64-*-solaris2* | sparcv9-*-solaris2*)
928
			targ_emul=elf64_sparc_sol2
929
			targ_extra_emuls="elf64_sparc elf32_sparc_sol2 elf32_sparc"
930
			targ_extra_libpath=$targ_extra_emuls
931
			tdir_elf32_sparc=`echo ${targ_alias} | sed -e 's/64//'`
932
			;;
933
sparc64-*-haiku*)	targ_emul=elf64_sparc
934
			;;
935
sparc64-*-*)		targ_emul=elf64_sparc
936
			;;
937
sparc*-*-linux-*)	targ_emul=elf32_sparc
938
			targ_extra_emuls="elf64_sparc"
939
			targ_extra_libpath=elf64_sparc
940
			tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
941
			;;
942
sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
943
			targ_emul=elf32_sparc_sol2
944
			targ_extra_emuls=elf32_sparc
945
			;;
946
sparc-*-solaris2*)	targ_emul=elf32_sparc_sol2
947
			targ_extra_emuls="elf32_sparc elf64_sparc_sol2 elf64_sparc"
948
			targ_extra_libpath=$targ_extra_emuls
949
			tdir_elf64_sparc=`echo ${targ_alias} | sed -e 's/32//'`
950
			;;
951
sparc*-*-vxworks*)	targ_emul=elf32_sparc_vxworks
952
			;;
953
sparc*-*-*)		targ_emul=elf32_sparc
954
			;;
955
spu-*-elf*)		targ_emul=elf32_spu
956
			;;
957
tic30-*-*coff*)		targ_emul=tic30coff
958
			targ_extra_ofiles=
959
			;;
960
tic4x-*-* | c4x-*-*)	targ_emul=tic4xcoff
961
			targ_extra_emuls="tic3xcoff tic3xcoff_onchip"
962
			targ_extra_ofiles=
963
			;;
964
tic54x-*-* | c54x*-*-*)	targ_emul=tic54xcoff
965
			targ_extra_ofiles=
966
			;;
967
tic6x-*-elf)		targ_emul=elf32_tic6x_elf_le
968
			targ_extra_emuls="elf32_tic6x_elf_be elf32_tic6x_le elf32_tic6x_be"
969
			targ_extra_libpath=$targ_extra_emuls
970
			;;
971
tic6x-*-uclinux)	targ_emul=elf32_tic6x_linux_le
972
			targ_extra_emuls="elf32_tic6x_linux_be elf32_tic6x_le elf32_tic6x_be"
973
			targ_extra_libpath=$targ_extra_emuls
974
			;;
975
tilegx-*-*)		targ_emul=elf64tilegx
976
			targ_extra_emuls="elf64tilegx_be elf32tilegx elf32tilegx_be"
977
			targ_extra_libpath=$targ_extra_emuls
978
			;;
979
tilegxbe-*-*)		targ_emul=elf64tilegx_be
980
			targ_extra_emuls="elf64tilegx elf32tilegx elf32tilegx_be"
981
			targ_extra_libpath=$targ_extra_emuls
982
			;;
983
tilepro-*-*)		targ_emul=elf32tilepro
984
			;;
985
v850*-*-*)		targ_emul=v850_rh850
986
			targ_extra_emuls=v850
987
			;;
988
vax-*-netbsdaout*)	targ_emul=vaxnbsd
989
			targ_extra_emuls=elf32vax
990
			;;
991
vax-*-netbsd*)		targ_emul=elf32vax
992
			targ_extra_emuls=vaxnbsd
993
			;;
994
vax-*-linux-*)		targ_emul=elf32vax
995
			;;
996
visium-*-elf)		targ_emul=elf32visium
997
			;;
998
x86_64-*-rdos*)		targ_emul=elf64rdos
999
			;;
1000
x86_64-*-cloudabi*)	targ_emul=elf_x86_64_cloudabi
1001
			;;
1002
x86_64-*-haiku*)	targ_emul=elf_x86_64_haiku
1003
			targ_extra_emuls="elf_x86_64 elf_i386_haiku"
1004
			;;
1005
x86_64-*-linux-gnux32)	targ_emul=elf32_x86_64
1006
			targ_extra_emuls="elf_x86_64 elf_i386 elf_iamcu"
1007
			targ_extra_libpath="elf_i386 elf_iamcu elf_x86_64"
1008
			tdir_elf_iamcu=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'`
1009
			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/' -e 's/-linux-gnux32/-linux-gnu/'`
1010
			;;
1011
x86_64-*-linux-*)	targ_emul=elf_x86_64
1012
			targ_extra_emuls="elf32_x86_64 elf_i386 elf_iamcu"
1013
			targ_extra_libpath="elf_i386 elf32_x86_64"
1014
			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
1015
			;;
1016
x86_64-*-redox*)	targ_emul=elf_x86_64
1017
			targ_extra_emuls=elf_i386
1018
			;;
1019
x86_64-*-solaris2*)	targ_emul=elf_x86_64_sol2
1020
			targ_extra_emuls="elf_x86_64 elf_i386_sol2 elf_i386_ldso elf_i386 elf_iamcu"
1021
			targ_extra_libpath=$targ_extra_emuls
1022
			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
1023
			;;
1024
x86_64-*-netbsd* | x86_64-*-openbsd*)
1025
			targ_emul=elf_x86_64
1026
			targ_extra_emuls="elf_i386 elf_iamcu"
1027
			tdir_elf_iamcu=`echo ${targ_alias} | \
1028
			    sed -e 's/x86_64/i386/' -e 's/aout//'`
1029
			tdir_elf_i386=`echo ${targ_alias} | \
1030
			    sed -e 's/x86_64/i386/' -e 's/aout//'`
1031
			;;
1032
x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia* | x86_64-*-genode*)
1033
			targ_emul=elf_x86_64
1034
			targ_extra_emuls="elf_i386 elf_iamcu elf32_x86_64"
1035
			targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64"
1036
			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
1037
			;;
1038
# Pierre-Marie Baty -- added x86_64 QNX case
1039
x86_64-*-nto-qnx*)
1040
			targ_emul=elf_x86_64
1041
			targ_extra_emuls="elf_i386 elf_iamcu elf32_x86_64"
1042
			targ_extra_libpath="elf_i386 elf_iamcu elf32_x86_64"
1043
			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
1044
			;;
1045
x86_64-*-dragonfly*)	targ_emul=elf_x86_64
1046
			targ_extra_emuls="elf_i386 elf_iamcu"
1047
			;;
1048
x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
1049
			targ_emul=elf_x86_64_fbsd
1050
			targ_extra_emuls="elf_i386_fbsd elf_x86_64 elf_i386 elf_iamcu"
1051
			targ_extra_libpath="elf_i386_fbsd"
1052
			tdir_elf_i386_fbsd=`echo ${targ_alias} \
1053
			    | sed -e 's/x86_64/i386/'`
1054
			tdir_elf_iamcu=`echo ${targ_alias} \
1055
			    | sed -e 's/x86_64/i386/'`
1056
			tdir_elf_i386=`echo ${targ_alias} \
1057
			    | sed -e 's/x86_64/i386/'`
1058
			;;
1059
x86_64-*-pe | x86_64-*-pep) targ_emul=i386pep ;
1060
			targ_extra_emuls=i386pe ;
1061
			targ_extra_ofiles="deffilep.o pdb.o pep-dll-x86_64.o pe-dll.o"
1062
			;;
1063
x86_64-*-cygwin)	targ_emul=i386pep ;
1064
			targ_extra_emuls=i386pe
1065
			targ_extra_ofiles="deffilep.o pdb.o pep-dll.o pe-dll.o"
1066
			test "$targ" != "$host" && LIB_PATH='${tooldir}/lib/w32api'
1067
			;;
1068
x86_64-*-mingw*)	targ_emul=i386pep ;
1069
			targ_extra_emuls=i386pe
1070
			targ_extra_ofiles="deffilep.o pdb.o pep-dll.o pe-dll.o"
1071
			;;
1072
x86_64-*-gnu*)		targ_emul=elf_x86_64
1073
			targ_extra_emuls="elf32_x86_64 elf_iamcu elf_i386"
1074
			targ_extra_libpath="elf_i386 elf32_x86_64"
1075
			tdir_elf_i386=`echo ${targ_alias} | sed -e 's/x86_64/i386/'`
1076
			;;
1077
xgate-*-*)		targ_emul=xgateelf
1078
			targ_extra_ofiles=ldelfgen.o
1079
			;;
1080
xstormy16-*-*)		targ_emul=elf32xstormy16
1081
			;;
1082
xtensa*-*-*)		targ_emul=elf32xtensa
1083
			;;
1084
z80-*-elf*)		targ_emul=elf32z80
1085
			targ_extra_ofiles="ldelf.o ldelfgen.o"
1086
			;;
1087
z80-*-coff)		targ_emul=z80
1088
			targ_extra_ofiles=
1089
			;;
1090
z8k-*-coff)		targ_emul=z8002
1091
			targ_extra_emuls=z8001
1092
			targ_extra_ofiles=
1093
			;;
1094
loongarch32-*)		targ_emul=elf32loongarch
1095
			;;
1096
loongarch64-*)		targ_emul=elf64loongarch
1097
			;;
1098
*-*-ieee*)		targ_emul=vanilla
1099
			targ_extra_ofiles=
1100
			;;
1101
*)
1102
  echo 2>&1 "*** ld does not support target ${targ}"
1103
  echo 2>&1 "*** see ld/configure.tgt for supported targets"
1104
  exit 1
1105
 
1106
esac
1107
 
1108
NATIVE_LIB_DIRS='/usr/local/lib /lib /usr/lib'
1109
case "${target}" in
1110
 
1111
*-*-dragonfly*)
1112
  NATIVE_LIB_DIRS='/lib /usr/lib /usr/pkg/lib /usr/local/lib'
1113
  ;;
1114
 
1115
*-*-freebsd*)
1116
  NATIVE_LIB_DIRS='/lib /usr/lib /usr/local/lib'
1117
  ;;
1118
 
1119
hppa*64*-*-hpux11*)
1120
  NATIVE_LIB_DIRS=/usr/lib/pa20_64
1121
  ;;
1122
 
1123
i[3-7]86-*-sysv4*)
1124
  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
1125
  ;;
1126
 
1127
i[3-7]86-*-solaris*)
1128
  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
1129
  ;;
1130
 
1131
i[3-7]86-pc-interix*)
1132
  NATIVE_LIB_DIRS='/usr/local/lib $$INTERIX_ROOT/usr/lib /lib /usr/lib'
1133
  ;;
1134
 
1135
ia64-*-aix*)
1136
  NATIVE_LIB_DIRS='/usr/local/lib /usr/lib/ia64l64 /lib /usr/lib'
1137
  ;;
1138
 
1139
sparc*-*-solaris2*)
1140
  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
1141
  ;;
1142
 
1143
spu-*-elf*)
1144
  # This allows one to build a pair of PPU/SPU toolchains with common sysroot.
1145
  NATIVE_LIB_DIRS='/lib'
1146
  ;;
1147
 
1148
i[03-9x]86-*-cygwin* | x86_64-*-cygwin*)
1149
  NATIVE_LIB_DIRS='/usr/lib /usr/lib/w32api'
1150
  ;;
1151
 
1152
*-*-linux*)
1153
  ;;
1154
 
1155
*-*-netbsd*)
1156
  ;;
1157
 
1158
alpha*-*-*)
1159
  NATIVE_LIB_DIRS='/usr/local/lib /usr/ccs/lib /lib /usr/lib'
1160
  ;;
1161
 
1162
esac
1163
 
1164
case "${target}" in
1165
frv-*-* | hppa*-*-* | ia64-*-* | mips*-*-*)
1166
  # Don't enable -z relro by default since many relro tests fail on these
1167
  # targets:
1168
  # FAIL: strip -z relro (relro1)
1169
  # FAIL: strip -z relro -shared (relro1)
1170
  # FAIL: objcopy -z relro (relro1)
1171
  # FAIL: objcopy -z relro -shared (relro1)
1172
  # FAIL: objcopy -z relro (tdata1)
1173
  # FAIL: objcopy -shared -z relro (tdata1)
1174
  # FAIL: objcopy -z relro (tdata2)
1175
  # FAIL: objcopy -shared -z relro (tdata2)
1176
  # FAIL: objcopy -z relro (tdata3)
1177
  # FAIL: objcopy -shared -z relro (tdata3)
1178
  # FAIL: objcopy -shared -z relro (tbss1)
1179
  # FAIL: objcopy -shared -z relro (tbss2)
1180
  # FAIL: objcopy -shared -z relro (tbss3)
1181
  ;;
1182
*-*-linux*)
1183
  if test ${ac_default_ld_z_relro} = unset; then
1184
    ac_default_ld_z_relro=1
1185
  fi
1186
  ;;
1187
esac
1188
 
1189
# Enable -z separate-code and --warn-textrel by default for Linux/x86.
1190
case "${target}" in
1191
i[3-7]86-*-linux-* | x86_64-*-linux-*)
1192
  if test ${ac_default_ld_z_separate_code} = unset; then
1193
    ac_default_ld_z_separate_code=1
1194
  fi
1195
  if test ${ac_default_ld_textrel_check} = unset; then
1196
    ac_default_ld_textrel_check=yes
1197
  fi
1198
  ;;
1199
esac