1181834Sroberto# config.bfd
2181834Sroberto#
3181834Sroberto#   Copyright (C) 2012-2020 Free Software Foundation, Inc.
4181834Sroberto#
5181834Sroberto# This file is free software; you can redistribute it and/or modify
6181834Sroberto# it under the terms of the GNU General Public License as published by
7181834Sroberto# the Free Software Foundation; either version 3 of the License, or
8181834Sroberto# (at your option) any later version.
9181834Sroberto#
10181834Sroberto# This program is distributed in the hope that it will be useful,
11181834Sroberto# but WITHOUT ANY WARRANTY; without even the implied warranty of
12181834Sroberto# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13181834Sroberto# GNU General Public License for more details.
14181834Sroberto#
15181834Sroberto# You should have received a copy of the GNU General Public License
16181834Sroberto# along with this program; see the file COPYING3.  If not see
17181834Sroberto# <http://www.gnu.org/licenses/>.
18181834Sroberto#
19181834Sroberto# Convert a canonical host type into a BFD host type.
20181834Sroberto# Set shell variable targ to canonical target name, and run
21181834Sroberto# using ``. config.bfd''.
22181834Sroberto# Sets the following shell variables:
23181834Sroberto#  targ_defvec		Default vector for this target
24181834Sroberto#  targ_selvecs		Vectors to build for this target
25181834Sroberto#  targ64_selvecs	Vectors to build if --enable-64-bit-bfd is given
26181834Sroberto#			or if host is 64 bit.
27181834Sroberto#  targ_archs		Architectures for this target
28181834Sroberto#  targ_cflags		$(CFLAGS) for this target (FIXME: pretty bogus)
29181834Sroberto#  targ_underscore	Whether underscores are used: yes or no
30181834Sroberto
31181834Sroberto# Part of this file is processed by targmatch.sed to generate the
32181834Sroberto# targmatch.h file.  The #ifdef and #endif lines that appear below are
33181834Sroberto# copied directly into targmatch.h.
34181834Sroberto
35181834Sroberto# The binutils c++filt program wants to know whether underscores are
36181834Sroberto# stripped or not.  That is why we set targ_underscore.  c++filt uses
37181834Sroberto# this information to choose a default.  This information is
38181834Sroberto# duplicated in the symbol_leading_char field of the BFD target
39181834Sroberto# vector, but c++filt does not deal with object files and is not
40181834Sroberto# linked against libbfd.a.  It is not terribly important that c++filt
41181834Sroberto# get this right; it is just convenient.
42181834Sroberto
43181834Srobertotarg_defvec=
44181834Srobertotarg_selvecs=
45181834Srobertotarg64_selvecs=
46181834Srobertotarg_cflags=
47181834Srobertotarg_underscore=no
48181834Sroberto
49181834Sroberto# Catch obsolete configurations.
50181834Srobertocase $targ in
51181834Sroberto openrisc-*-* | or32-*-*)
52181834Sroberto    echo "*** Configuration $targ is obsolete." >&2
53181834Sroberto    echo "*** Use or1k-*-elf or or1k-*-linux as the target instead" >&2
54181834Sroberto    exit 1
55181834Sroberto    ;;
56181834Sroberto arm*-*-symbianelf* | \
57181834Sroberto ia64*-*-* | \
58181834Sroberto null)
59181834Sroberto    if test "x$enable_obsolete" != xyes; then
60181834Sroberto      echo "*** Configuration $targ is obsolete." >&2
61181834Sroberto      echo "*** Specify --enable-obsolete to build it anyway." >&2
62181834Sroberto      echo "*** Support will be REMOVED in the next major release of BINUTILS," >&2
63181834Sroberto      echo "*** unless a maintainer comes forward." >&2
64181834Sroberto      exit 1
65181834Sroberto    fi;;
66181834Srobertoesac
67181834Sroberto
68181834Srobertocase $targ in
69181834Sroberto *-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu | \
70181834Sroberto mips*-*-irix5* | mips*-*-irix6*)
71181834Sroberto    # Not obsolete
72181834Sroberto    ;;
73181834Sroberto *-adobe-* | \
74181834Sroberto *-go32-rtems* | \
75181834Sroberto *-sony-* | \
76181834Sroberto *-tandem-* | \
77181834Sroberto *-*-ieee* | \
78181834Sroberto *-*-netware* | \
79181834Sroberto *-*-rtemsaout* | \
80181834Sroberto *-*-rtemscoff* | \
81181834Sroberto a29k-* | \
82181834Sroberto arm*-*-aout | \
83181834Sroberto arm-*-coff | \
84181834Sroberto arm-*-netbsd* | \
85181834Sroberto arm-*-openbsd* | \
86181834Sroberto arm-*-oabi | \
87181834Sroberto arm-*-riscix* | \
88181834Sroberto arm-epoc-pe* | \
89181834Sroberto c30-*-*aout* | tic30-*-*aout* | \
90181834Sroberto cr16c-*-* | \
91181834Sroberto h8300*-*-coff | \
92181834Sroberto h8500*-*-coff | \
93181834Sroberto hppa*-*-rtems* | \
94181834Sroberto i[3-7]86-*-unixware* | \
95181834Sroberto i[3-7]86-*-dgux* | \
96181834Sroberto i[3-7]86-*-chorus* | \
97181834Sroberto i[3-7]86-*-sysv* | \
98181834Sroberto i[3-7]86-*-isc* | \
99181834Sroberto i[3-7]86-*-sco* | \
100181834Sroberto i[3-7]86-*-coff | \
101181834Sroberto i[3-7]86-*-aix* | \
102181834Sroberto i[3-7]86-sequent-bsd* | \
103181834Sroberto i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12] | \
104181834Sroberto i[3-7]86-*-netbsdaout* | i[3-7]86-*-netbsd* | \
105181834Sroberto i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3] | \
106181834Sroberto i[3-7]86-*-linux*aout* | \
107181834Sroberto i[3-7]86-*-mach* | i[3-7]86-*-osf1mk* | \
108181834Sroberto i[3-7]86-*-os9k | \
109181834Sroberto i[3-7]86-none-* | \
110181834Sroberto i[3-7]86-*-aout* | i[3-7]86*-*-vsta* | \
111181834Sroberto i370-* | \
112181834Sroberto i860-*-* | \
113181834Sroberto i960-*-* | \
114181834Sroberto m68*-*-*bsd* | \
115181834Sroberto m68*-*-aout* | \
116181834Sroberto m68*-*-coff* | \
117181834Sroberto m68*-*-hpux* | \
118181834Sroberto m68*-*-linux*aout* | \
119181834Sroberto m68*-*-lynxos* | \
120181834Sroberto m68*-*-os68k* | \
121181834Sroberto m68*-*-psos* | \
122181834Sroberto m68*-*-sunos* | \
123181834Sroberto m68*-*-sysv* | \
124181834Sroberto m68*-*-vsta* | \
125181834Sroberto m68*-*-vxworks* | \
126181834Sroberto m68*-apollo-* | \
127181834Sroberto m68*-apple-aux* | \
128181834Sroberto m68*-bull-sysv* | \
129181834Sroberto m68*-ericsson-* | \
130181834Sroberto m68*-motorola-sysv* | \
131181834Sroberto m68*-netx-* | \
132181834Sroberto m88*-*-* | \
133181834Sroberto maxq-*-coff | \
134181834Sroberto mips*-*-bsd* | \
135181834Sroberto mips*-*-ecoff* | \
136181834Sroberto mips*-*-lnews* | \
137181834Sroberto mips*-*-mach3* | \
138181834Sroberto mips*-*-pe* | \
139181834Sroberto mips*-*-riscos* | \
140181834Sroberto mips*-*-sysv* | \
141181834Sroberto mips*-big-* | \
142181834Sroberto mips*-dec-* | \
143181834Sroberto mips*-sgi-* | \
144181834Sroberto mips*el-*-rtems* | \
145181834Sroberto powerpc-*-lynxos* | powerpc-*-windiss* | \
146181834Sroberto powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin* | \
147181834Sroberto sh*-*-symbianelf* | sh5*-*-* | sh64*-*-* | \
148181834Sroberto sparc*-*-*aout* | \
149181834Sroberto sparc*-*-chorus* | \
150181834Sroberto sparc*-*-coff* | \
151181834Sroberto sparc-*-lynxos* | \
152181834Sroberto sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1] | \
153181834Sroberto tahoe-*-* | \
154181834Sroberto vax-*-bsd* | vax-*-ultrix* | vax-*-vms* | \
155181834Sroberto w65-*-* | \
156181834Sroberto we32k-*-* | \
157181834Sroberto xc16x-*-* | \
158181834Sroberto null)
159181834Sroberto    echo "*** Configuration $targ is obsolete." >&2
160181834Sroberto    echo "*** Support has been REMOVED." >&2
161181834Sroberto    exit 1
162181834Sroberto    ;;
163181834Srobertoesac
164181834Sroberto
165181834Srobertotarg_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
166181834Srobertocase "${targ_cpu}" in
167181834Srobertoaarch64*)	 targ_archs="bfd_aarch64_arch bfd_arm_arch";;
168181834Srobertoalpha*)		 targ_archs=bfd_alpha_arch ;;
169181834Srobertoam33_2.0*)	 targ_archs=bfd_mn10300_arch ;;
170181834Srobertoarc*)		 targ_archs=bfd_arc_arch ;;
171181834Srobertoarm*)		 targ_archs=bfd_arm_arch ;;
172181834Srobertobfin*)		 targ_archs=bfd_bfin_arch ;;
173181834Srobertoc30*)		 targ_archs=bfd_tic30_arch ;;
174181834Srobertoc4x*)		 targ_archs=bfd_tic4x_arch ;;
175181834Srobertoc54x*)		 targ_archs=bfd_tic54x_arch ;;
176181834Srobertocr16*)		 targ_archs=bfd_cr16_arch ;;
177181834Srobertocrisv32)	 targ_archs=bfd_cris_arch ;;
178181834Srobertocrx*)		 targ_archs=bfd_crx_arch ;;
179181834Srobertocsky*)		 targ_archs=bfd_csky_arch ;;
180181834Srobertodlx*)		 targ_archs=bfd_dlx_arch ;;
181181834Srobertofido*)		 targ_archs=bfd_m68k_arch ;;
182181834Srobertohppa*)		 targ_archs=bfd_hppa_arch ;;
183181834Srobertoi[3-7]86)	 targ_archs=bfd_i386_arch ;;
184181834Srobertoia16)		 targ_archs=bfd_i386_arch ;;
185181834Srobertolm32)	         targ_archs=bfd_lm32_arch ;;
186181834Srobertom5200|m5407)	 targ_archs=bfd_m68k_arch ;;
187181834Srobertom6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;;
188181834Srobertom6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;;
189181834Srobertom68*)		 targ_archs=bfd_m68k_arch ;;
190181834Srobertos12z*)         targ_archs=bfd_s12z_arch ;;
191181834Srobertomicroblaze*)	 targ_archs=bfd_microblaze_arch ;;
192181834Srobertomips*)		 targ_archs=bfd_mips_arch ;;
193181834Srobertonds32*)		 targ_archs=bfd_nds32_arch ;;
194181834Srobertonfp)		 targ_archs=bfd_nfp_arch ;;
195181834Srobertonios2*)          targ_archs=bfd_nios2_arch ;;
196181834Srobertoor1k*|or1knd*)	 targ_archs=bfd_or1k_arch ;;
197181834Srobertopdp11*)		 targ_archs=bfd_pdp11_arch ;;
198181834Srobertopj*)		 targ_archs="bfd_pj_arch bfd_i386_arch";;
199181834Srobertopowerpc*)	 targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
200181834Srobertopru*)		 targ_archs=bfd_pru_arch ;;
201181834Srobertoriscv*)		 targ_archs=bfd_riscv_arch ;;
202181834Srobertors6000)		 targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
203181834Srobertos390*)		 targ_archs=bfd_s390_arch ;;
204181834Srobertosh*)		 targ_archs=bfd_sh_arch ;;
205181834Srobertosparc*)		 targ_archs=bfd_sparc_arch ;;
206181834Srobertospu*)            targ_archs=bfd_spu_arch ;;
207181834Srobertotilegx*)	 targ_archs=bfd_tilegx_arch ;;
208181834Srobertotilepro*)	 targ_archs=bfd_tilepro_arch ;;
209181834Srobertov850*)		 targ_archs="bfd_v850_arch bfd_v850_rh850_arch" ;;
210181834Srobertovisium*)	 targ_archs=bfd_visium_arch ;;
211181834Srobertowasm32)		 targ_archs=bfd_wasm32_arch ;;
212181834Srobertox86_64*)	 targ_archs=bfd_i386_arch ;;
213181834Srobertoxtensa*)	 targ_archs=bfd_xtensa_arch ;;
214181834Srobertoxgate)		 targ_archs=bfd_xgate_arch ;;
215181834Srobertoz80*|r800|z180|gbz80|ez80*)	 targ_archs=bfd_z80_arch ;;
216181834Srobertoz8k*)		 targ_archs=bfd_z8k_arch ;;
217181834Sroberto*)		 targ_archs=bfd_${targ_cpu}_arch ;;
218181834Srobertoesac
219181834Sroberto
220181834Sroberto
221181834Sroberto# WHEN ADDING ENTRIES TO THIS MATRIX:
222181834Sroberto#  Make sure that the left side always has two dashes.  Otherwise you
223181834Sroberto#  can get spurious matches.  Even for unambiguous cases, do this as a
224181834Sroberto#  convention, else the table becomes a real mess to understand and maintain.
225181834Sroberto
226181834Srobertocase "${targ}" in
227181834Sroberto# START OF targmatch.h
228181834Sroberto#ifdef BFD64
229181834Sroberto  aarch64-*-darwin*)
230181834Sroberto    targ_defvec=aarch64_mach_o_vec
231181834Sroberto    targ_selvecs="arm_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec"
232181834Sroberto    targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
233181834Sroberto    want64=true
234181834Sroberto    ;;
235181834Sroberto  aarch64-*-elf | aarch64-*-rtems*)
236181834Sroberto    targ_defvec=aarch64_elf64_le_vec
237181834Sroberto    targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec"
238181834Sroberto    want64=true
239181834Sroberto    ;;
240181834Sroberto  aarch64_be-*-elf)
241181834Sroberto    targ_defvec=aarch64_elf64_be_vec
242181834Sroberto    targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec"
243181834Sroberto    want64=true
244181834Sroberto    ;;
245181834Sroberto  aarch64-*-freebsd*)
246181834Sroberto    targ_defvec=aarch64_elf64_le_vec
247181834Sroberto    targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
248181834Sroberto    want64=true
249181834Sroberto    ;;
250181834Sroberto  aarch64-*-fuchsia*)
251181834Sroberto    targ_defvec=aarch64_elf64_le_vec
252181834Sroberto    targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec"
253181834Sroberto    want64=true
254181834Sroberto    ;;
255181834Sroberto  aarch64-*-cloudabi*)
256181834Sroberto    targ_defvec=aarch64_elf64_le_cloudabi_vec
257181834Sroberto    targ_selvecs=aarch64_elf64_be_cloudabi_vec
258181834Sroberto    want64=true
259181834Sroberto    ;;
260181834Sroberto  aarch64-*-linux* | aarch64-*-netbsd*)
261181834Sroberto    targ_defvec=aarch64_elf64_le_vec
262181834Sroberto    targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec"
263181834Sroberto    want64=true
264181834Sroberto    ;;
265181834Sroberto  aarch64_be-*-linux* | aarch64_be-*-netbsd*)
266181834Sroberto    targ_defvec=aarch64_elf64_be_vec
267181834Sroberto    targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec"
268181834Sroberto    want64=true
269181834Sroberto    ;;
270181834Sroberto  alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
271181834Sroberto    targ_defvec=alpha_elf64_fbsd_vec
272181834Sroberto    targ_selvecs="alpha_elf64_vec alpha_ecoff_le_vec"
273181834Sroberto    want64=true
274181834Sroberto    # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
275181834Sroberto    case "${targ}" in
276181834Sroberto      alpha*-*-freebsd3* | alpha*-*-freebsd4 | alpha*-*-freebsd4.0*)
277181834Sroberto	targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;;
278181834Sroberto    esac
279181834Sroberto    ;;
280181834Sroberto  alpha*-*-netbsd* | alpha*-*-openbsd*)
281181834Sroberto    targ_defvec=alpha_elf64_vec
282181834Sroberto    targ_selvecs=alpha_ecoff_le_vec
283181834Sroberto    want64=true
284181834Sroberto    ;;
285181834Sroberto  alpha*-*-linux*ecoff*)
286181834Sroberto    targ_defvec=alpha_ecoff_le_vec
287181834Sroberto    targ_selvecs=alpha_elf64_vec
288181834Sroberto    want64=true
289181834Sroberto    ;;
290181834Sroberto  alpha*-*-linux-* | alpha*-*-elf*)
291181834Sroberto    targ_defvec=alpha_elf64_vec
292181834Sroberto    targ_selvecs=alpha_ecoff_le_vec
293181834Sroberto    want64=true
294181834Sroberto    ;;
295181834Sroberto  alpha*-*-*vms*)
296181834Sroberto    targ_defvec=alpha_vms_vec
297181834Sroberto    targ_selvecs=alpha_vms_lib_txt_vec
298181834Sroberto    want64=true
299181834Sroberto    ;;
300181834Sroberto  alpha*-*-*)
301181834Sroberto    targ_defvec=alpha_ecoff_le_vec
302181834Sroberto    want64=true
303181834Sroberto    ;;
304181834Sroberto  ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu)
305181834Sroberto    targ_defvec=ia64_elf64_le_vec
306181834Sroberto    targ_selvecs="ia64_elf64_be_vec ia64_pei_vec"
307181834Sroberto    want64=true
308181834Sroberto    ;;
309181834Sroberto  ia64*-*-hpux*)
310181834Sroberto    targ_defvec=ia64_elf32_hpux_be_vec
311181834Sroberto    targ_selvecs="ia64_elf64_hpux_be_vec"
312181834Sroberto    want64=true
313181834Sroberto    ;;
314181834Sroberto  ia64*-*-*vms*)
315181834Sroberto    targ_defvec=ia64_elf64_vms_vec
316181834Sroberto    targ_selvecs=alpha_vms_lib_txt_vec
317181834Sroberto    want64=true
318181834Sroberto    ;;
319181834Sroberto#endif /* BFD64 */
320181834Sroberto
321181834Sroberto  am33_2.0-*-linux*)
322181834Sroberto    targ_defvec=am33_elf32_linux_vec
323181834Sroberto    ;;
324181834Sroberto
325181834Sroberto  arc*eb-*-elf* | arc*eb-*-linux*)
326181834Sroberto    targ_defvec=arc_elf32_be_vec
327181834Sroberto    targ_selvecs=arc_elf32_le_vec
328181834Sroberto    ;;
329181834Sroberto
330181834Sroberto  arc*-*-elf* | arc*-*-linux*)
331181834Sroberto    targ_defvec=arc_elf32_le_vec
332181834Sroberto    targ_selvecs=arc_elf32_be_vec
333181834Sroberto    ;;
334181834Sroberto
335181834Sroberto  arm-*-darwin*)
336181834Sroberto    targ_defvec=arm_mach_o_vec
337181834Sroberto    targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec"
338181834Sroberto    targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch"
339181834Sroberto    ;;
340181834Sroberto  arm-*-fuchsia*)
341181834Sroberto    targ_defvec=arm_elf32_le_vec
342181834Sroberto    targ_selvecs="arm_elf32_be_vec"
343181834Sroberto    ;;
344181834Sroberto  arm-*-nacl*)
345181834Sroberto    targ_defvec=arm_elf32_nacl_le_vec
346181834Sroberto    targ_selvecs="arm_elf32_nacl_be_vec"
347181834Sroberto    ;;
348181834Sroberto  armeb-*-nacl*)
349181834Sroberto    targ_defvec=arm_elf32_nacl_be_vec
350181834Sroberto    targ_selvecs="arm_elf32_nacl_le_vec"
351181834Sroberto    ;;
352181834Sroberto  arm*eb-*-netbsdelf*)
353181834Sroberto    targ_defvec=arm_elf32_be_vec
354181834Sroberto    targ_selvecs="arm_elf32_le_vec"
355181834Sroberto    ;;
356181834Sroberto  arm*-*-netbsdelf*)
357181834Sroberto    targ_defvec=arm_elf32_le_vec
358181834Sroberto    targ_selvecs="arm_elf32_be_vec"
359181834Sroberto    ;;
360181834Sroberto  arm-*-nto* | nto*arm*)
361181834Sroberto    targ_defvec=arm_elf32_le_vec
362181834Sroberto    targ_selvecs=arm_elf32_be_vec
363181834Sroberto    targ_cflags=-D__QNXTARGET__
364181834Sroberto    ;;
365181834Sroberto  arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*)
366181834Sroberto    targ_defvec=arm_pe_wince_le_vec
367181834Sroberto    targ_selvecs="arm_pe_wince_le_vec arm_pe_wince_be_vec arm_pei_wince_le_vec arm_pei_wince_be_vec"
368181834Sroberto    targ_underscore=no
369181834Sroberto    targ_cflags="-DARM_WINCE -DARM_COFF_BUGFIX"
370181834Sroberto    ;;
371181834Sroberto  arm-*-pe*)
372181834Sroberto    targ_defvec=arm_pe_le_vec
373181834Sroberto    targ_selvecs="arm_pe_le_vec arm_pe_be_vec arm_pei_le_vec arm_pei_be_vec"
374181834Sroberto    targ_underscore=yes
375181834Sroberto    ;;
376181834Sroberto  arm-*-phoenix*)
377181834Sroberto    targ_defvec=arm_elf32_le_vec
378181834Sroberto    targ_selvecs=arm_elf32_be_vec
379181834Sroberto    ;;
380181834Sroberto  armeb-*-elf | arm*b-*-freebsd* | arm*b-*-linux-* | armeb-*-eabi*)
381181834Sroberto    targ_defvec=arm_elf32_be_vec
382181834Sroberto    targ_selvecs=arm_elf32_le_vec
383181834Sroberto    ;;
384181834Sroberto  arm-*-kaos*)
385181834Sroberto    targ_defvec=arm_elf32_le_vec
386181834Sroberto    targ_selvecs=arm_elf32_be_vec
387181834Sroberto    ;;
388181834Sroberto  arm-*-elf | arm*-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \
389181834Sroberto  arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \
390181834Sroberto  arm*-*-eabi* | arm-*-rtems* | arm*-*-uclinuxfdpiceabi)
391181834Sroberto    targ_defvec=arm_elf32_le_vec
392181834Sroberto    targ_selvecs="arm_elf32_fdpic_le_vec arm_elf32_be_vec arm_elf32_fdpic_be_vec"
393181834Sroberto    ;;
394181834Sroberto  arm*-*-vxworks | arm*-*-windiss)
395181834Sroberto    targ_defvec=arm_elf32_vxworks_le_vec
396181834Sroberto    targ_selvecs=arm_elf32_vxworks_be_vec
397181834Sroberto    ;;
398181834Sroberto  arm*-*-symbianelf*)
399181834Sroberto    targ_defvec=arm_elf32_symbian_le_vec
400181834Sroberto    targ_selvecs=arm_elf32_symbian_be_vec
401181834Sroberto    ;;
402181834Sroberto  arm9e-*-elf)
403181834Sroberto    targ_defvec=arm_elf32_le_vec
404181834Sroberto    targ_selvecs=arm_elf32_be_vec
405181834Sroberto    ;;
406181834Sroberto
407181834Sroberto  avr-*-*)
408181834Sroberto    targ_defvec=avr_elf32_vec
409181834Sroberto    ;;
410181834Sroberto
411181834Sroberto  bfin-*-*)
412181834Sroberto    targ_defvec=bfin_elf32_vec
413181834Sroberto    targ_selvecs=bfin_elf32_fdpic_vec
414181834Sroberto    targ_underscore=yes
415181834Sroberto    ;;
416181834Sroberto
417181834Sroberto  c30-*-*coff* | tic30-*-*coff*)
418181834Sroberto    targ_defvec=tic30_coff_vec
419181834Sroberto    ;;
420181834Sroberto
421181834Sroberto  c4x-*-*coff* | tic4x-*-*coff*)
422181834Sroberto    targ_defvec=tic4x_coff1_vec
423181834Sroberto    targ_selvecs="tic4x_coff1_beh_vec tic4x_coff2_vec tic4x_coff2_beh_vec tic4x_coff0_vec tic4x_coff0_beh_vec"
424181834Sroberto    targ_underscore=yes
425181834Sroberto    ;;
426181834Sroberto
427181834Sroberto  c54x*-*-*coff* | tic54x-*-*coff*)
428181834Sroberto    targ_defvec=tic54x_coff1_vec
429181834Sroberto    targ_selvecs="tic54x_coff1_beh_vec tic54x_coff2_vec tic54x_coff2_beh_vec tic54x_coff0_vec tic54x_coff0_beh_vec"
430181834Sroberto    targ_underscore=yes
431181834Sroberto    ;;
432181834Sroberto
433181834Sroberto  cr16-*-elf* | cr16*-*-uclinux*)
434181834Sroberto    targ_defvec=cr16_elf32_vec
435181834Sroberto    targ_underscore=yes
436181834Sroberto    ;;
437181834Sroberto
438181834Sroberto#ifdef BFD64
439181834Sroberto  cris-*-* | crisv32-*-*)
440181834Sroberto    targ_defvec=cris_aout_vec
441181834Sroberto    targ_selvecs="cris_elf32_us_vec cris_elf32_vec"
442181834Sroberto    case "${targ}" in
443181834Sroberto	*-*-linux*) ;;
444181834Sroberto	*) targ_underscore=yes ;;
445181834Sroberto    esac
446181834Sroberto    want64=true
447181834Sroberto    ;;
448181834Sroberto#endif
449181834Sroberto
450181834Sroberto  crx-*-elf*)
451181834Sroberto    targ_defvec=crx_elf32_vec
452181834Sroberto    targ_underscore=yes
453181834Sroberto    ;;
454181834Sroberto
455181834Sroberto  csky-*-elf* | csky-*-linux* )
456181834Sroberto    targ_defvec=csky_elf32_le_vec
457181834Sroberto    targ_selvecs="csky_elf32_be_vec csky_elf32_le_vec"
458181834Sroberto    ;;
459181834Sroberto
460181834Sroberto  d10v-*-*)
461181834Sroberto    targ_defvec=d10v_elf32_vec
462181834Sroberto    ;;
463181834Sroberto
464181834Sroberto  dlx-*-elf*)
465181834Sroberto    targ_defvec=dlx_elf32_be_vec
466181834Sroberto    targ_selvecs="dlx_elf32_be_vec"
467181834Sroberto    ;;
468181834Sroberto
469181834Sroberto  d30v-*-*)
470181834Sroberto    targ_defvec=d30v_elf32_vec
471181834Sroberto    ;;
472181834Sroberto
473181834Sroberto#ifdef BFD64
474181834Sroberto  bpf-*-none)
475181834Sroberto    targ_defvec=bpf_elf64_le_vec
476181834Sroberto    targ_selvecs=bpf_elf64_be_vec
477181834Sroberto    targ_underscore=yes
478181834Sroberto    ;;
479181834Sroberto#endif
480181834Sroberto
481181834Sroberto  epiphany-*-*)
482181834Sroberto    targ_defvec=epiphany_elf32_vec
483181834Sroberto    targ_underscore=yes
484181834Sroberto    ;;
485181834Sroberto
486181834Sroberto  fido-*-elf* )
487181834Sroberto    targ_defvec=m68k_elf32_vec
488181834Sroberto    ;;
489181834Sroberto
490181834Sroberto  fr30-*-elf)
491181834Sroberto    targ_defvec=fr30_elf32_vec
492181834Sroberto    ;;
493181834Sroberto
494181834Sroberto  frv-*-elf)
495181834Sroberto    targ_defvec=frv_elf32_vec
496181834Sroberto    targ_selvecs=frv_elf32_fdpic_vec
497181834Sroberto    ;;
498181834Sroberto
499181834Sroberto  frv-*-*linux*)
500181834Sroberto    targ_defvec=frv_elf32_fdpic_vec
501181834Sroberto    targ_selvecs=frv_elf32_vec
502181834Sroberto    ;;
503181834Sroberto
504181834Sroberto  moxie-*-elf | moxie-*-rtems* | moxie-*-uclinux)
505181834Sroberto    targ_defvec=moxie_elf32_be_vec
506181834Sroberto    targ_selvecs=moxie_elf32_le_vec
507181834Sroberto    ;;
508181834Sroberto
509181834Sroberto  moxie-*-moxiebox*)
510181834Sroberto    targ_defvec=moxie_elf32_le_vec
511181834Sroberto    ;;
512181834Sroberto
513181834Sroberto  h8300*-*-elf | h8300*-*-rtems*)
514181834Sroberto    targ_defvec=h8300_elf32_vec
515181834Sroberto    targ_underscore=yes
516181834Sroberto    ;;
517181834Sroberto
518181834Sroberto  h8300*-*-linux*)
519181834Sroberto    targ_defvec=h8300_elf32_linux_vec
520181834Sroberto    ;;
521181834Sroberto
522181834Sroberto#ifdef BFD64
523181834Sroberto  hppa*64*-*-linux-*)
524181834Sroberto    targ_defvec=hppa_elf64_linux_vec
525181834Sroberto    targ_selvecs=hppa_elf64_vec
526181834Sroberto    want64=true
527181834Sroberto    ;;
528181834Sroberto  hppa*64*-*-hpux11*)
529181834Sroberto    targ_defvec=hppa_elf64_vec
530181834Sroberto    targ_selvecs=hppa_elf64_linux_vec
531181834Sroberto    targ_cflags=-DHPUX_LARGE_AR_IDS
532181834Sroberto    want64=true
533181834Sroberto    ;;
534181834Sroberto#endif
535181834Sroberto
536181834Sroberto  hppa*-*-linux-*)
537181834Sroberto    targ_defvec=hppa_elf32_linux_vec
538181834Sroberto    targ_selvecs=hppa_elf32_vec
539181834Sroberto    ;;
540181834Sroberto  hppa*-*-netbsd*)
541181834Sroberto    targ_defvec=hppa_elf32_nbsd_vec
542181834Sroberto    targ_selvecs="hppa_elf32_vec hppa_elf32_linux_vec"
543181834Sroberto    ;;
544181834Sroberto  hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-openbsd*)
545181834Sroberto    targ_defvec=hppa_elf32_vec
546181834Sroberto    targ_selvecs=hppa_elf32_linux_vec
547181834Sroberto    ;;
548181834Sroberto
549181834Sroberto  hppa*-*-bsd*)
550181834Sroberto    targ_defvec=hppa_som_vec
551181834Sroberto    targ_selvecs=hppa_elf32_vec
552181834Sroberto    ;;
553181834Sroberto  hppa*-*-hpux* | hppa*-*-hiux* | hppa*-*-mpeix*)
554181834Sroberto    targ_defvec=hppa_som_vec
555181834Sroberto    ;;
556181834Sroberto  hppa*-*-osf*)
557181834Sroberto    targ_defvec=hppa_som_vec
558181834Sroberto    targ_selvecs=hppa_elf32_vec
559181834Sroberto    ;;
560181834Sroberto
561181834Sroberto  i[3-7]86-*-elf* | i[3-7]86-*-rtems*)
562181834Sroberto    targ_defvec=i386_elf32_vec
563181834Sroberto    targ_selvecs="iamcu_elf32_vec i386_coff_vec"
564181834Sroberto    ;;
565181834Sroberto  i[3-7]86-*-solaris2*)
566181834Sroberto    targ_defvec=i386_elf32_sol2_vec
567181834Sroberto    targ_selvecs="iamcu_elf32_vec i386_coff_vec i386_pei_vec"
568181834Sroberto    targ64_selvecs="x86_64_elf64_sol2_vec l1om_elf64_vec k1om_elf64_vec x86_64_pei_vec"
569181834Sroberto    want64=true
570181834Sroberto    ;;
571181834Sroberto#ifdef BFD64
572181834Sroberto  x86_64-*-solaris2*)
573181834Sroberto    targ_defvec=i386_elf32_sol2_vec
574181834Sroberto    targ_selvecs="x86_64_elf64_sol2_vec l1om_elf64_vec k1om_elf64_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pei_vec"
575181834Sroberto    want64=true
576181834Sroberto    ;;
577181834Sroberto#endif
578181834Sroberto  i[3-7]86-*-nto*)
579181834Sroberto    targ_defvec=i386_elf32_vec
580181834Sroberto    targ_selvecs="iamcu_elf32_vec i386_coff_vec"
581181834Sroberto    ;;
582181834Sroberto  i[3-7]86-*-aros*)
583181834Sroberto    targ_defvec=i386_elf32_vec
584181834Sroberto    targ_selvecs=iamcu_elf32_vec
585181834Sroberto    ;;
586181834Sroberto  i[3-7]86-*-dicos*)
587181834Sroberto    targ_defvec=i386_elf32_vec
588181834Sroberto    targ_selvecs=iamcu_elf32_vec
589181834Sroberto    targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec"
590181834Sroberto    ;;
591181834Sroberto  *-*-msdosdjgpp* | *-*-go32* )
592181834Sroberto    targ_defvec=i386_coff_go32_vec
593181834Sroberto    targ_selvecs="i386_coff_go32stubbed_vec i386_aout_vec"
594181834Sroberto    ;;
595181834Sroberto  i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*)
596181834Sroberto    targ_defvec=i386_mach_o_vec
597181834Sroberto    targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
598181834Sroberto    targ64_selvecs=x86_64_mach_o_vec
599181834Sroberto    targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch"
600181834Sroberto    ;;
601181834Sroberto  i[3-7]86-*-bsd*)
602181834Sroberto    targ_defvec=i386_aout_bsd_vec
603181834Sroberto    targ_underscore=yes
604181834Sroberto    ;;
605181834Sroberto  i[3-7]86-*-dragonfly*)
606181834Sroberto    targ_defvec=i386_elf32_vec
607181834Sroberto    targ_selvecs=iamcu_elf32_vec
608181834Sroberto    targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec"
609181834Sroberto    ;;
610181834Sroberto  i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu)
611181834Sroberto    targ_defvec=i386_elf32_fbsd_vec
612181834Sroberto    targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_pei_vec i386_coff_vec"
613181834Sroberto    targ64_selvecs="x86_64_elf64_fbsd_vec x86_64_elf64_vec x86_64_pei_vec l1om_elf64_vec l1om_elf64_fbsd_vec k1om_elf64_vec k1om_elf64_fbsd_vec"
614181834Sroberto    # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling.
615181834Sroberto    case "${targ}" in
616181834Sroberto      i[3-7]86-*-freebsd3* | i[3-7]86-*-freebsd4 | i[3-7]86-*-freebsd4.0*)
617181834Sroberto	targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;;
618181834Sroberto    esac
619181834Sroberto    ;;
620181834Sroberto  i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu)
621181834Sroberto    targ_defvec=i386_elf32_vec
622181834Sroberto    targ_selvecs="iamcu_elf32_vec"
623181834Sroberto    targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec"
624181834Sroberto    ;;
625181834Sroberto  i[3-7]86-*-netbsdpe*)
626181834Sroberto    targ_defvec=i386_pe_vec
627181834Sroberto    targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec"
628181834Sroberto    ;;
629181834Sroberto  i[3-7]86-*-openbsd*)
630181834Sroberto    targ_defvec=i386_elf32_vec
631181834Sroberto    targ_selvecs="iamcu_elf32_vec"
632181834Sroberto    ;;
633181834Sroberto  i[3-7]86-*-linux-*)
634181834Sroberto    targ_defvec=i386_elf32_vec
635181834Sroberto    targ_selvecs="iamcu_elf32_vec i386_pei_vec"
636181834Sroberto    targ64_selvecs="x86_64_elf64_vec x86_64_elf32_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec"
637181834Sroberto    ;;
638181834Sroberto  i[3-7]86-*-redox*)
639181834Sroberto    targ_defvec=i386_elf32_vec
640181834Sroberto    targ_selvecs=
641181834Sroberto    targ64_selvecs=x86_64_elf64_vec
642181834Sroberto    ;;
643181834Sroberto#ifdef BFD64
644181834Sroberto  x86_64-*-cloudabi*)
645181834Sroberto    targ_defvec=x86_64_elf64_cloudabi_vec
646181834Sroberto    want64=true
647181834Sroberto    ;;
648181834Sroberto  x86_64-*-darwin*)
649181834Sroberto    targ_defvec=x86_64_mach_o_vec
650181834Sroberto    targ_selvecs="i386_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
651181834Sroberto    targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch"
652181834Sroberto    want64=true
653181834Sroberto    ;;
654181834Sroberto  x86_64-*-dicos*)
655181834Sroberto    targ_defvec=x86_64_elf64_vec
656181834Sroberto    targ_selvecs="i386_elf32_vec iamcu_elf32_vec l1om_elf64_vec k1om_elf64_vec"
657181834Sroberto    want64=true
658181834Sroberto    ;;
659181834Sroberto  x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia)
660181834Sroberto    targ_defvec=x86_64_elf64_vec
661181834Sroberto    targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec l1om_elf64_vec k1om_elf64_vec"
662181834Sroberto    case "${targ}" in
663181834Sroberto      x86_64-*-rtems*)
664181834Sroberto    targ_selvecs="${targ_selvecs} x86_64_pei_vec"
665181834Sroberto    esac
666181834Sroberto    want64=true
667181834Sroberto    ;;
668181834Sroberto  x86_64-*-dragonfly*)
669181834Sroberto    targ_defvec=x86_64_elf64_vec
670181834Sroberto    targ_selvecs="i386_elf32_vec iamcu_elf32_vec l1om_elf64_vec k1om_elf64_vec"
671181834Sroberto    want64=true
672181834Sroberto    ;;
673181834Sroberto  x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu)
674181834Sroberto    targ_defvec=x86_64_elf64_fbsd_vec
675181834Sroberto    targ_selvecs="i386_elf32_fbsd_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pei_vec i386_elf32_vec x86_64_elf64_vec l1om_elf64_vec l1om_elf64_fbsd_vec k1om_elf64_vec k1om_elf64_fbsd_vec"
676181834Sroberto    want64=true
677181834Sroberto    ;;
678181834Sroberto  x86_64-*-netbsd* | x86_64-*-openbsd*)
679181834Sroberto    targ_defvec=x86_64_elf64_vec
680181834Sroberto    targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec"
681181834Sroberto    want64=true
682181834Sroberto    ;;
683181834Sroberto  x86_64-*-linux-*)
684181834Sroberto    targ_defvec=x86_64_elf64_vec
685181834Sroberto    targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec i386_pei_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec"
686181834Sroberto    want64=true
687181834Sroberto    ;;
688181834Sroberto  x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin)
689181834Sroberto    targ_defvec=x86_64_pe_vec
690181834Sroberto    targ_selvecs="x86_64_pe_vec x86_64_pei_vec x86_64_pe_big_vec x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec"
691181834Sroberto    want64=true
692181834Sroberto    targ_underscore=no
693181834Sroberto    ;;
694181834Sroberto  x86_64-*-rdos*)
695181834Sroberto    targ_defvec=x86_64_elf64_vec
696181834Sroberto    want64=true
697181834Sroberto    ;;
698181834Sroberto  x86_64-*-redox*)
699181834Sroberto    targ_defvec=x86_64_elf64_vec
700181834Sroberto    targ_selvecs=i386_elf32_vec
701181834Sroberto    want64=true
702181834Sroberto    ;;
703181834Sroberto#endif
704181834Sroberto  i[3-7]86-*-lynxos*)
705181834Sroberto    targ_defvec=i386_elf32_vec
706181834Sroberto    targ_selvecs="iamcu_elf32_vec i386_coff_lynx_vec i386_aout_lynx_vec"
707181834Sroberto    ;;
708181834Sroberto  i[3-7]86-*-gnu*)
709181834Sroberto    targ_defvec=i386_elf32_vec
710181834Sroberto    targ_selvecs=iamcu_elf32_vec
711181834Sroberto    ;;
712181834Sroberto  i[3-7]86-*-msdos*)
713181834Sroberto    targ_defvec=i386_aout_vec
714181834Sroberto    targ_selvecs=i386_msdos_vec
715181834Sroberto    ;;
716181834Sroberto  i[3-7]86-*-moss*)
717181834Sroberto    targ_defvec=i386_elf32_vec
718181834Sroberto    targ_selvecs="iamcu_elf32_vec i386_msdos_vec i386_aout_vec"
719181834Sroberto    ;;
720181834Sroberto  i[3-7]86-*-beospe*)
721181834Sroberto    targ_defvec=i386_pe_vec
722181834Sroberto    targ_selvecs="i386_pe_vec i386_pei_vec"
723181834Sroberto    ;;
724181834Sroberto  i[3-7]86-*-beoself* | i[3-7]86-*-beos*)
725181834Sroberto    targ_defvec=i386_elf32_vec
726181834Sroberto    targ_selvecs="iamcu_elf32_vec i386_pe_vec i386_pei_vec"
727181834Sroberto    ;;
728181834Sroberto  i[3-7]86-*-interix*)
729181834Sroberto    targ_defvec=i386_pei_vec
730181834Sroberto    targ_selvecs="i386_pe_vec"
731181834Sroberto    # FIXME: This should eventually be checked at runtime.
732181834Sroberto    targ_cflags=-DSTRICT_PE_FORMAT
733181834Sroberto    ;;
734181834Sroberto  i[3-7]86-*-rdos*)
735181834Sroberto    targ_defvec=i386_elf32_vec
736181834Sroberto    targ_selvecs="iamcu_elf32_vec i386_coff_vec"
737181834Sroberto    ;;
738181834Sroberto  i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe)
739181834Sroberto    targ_defvec=i386_pe_vec
740181834Sroberto    targ_selvecs="i386_pe_vec i386_pe_big_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec"
741181834Sroberto    targ_underscore=yes
742181834Sroberto    ;;
743181834Sroberto  i[3-7]86-*-vxworks*)
744181834Sroberto    targ_defvec=i386_elf32_vxworks_vec
745181834Sroberto    targ_underscore=yes
746181834Sroberto    ;;
747181834Sroberto
748181834Sroberto  ia16-*-elf)
749181834Sroberto    targ_defvec=i386_elf32_vec
750181834Sroberto    targ_selvecs="i386_msdos_vec i386_aout_vec"
751181834Sroberto    ;;
752181834Sroberto
753181834Sroberto  ip2k-*-elf)
754181834Sroberto    targ_defvec=ip2k_elf32_vec
755181834Sroberto    targ_underscore=yes
756181834Sroberto    ;;
757181834Sroberto
758181834Sroberto  iq2000-*-elf)
759181834Sroberto    targ_defvec=iq2000_elf32_vec
760181834Sroberto    ;;
761181834Sroberto
762181834Sroberto  lm32-*-elf | lm32-*-rtems*)
763181834Sroberto    targ_defvec=lm32_elf32_vec
764181834Sroberto    targ_selvecs=lm32_elf32_fdpic_vec
765181834Sroberto    ;;
766181834Sroberto
767181834Sroberto  lm32-*-*linux*)
768181834Sroberto    targ_defvec=lm32_elf32_fdpic_vec
769181834Sroberto    targ_selvecs=lm32_elf32_vec
770181834Sroberto    ;;
771181834Sroberto
772181834Sroberto  m32c-*-elf | m32c-*-rtems*)
773181834Sroberto    targ_defvec=m32c_elf32_vec
774181834Sroberto    targ_underscore=yes
775181834Sroberto    ;;
776181834Sroberto
777181834Sroberto  m32r*le-*-linux*)
778181834Sroberto    targ_defvec=m32r_elf32_linux_le_vec
779181834Sroberto    targ_selvecs="m32r_elf32_linux_vec  m32r_elf32_linux_le_vec"
780181834Sroberto    ;;
781181834Sroberto  m32r*-*-linux*)
782181834Sroberto    targ_defvec=m32r_elf32_linux_vec
783181834Sroberto    targ_selvecs="m32r_elf32_linux_vec  m32r_elf32_linux_le_vec"
784181834Sroberto    ;;
785181834Sroberto  m32r*le-*-*)
786181834Sroberto    targ_defvec=m32r_elf32_le_vec
787181834Sroberto    targ_selvecs="m32r_elf32_vec m32r_elf32_le_vec"
788181834Sroberto    ;;
789181834Sroberto  m32r-*-*)
790181834Sroberto    targ_defvec=m32r_elf32_vec
791181834Sroberto    ;;
792181834Sroberto
793181834Sroberto  m68hc11-*-* | m6811-*-*)
794181834Sroberto    targ_defvec=m68hc11_elf32_vec
795181834Sroberto    targ_selvecs="m68hc11_elf32_vec m68hc12_elf32_vec"
796181834Sroberto    ;;
797181834Sroberto  m68hc12-*-* | m6812-*-*)
798181834Sroberto    targ_defvec=m68hc12_elf32_vec
799181834Sroberto    targ_selvecs="m68hc11_elf32_vec m68hc12_elf32_vec"
800181834Sroberto    ;;
801181834Sroberto
802181834Sroberto  m68*-*-*)
803181834Sroberto    targ_defvec=m68k_elf32_vec
804181834Sroberto    ;;
805181834Sroberto  m68*-*-netbsdelf* | m5407-*-netbsdelf*)
806181834Sroberto    targ_defvec=m68k_elf32_vec
807181834Sroberto    targ_selvecs="m68k_aout_nbsd_vec m68k_aout_4knbsd_vec m68k_aout_hp300bsd_vec sparc_aout_sunos_be_vec"
808181834Sroberto    ;;
809181834Sroberto
810181834Sroberto  s12z-*-*)
811181834Sroberto    targ_defvec=s12z_elf32_vec
812181834Sroberto    ;;
813181834Sroberto  mcore-*-elf)
814181834Sroberto    targ_defvec=mcore_elf32_be_vec
815181834Sroberto    targ_selvecs="mcore_elf32_be_vec mcore_elf32_le_vec"
816181834Sroberto    ;;
817181834Sroberto  mcore-*-pe)
818181834Sroberto    targ_defvec=mcore_pe_be_vec
819181834Sroberto    targ_selvecs="mcore_pe_be_vec mcore_pe_le_vec mcore_pei_be_vec mcore_pei_le_vec"
820181834Sroberto    ;;
821181834Sroberto
822181834Sroberto  mep-*-elf)
823181834Sroberto    targ_defvec=mep_elf32_vec
824181834Sroberto    targ_selvecs=mep_elf32_le_vec
825181834Sroberto    ;;
826181834Sroberto
827181834Sroberto  metag-*-*)
828181834Sroberto    targ_defvec=metag_elf32_vec
829181834Sroberto    targ_underscore=yes
830181834Sroberto    ;;
831181834Sroberto
832181834Sroberto  microblazeel*-*)
833181834Sroberto    targ_defvec=microblaze_elf32_le_vec
834181834Sroberto    targ_selvecs=microblaze_elf32_vec
835181834Sroberto    ;;
836181834Sroberto
837181834Sroberto  microblaze*-*)
838181834Sroberto    targ_defvec=microblaze_elf32_vec
839181834Sroberto    targ_selvecs=microblaze_elf32_le_vec
840181834Sroberto    ;;
841181834Sroberto
842181834Sroberto  mips*-big-*)
843181834Sroberto    targ_defvec=mips_ecoff_be_vec
844181834Sroberto    targ_selvecs=mips_ecoff_le_vec
845181834Sroberto    ;;
846181834Sroberto
847181834Sroberto  mips*-dec-* | mips*el-*-ecoff*)
848181834Sroberto    targ_defvec=mips_ecoff_le_vec
849181834Sroberto    targ_selvecs=mips_ecoff_be_vec
850181834Sroberto    ;;
851181834Sroberto  mips*-*-ecoff*)
852181834Sroberto    targ_defvec=mips_ecoff_be_vec
853181834Sroberto    targ_selvecs=mips_ecoff_le_vec
854181834Sroberto    ;;
855181834Sroberto#ifdef BFD64
856181834Sroberto  mips64*el-*-netbsd*)
857181834Sroberto    targ_defvec=mips_elf32_ntrad_le_vec
858181834Sroberto    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
859181834Sroberto    ;;
860181834Sroberto  mips64*-*-netbsd*)
861181834Sroberto    targ_defvec=mips_elf32_ntrad_be_vec
862181834Sroberto    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
863181834Sroberto    ;;
864181834Sroberto  mips*el-*-netbsd*)
865181834Sroberto    targ_defvec=mips_elf32_trad_le_vec
866181834Sroberto    targ_selvecs="mips_elf32_trad_be_vec mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_le_vec mips_ecoff_be_vec"
867181834Sroberto    ;;
868181834Sroberto  mips*-*-netbsd*)
869181834Sroberto    targ_defvec=mips_elf32_trad_be_vec
870181834Sroberto    targ_selvecs="mips_elf32_trad_le_vec mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec mips_ecoff_be_vec mips_ecoff_le_vec"
871181834Sroberto    ;;
872181834Sroberto  mips*-*-irix6*)
873181834Sroberto    targ_defvec=mips_elf32_n_be_vec
874181834Sroberto    targ_selvecs="mips_elf32_n_le_vec mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
875181834Sroberto    ;;
876181834Sroberto  mips64*-ps2-elf*)
877181834Sroberto    targ_defvec=mips_elf32_n_le_vec
878181834Sroberto    targ_selvecs="mips_elf32_n_le_vec mips_elf32_n_be_vec mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
879181834Sroberto    ;;
880181834Sroberto  mips*-ps2-elf*)
881181834Sroberto    targ_defvec=mips_elf32_le_vec
882181834Sroberto    targ_selvecs="mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
883181834Sroberto    ;;
884181834Sroberto  mips*-*-irix5*)
885181834Sroberto    targ_defvec=mips_elf32_be_vec
886181834Sroberto    targ_selvecs="mips_elf32_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
887181834Sroberto    ;;
888181834Sroberto  mips*el-*-vxworks*)
889181834Sroberto    targ_defvec=mips_elf32_vxworks_le_vec
890181834Sroberto    targ_selvecs="mips_elf32_le_vec mips_elf32_vxworks_be_vec mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
891181834Sroberto    ;;
892181834Sroberto  mips*-*-vxworks*)
893181834Sroberto    targ_defvec=mips_elf32_vxworks_be_vec
894181834Sroberto    targ_selvecs="mips_elf32_be_vec mips_elf32_vxworks_le_vec mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
895181834Sroberto    ;;
896181834Sroberto  mips*el-sde-elf*)
897181834Sroberto    targ_defvec=mips_elf32_trad_le_vec
898181834Sroberto    targ_selvecs="mips_elf32_trad_be_vec mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
899181834Sroberto    ;;
900181834Sroberto  mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*)
901181834Sroberto    targ_defvec=mips_elf32_trad_be_vec
902181834Sroberto    targ_selvecs="mips_elf32_trad_le_vec mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
903181834Sroberto    ;;
904181834Sroberto  mips*el-*-elf* | mips*-*-chorus*)
905181834Sroberto    targ_defvec=mips_elf32_le_vec
906181834Sroberto    targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec"
907181834Sroberto    ;;
908181834Sroberto  mips*-*-elf* | mips*-*-rtems* | mips*-*-windiss | mips*-*-none)
909181834Sroberto    targ_defvec=mips_elf32_be_vec
910181834Sroberto    targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec"
911181834Sroberto    ;;
912181834Sroberto  mips64*el-*-netbsd*)
913181834Sroberto    targ_defvec=mips_elf32_ntrad_le_vec
914181834Sroberto    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
915181834Sroberto    ;;
916181834Sroberto  mips64*-*-netbsd*)
917181834Sroberto    targ_defvec=mips_elf32_ntrad_be_vec
918181834Sroberto    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
919181834Sroberto    ;;
920181834Sroberto  mips*el-*-netbsd*)
921181834Sroberto    targ_defvec=mips_elf32_trad_le_vec
922181834Sroberto    targ_selvecs="mips_elf32_trad_be_vec mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_le_vec mips_ecoff_be_vec"
923181834Sroberto    ;;
924181834Sroberto  mips*-*-netbsd*)
925181834Sroberto    targ_defvec=mips_elf32_trad_be_vec
926181834Sroberto    targ_selvecs="mips_elf32_trad_le_vec mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec mips_ecoff_be_vec mips_ecoff_le_vec"
927181834Sroberto    ;;
928181834Sroberto  mips64*-*-openbsd*)
929181834Sroberto    targ_defvec=mips_elf64_trad_be_vec
930181834Sroberto    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec"
931181834Sroberto    ;;
932181834Sroberto  mips*el-*-openbsd*)
933181834Sroberto    targ_defvec=mips_elf32_le_vec
934181834Sroberto    targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_le_vec mips_ecoff_be_vec"
935181834Sroberto    ;;
936181834Sroberto  mips*-*-openbsd*)
937181834Sroberto    targ_defvec=mips_elf32_be_vec
938181834Sroberto    targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec"
939181834Sroberto    ;;
940181834Sroberto  mips64*el-*-linux*)
941181834Sroberto    targ_defvec=mips_elf32_ntrad_le_vec
942181834Sroberto    targ_selvecs="mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
943181834Sroberto    ;;
944181834Sroberto  mips64*-*-linux*)
945181834Sroberto    targ_defvec=mips_elf32_ntrad_be_vec
946181834Sroberto    targ_selvecs="mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
947181834Sroberto    ;;
948181834Sroberto  mips*el-*-linux*)
949181834Sroberto    targ_defvec=mips_elf32_trad_le_vec
950181834Sroberto    targ_selvecs="mips_elf32_trad_be_vec mips_ecoff_le_vec mips_ecoff_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec"
951181834Sroberto    ;;
952181834Sroberto  mips*-*-linux*)
953181834Sroberto    targ_defvec=mips_elf32_trad_be_vec
954181834Sroberto    targ_selvecs="mips_elf32_trad_le_vec mips_ecoff_be_vec mips_ecoff_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec"
955181834Sroberto    ;;
956181834Sroberto  mips64*el-*-freebsd* | mips64*el-*-kfreebsd*-gnu)
957181834Sroberto    # FreeBSD vectors
958181834Sroberto    targ_defvec=mips_elf32_ntradfbsd_le_vec
959181834Sroberto    targ_selvecs="mips_elf32_ntradfbsd_be_vec mips_elf32_tradfbsd_le_vec mips_elf32_tradfbsd_be_vec mips_elf64_tradfbsd_le_vec mips_elf64_tradfbsd_be_vec"
960181834Sroberto    # Generic vectors
961181834Sroberto    targ_selvecs="${targ_selvecs} mips_elf32_ntrad_le_vec mips_elf32_ntrad_be_vec mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf64_trad_le_vec mips_elf64_trad_be_vec"
962181834Sroberto    ;;
963181834Sroberto  mips64*-*-freebsd* | mips64*-*-kfreebsd*-gnu)
964181834Sroberto    # FreeBSD vectors
965181834Sroberto    targ_defvec=mips_elf32_ntradfbsd_be_vec
966181834Sroberto    targ_selvecs="mips_elf32_ntradfbsd_le_vec mips_elf32_tradfbsd_be_vec mips_elf32_tradfbsd_le_vec mips_elf64_tradfbsd_be_vec mips_elf64_tradfbsd_le_vec"
967181834Sroberto    # Generic vectors
968181834Sroberto    targ_selvecs="${targ_selvecs} mips_elf32_ntrad_be_vec mips_elf32_ntrad_le_vec mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec"
969181834Sroberto    ;;
970181834Sroberto  mips*el-*-freebsd* | mips*el-*-kfreebsd*-gnu)
971181834Sroberto    # FreeBSD vectors
972181834Sroberto    targ_defvec=mips_elf32_tradfbsd_le_vec
973181834Sroberto    targ_selvecs="mips_elf32_tradfbsd_be_vec mips_elf32_ntradfbsd_le_vec mips_elf64_tradfbsd_le_vec mips_elf32_ntradfbsd_be_vec mips_elf64_tradfbsd_be_vec"
974181834Sroberto    # Generic vectors
975181834Sroberto    targ_selvecs="${targ_selvecs} mips_elf32_trad_le_vec mips_elf32_trad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec"
976181834Sroberto    ;;
977181834Sroberto  mips*-*-freebsd* | mips*-*-kfreebsd*-gnu)
978181834Sroberto    # FreeBSD vectors
979181834Sroberto    targ_defvec=mips_elf32_tradfbsd_be_vec
980181834Sroberto    targ_selvecs="mips_elf32_tradfbsd_le_vec mips_elf32_ntradfbsd_be_vec mips_elf64_tradfbsd_be_vec mips_elf32_ntradfbsd_le_vec mips_elf64_tradfbsd_le_vec"
981181834Sroberto    # Generic vectors
982181834Sroberto    targ_selvecs="${targ_selvecs} mips_elf32_trad_be_vec mips_elf32_trad_le_vec mips_elf32_ntrad_be_vec mips_elf64_trad_be_vec mips_elf32_ntrad_le_vec mips_elf64_trad_le_vec"
983181834Sroberto    ;;
984181834Sroberto  mmix-*-*)
985181834Sroberto    targ_defvec=mmix_elf64_vec
986181834Sroberto    targ_selvecs=mmix_mmo_vec
987181834Sroberto    want64=true
988181834Sroberto    ;;
989181834Sroberto#endif
990181834Sroberto  mn10200-*-*)
991181834Sroberto    targ_defvec=mn10200_elf32_vec
992181834Sroberto    targ_underscore=yes
993181834Sroberto    ;;
994181834Sroberto
995181834Sroberto  mn10300-*-*)
996181834Sroberto    targ_defvec=mn10300_elf32_vec
997181834Sroberto    targ_underscore=yes
998181834Sroberto    ;;
999181834Sroberto
1000181834Sroberto  mt-*-elf)
1001181834Sroberto    targ_defvec=mt_elf32_vec
1002181834Sroberto    ;;
1003181834Sroberto
1004181834Sroberto  msp430-*-*)
1005181834Sroberto    targ_defvec=msp430_elf32_vec
1006181834Sroberto    targ_selvecs=msp430_elf32_ti_vec
1007181834Sroberto    ;;
1008181834Sroberto
1009181834Sroberto  nds32*le-*-linux*)
1010181834Sroberto    targ_defvec=nds32_elf32_linux_le_vec
1011181834Sroberto    targ_selvecs=nds32_elf32_linux_be_vec
1012181834Sroberto    ;;
1013181834Sroberto
1014181834Sroberto  nds32*be-*-linux*)
1015181834Sroberto    targ_defvec=nds32_elf32_linux_be_vec
1016181834Sroberto    targ_selvecs=nds32_elf32_linux_le_vec
1017181834Sroberto    ;;
1018181834Sroberto
1019181834Sroberto  nds32*le-*-*)
1020181834Sroberto    targ_defvec=nds32_elf32_le_vec
1021181834Sroberto    targ_selvecs=nds32_elf32_be_vec
1022181834Sroberto    ;;
1023181834Sroberto
1024181834Sroberto  nds32*be-*-*)
1025181834Sroberto    targ_defvec=nds32_elf32_be_vec
1026181834Sroberto    targ_selvecs=nds32_elf32_le_vec
1027181834Sroberto    ;;
1028181834Sroberto
1029181834Sroberto#ifdef BFD64
1030181834Sroberto  nfp-*-*)
1031181834Sroberto    targ_defvec=nfp_elf64_vec
1032181834Sroberto    ;;
1033181834Sroberto#endif
1034181834Sroberto
1035181834Sroberto  ns32k-pc532-mach* | ns32k-pc532-ux*)
1036181834Sroberto    targ_defvec=ns32k_aout_pc532mach_vec
1037181834Sroberto    targ_underscore=yes
1038181834Sroberto    ;;
1039181834Sroberto  ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*)
1040181834Sroberto    targ_defvec=ns32k_aout_pc532nbsd_vec
1041181834Sroberto    targ_underscore=yes
1042181834Sroberto    ;;
1043181834Sroberto
1044181834Sroberto  nios2eb-*-*)
1045181834Sroberto    targ_defvec=nios2_elf32_be_vec
1046181834Sroberto    targ_selvecs=nios2_elf32_le_vec
1047181834Sroberto    ;;
1048181834Sroberto
1049181834Sroberto  nios2el-*-*)
1050181834Sroberto    targ_defvec=nios2_elf32_le_vec
1051181834Sroberto    targ_selvecs=nios2_elf32_be_vec
1052181834Sroberto    ;;
1053181834Sroberto
1054181834Sroberto  nios2-*-*)
1055181834Sroberto    targ_defvec=nios2_elf32_le_vec
1056181834Sroberto    targ_selvecs=nios2_elf32_be_vec
1057181834Sroberto    ;;
1058181834Sroberto
1059181834Sroberto  or1k-*-elf | or1k-*-linux* | or1k-*-rtems*)
1060181834Sroberto    targ_defvec=or1k_elf32_vec
1061181834Sroberto    ;;
1062181834Sroberto
1063181834Sroberto  or1knd-*-elf | or1knd-*-linux* | or1knd-*-rtems*)
1064181834Sroberto    targ_defvec=or1k_elf32_vec
1065181834Sroberto    ;;
1066181834Sroberto
1067181834Sroberto  pdp11-*-*)
1068181834Sroberto    targ_defvec=pdp11_aout_vec
1069181834Sroberto    targ_underscore=yes
1070181834Sroberto    ;;
1071181834Sroberto
1072181834Sroberto  pj-*-*)
1073181834Sroberto    targ_defvec=pj_elf32_vec
1074181834Sroberto    targ_selvecs="pj_elf32_vec pj_elf32_le_vec"
1075181834Sroberto    ;;
1076181834Sroberto
1077181834Sroberto  pjl-*-*)
1078181834Sroberto    targ_defvec=pj_elf32_le_vec
1079181834Sroberto    targ_selvecs="pj_elf32_le_vec pj_elf32_vec i386_elf32_vec iamcu_elf32_vec"
1080181834Sroberto    ;;
1081181834Sroberto
1082181834Sroberto  powerpc-*-aix5.[01] | rs6000-*-aix5.[01])
1083181834Sroberto    targ_defvec=rs6000_xcoff_vec
1084181834Sroberto    targ_selvecs="rs6000_xcoff64_aix_vec"
1085181834Sroberto    want64=true
1086181834Sroberto    ;;
1087181834Sroberto#ifdef BFD64
1088181834Sroberto  powerpc64-*-aix5.[01])
1089181834Sroberto    targ_defvec=rs6000_xcoff64_aix_vec
1090181834Sroberto    targ_selvecs="rs6000_xcoff_vec"
1091181834Sroberto    want64=true
1092181834Sroberto    ;;
1093181834Sroberto#endif
1094181834Sroberto  powerpc-*-aix[5-9]* | rs6000-*-aix[5-9]*)
1095181834Sroberto    targ_cflags=-DAIX_WEAK_SUPPORT
1096181834Sroberto    targ_defvec=rs6000_xcoff_vec
1097181834Sroberto    targ_selvecs="rs6000_xcoff64_aix_vec"
1098181834Sroberto    want64=true
1099181834Sroberto    ;;
1100181834Sroberto#ifdef BFD64
1101181834Sroberto  powerpc64-*-aix[5-9]*)
1102181834Sroberto    targ_cflags=-DAIX_WEAK_SUPPORT
1103181834Sroberto    targ_defvec=rs6000_xcoff64_aix_vec
1104181834Sroberto    targ_selvecs="rs6000_xcoff_vec"
1105181834Sroberto    want64=true
1106181834Sroberto    ;;
1107181834Sroberto#endif
1108181834Sroberto
1109181834Sroberto  powerpc-*-aix* | powerpc-*-beos* | rs6000-*-*)
1110181834Sroberto    targ_defvec=rs6000_xcoff_vec
1111181834Sroberto    targ64_selvecs=rs6000_xcoff64_vec
1112181834Sroberto    case "${targ}" in
1113181834Sroberto	*-*-aix4.[3456789]* | *-*-aix[56789]*)
1114181834Sroberto	want64=true;;
1115181834Sroberto	*)
1116181834Sroberto	targ_cflags=-DSMALL_ARCHIVE;;
1117181834Sroberto    esac
1118181834Sroberto    ;;
1119181834Sroberto#ifdef BFD64
1120181834Sroberto  powerpc64-*-aix*)
1121181834Sroberto    targ_defvec=rs6000_xcoff64_vec
1122181834Sroberto    targ_selvecs=rs6000_xcoff_vec
1123181834Sroberto    want64=true
1124181834Sroberto    ;;
1125181834Sroberto  powerpc64-*-freebsd*)
1126181834Sroberto    targ_defvec=powerpc_elf64_fbsd_vec
1127181834Sroberto    targ_selvecs="powerpc_elf64_vec powerpc_elf32_vec powerpc_elf32_fbsd_vec powerpc_elf32_le_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
1128181834Sroberto    want64=true
1129181834Sroberto    ;;
1130181834Sroberto  powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux* | \
1131181834Sroberto  powerpc64-*-*bsd*)
1132181834Sroberto    targ_defvec=powerpc_elf64_vec
1133181834Sroberto    targ_selvecs="powerpc_elf64_le_vec powerpc_elf32_vec powerpc_elf32_le_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
1134181834Sroberto    want64=true
1135181834Sroberto    ;;
1136181834Sroberto  powerpc64le-*-elf* | powerpcle-*-elf64* | powerpc64le-*-linux* | \
1137181834Sroberto  powerpc64le-*-*bsd*)
1138181834Sroberto    targ_defvec=powerpc_elf64_le_vec
1139181834Sroberto    targ_selvecs="powerpc_elf64_vec powerpc_elf32_le_vec powerpc_elf32_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec"
1140181834Sroberto    want64=true
1141181834Sroberto    ;;
1142181834Sroberto#endif
1143181834Sroberto  powerpc-*-*freebsd*)
1144181834Sroberto    targ_defvec=powerpc_elf32_fbsd_vec
1145181834Sroberto    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_elf32_le_vec powerpc_boot_vec"
1146181834Sroberto    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec powerpc_elf64_fbsd_vec"
1147181834Sroberto    ;;
1148181834Sroberto  powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
1149181834Sroberto  powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \
1150181834Sroberto  powerpc-*-chorus*)
1151181834Sroberto    targ_defvec=powerpc_elf32_vec
1152181834Sroberto    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec"
1153181834Sroberto    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
1154181834Sroberto    ;;
1155181834Sroberto  powerpc-*-kaos*)
1156181834Sroberto    targ_defvec=powerpc_elf32_vec
1157181834Sroberto    targ_selvecs="powerpc_elf32_le_vec powerpc_boot_vec"
1158181834Sroberto    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
1159181834Sroberto    ;;
1160181834Sroberto  powerpc-*-darwin* | powerpc-*-macos10* | powerpc-*-rhapsody*)
1161181834Sroberto    targ_defvec=mach_o_be_vec
1162181834Sroberto    targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec"
1163181834Sroberto    targ_archs="$targ_archs bfd_i386_arch"
1164181834Sroberto    ;;
1165181834Sroberto  powerpc-*-macos*)
1166181834Sroberto    targ_defvec=powerpc_xcoff_vec
1167181834Sroberto    ;;
1168181834Sroberto  powerpc-*-lynxos*)
1169181834Sroberto    targ_defvec=powerpc_elf32_vec
1170181834Sroberto    targ_selvecs="rs6000_xcoff_vec"
1171181834Sroberto    targ_cflags=-DSMALL_ARCHIVE
1172181834Sroberto    ;;
1173181834Sroberto  powerpc-*-nto*)
1174181834Sroberto    targ_defvec=powerpc_elf32_vec
1175181834Sroberto    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec"
1176181834Sroberto    ;;
1177181834Sroberto  powerpc-*-vxworks* | powerpc-*-windiss*)
1178181834Sroberto    targ_defvec=powerpc_elf32_vxworks_vec
1179181834Sroberto    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_elf32_le_vec powerpc_boot_vec"
1180181834Sroberto    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
1181181834Sroberto    ;;
1182181834Sroberto  powerpcle-*-nto*)
1183181834Sroberto    targ_defvec=powerpc_elf32_le_vec
1184181834Sroberto    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_boot_vec"
1185181834Sroberto    ;;
1186181834Sroberto  powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
1187181834Sroberto  powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks*)
1188181834Sroberto    targ_defvec=powerpc_elf32_le_vec
1189181834Sroberto    targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_boot_vec"
1190181834Sroberto    targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec"
1191181834Sroberto    ;;
1192181834Sroberto
1193181834Sroberto  pru-*-*)
1194181834Sroberto    targ_defvec=pru_elf32_vec
1195181834Sroberto    ;;
1196181834Sroberto
1197181834Sroberto#ifdef BFD64
1198181834Sroberto  riscv-*-* | riscv32*-*-*)
1199181834Sroberto    targ_defvec=riscv_elf32_vec
1200181834Sroberto    targ_selvecs="riscv_elf32_vec riscv_elf64_vec"
1201181834Sroberto    want64=true
1202181834Sroberto    ;;
1203181834Sroberto  riscv64*-*-*)
1204181834Sroberto    targ_defvec=riscv_elf64_vec
1205181834Sroberto    targ_selvecs="riscv_elf32_vec riscv_elf64_vec"
1206181834Sroberto    want64=true
1207181834Sroberto    ;;
1208181834Sroberto#endif
1209181834Sroberto
1210181834Sroberto  rl78-*-elf)
1211181834Sroberto    targ_defvec=rl78_elf32_vec
1212181834Sroberto    targ_underscore=yes
1213181834Sroberto    ;;
1214181834Sroberto
1215181834Sroberto  rx-*-elf)
1216181834Sroberto    targ_defvec=rx_elf32_le_vec
1217181834Sroberto    targ_selvecs="rx_elf32_be_vec rx_elf32_le_vec rx_elf32_be_ns_vec"
1218181834Sroberto    targ_underscore=yes
1219181834Sroberto    ;;
1220181834Sroberto  rx-*-linux*)
1221181834Sroberto    targ_defvec=rx_elf32_linux_le_vec
1222181834Sroberto    targ_selvecs="rx_elf32_linux_le_vec"
1223181834Sroberto    ;;
1224181834Sroberto
1225181834Sroberto  s390-*-linux*)
1226181834Sroberto    targ_defvec=s390_elf32_vec
1227181834Sroberto    targ64_selvecs=s390_elf64_vec
1228181834Sroberto    want64=true
1229181834Sroberto    ;;
1230181834Sroberto#ifdef BFD64
1231181834Sroberto  s390x-*-linux*)
1232181834Sroberto    targ_defvec=s390_elf64_vec
1233181834Sroberto    targ_selvecs=s390_elf32_vec
1234181834Sroberto    want64=true
1235181834Sroberto    ;;
1236181834Sroberto  s390x-*-tpf*)
1237181834Sroberto    targ_defvec=s390_elf64_vec
1238181834Sroberto    want64=true
1239181834Sroberto    ;;
1240181834Sroberto
1241181834Sroberto  score*-*-elf*)
1242181834Sroberto    targ_defvec=score_elf32_be_vec
1243181834Sroberto    targ_selvecs=score_elf32_le_vec
1244181834Sroberto    ;;
1245181834Sroberto#endif /* BFD64 */
1246181834Sroberto
1247181834Sroberto  sh*eb-*-linux*)
1248181834Sroberto    targ_defvec=sh_elf32_linux_be_vec
1249181834Sroberto    targ_selvecs=sh_elf32_linux_vec
1250181834Sroberto    targ_selvecs="${targ_selvecs} sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec"
1251181834Sroberto    ;;
1252181834Sroberto  sh*-*-linux*)
1253181834Sroberto    targ_defvec=sh_elf32_linux_vec
1254181834Sroberto    targ_selvecs=sh_elf32_linux_be_vec
1255181834Sroberto    targ_selvecs="${targ_selvecs} sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec"
1256181834Sroberto    ;;
1257181834Sroberto
1258181834Sroberto  sh-*-uclinux* | sh[12]-*-uclinux*)
1259181834Sroberto    targ_defvec=sh_elf32_vec
1260181834Sroberto    targ_selvecs="sh_elf32_le_vec sh_elf32_linux_be_vec sh_elf32_linux_vec sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec"
1261181834Sroberto    ;;
1262181834Sroberto
1263181834Sroberto  sh*l*-*-netbsdelf*)
1264181834Sroberto    targ_defvec=sh_elf32_nbsd_le_vec
1265181834Sroberto    targ_selvecs="sh_elf32_nbsd_vec sh_coff_vec sh_coff_le_vec"
1266181834Sroberto    ;;
1267181834Sroberto  sh*-*-netbsdelf*)
1268181834Sroberto    targ_defvec=sh_elf32_nbsd_vec
1269181834Sroberto    targ_selvecs="sh_elf32_nbsd_le_vec sh_coff_vec sh_coff_le_vec"
1270181834Sroberto    ;;
1271181834Sroberto
1272181834Sroberto  shl*-*-elf* | sh[1234]l*-*-elf* | sh3el*-*-elf* | shl*-*-kaos*)
1273181834Sroberto    targ_defvec=sh_elf32_le_vec
1274181834Sroberto    targ_selvecs="sh_elf32_vec sh_coff_le_vec sh_coff_vec sh_coff_small_le_vec sh_coff_small_vec"
1275181834Sroberto    targ_underscore=yes
1276181834Sroberto    ;;
1277181834Sroberto
1278181834Sroberto  sh-*-elf* | sh[1234]*-elf* | sh-*-rtems* | sh-*-kaos*)
1279181834Sroberto    targ_defvec=sh_elf32_vec
1280181834Sroberto    targ_selvecs="sh_elf32_le_vec sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec"
1281181834Sroberto    targ_underscore=yes
1282181834Sroberto    ;;
1283181834Sroberto
1284181834Sroberto  sh-*-nto*)
1285181834Sroberto    targ_defvec=sh_elf32_vec
1286181834Sroberto    targ_selvecs="sh_elf32_le_vec sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec"
1287181834Sroberto    targ_underscore=yes
1288181834Sroberto    ;;
1289181834Sroberto  sh*-*-openbsd*)
1290181834Sroberto    targ_defvec=sh_elf32_nbsd_le_vec
1291181834Sroberto    targ_selvecs="sh_elf32_nbsd_vec sh_coff_vec sh_coff_le_vec"
1292181834Sroberto    ;;
1293181834Sroberto  sh-*-pe)
1294181834Sroberto    targ_defvec=sh_pe_le_vec
1295181834Sroberto    targ_selvecs="sh_pe_le_vec sh_pei_le_vec"
1296181834Sroberto    targ_underscore=yes
1297181834Sroberto    ;;
1298181834Sroberto  sh-*-vxworks)
1299181834Sroberto    targ_defvec=sh_elf32_vxworks_vec
1300181834Sroberto    targ_selvecs="sh_elf32_vxworks_le_vec"
1301181834Sroberto    # FIXME None of the following are actually used on this target, but
1302181834Sroberto    # they're necessary for coff-sh.c (which is unconditionally used) to be
1303181834Sroberto    # compiled correctly.
1304181834Sroberto    targ_selvecs="$targ_selvecs sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec"
1305181834Sroberto    targ_underscore=yes
1306181834Sroberto    ;;
1307181834Sroberto  sh-*-*)
1308181834Sroberto    targ_defvec=sh_coff_vec
1309181834Sroberto    targ_selvecs="sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec"
1310181834Sroberto    targ_underscore=yes
1311181834Sroberto    ;;
1312181834Sroberto
1313181834Sroberto  sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*)
1314181834Sroberto    targ_defvec=sparc_elf32_sol2_vec
1315181834Sroberto    ;;
1316181834Sroberto#ifdef BFD64
1317181834Sroberto  sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*)
1318181834Sroberto    targ_defvec=sparc_elf32_sol2_vec
1319181834Sroberto    targ_selvecs="sparc_elf64_sol2_vec"
1320181834Sroberto    want64=true
1321181834Sroberto    ;;
1322181834Sroberto  sparc64-*-freebsd* | sparc64-*-kfreebsd*-gnu)
1323181834Sroberto    targ_defvec=sparc_elf64_fbsd_vec
1324181834Sroberto    targ_selvecs="sparc_elf64_vec sparc_elf32_vec"
1325181834Sroberto    ;;
1326181834Sroberto  sparc64*-*-*)
1327181834Sroberto    targ_defvec=sparc_elf64_vec
1328181834Sroberto    targ_selvecs="sparc_elf32_vec"
1329181834Sroberto    want64=true
1330181834Sroberto    ;;
1331181834Sroberto#endif
1332181834Sroberto  sparc-*-linux-* | sparcv*-*-linux-*)
1333181834Sroberto    targ_defvec=sparc_elf32_vec
1334181834Sroberto    targ_selvecs="sparc_elf64_vec"
1335181834Sroberto    ;;
1336181834Sroberto  sparc-*-vxworks*)
1337181834Sroberto    targ_defvec=sparc_elf32_vxworks_vec
1338181834Sroberto    targ_selvecs="sparc_elf32_vec"
1339181834Sroberto    ;;
1340181834Sroberto  sparc*-*-*)
1341181834Sroberto    targ_defvec=sparc_elf32_vec
1342181834Sroberto    ;;
1343181834Sroberto
1344181834Sroberto  spu-*-elf)
1345181834Sroberto    targ_defvec=spu_elf32_vec
1346181834Sroberto    want64=true
1347181834Sroberto    ;;
1348181834Sroberto
1349181834Sroberto  tic6x-*-elf)
1350181834Sroberto    targ_defvec=tic6x_elf32_c6000_le_vec
1351181834Sroberto    targ_selvecs="tic6x_elf32_c6000_be_vec tic6x_elf32_le_vec tic6x_elf32_be_vec"
1352181834Sroberto    ;;
1353181834Sroberto
1354181834Sroberto  tic6x-*-uclinux)
1355181834Sroberto    targ_defvec=tic6x_elf32_linux_le_vec
1356181834Sroberto    targ_selvecs="tic6x_elf32_linux_be_vec tic6x_elf32_le_vec tic6x_elf32_be_vec"
1357181834Sroberto    ;;
1358181834Sroberto
1359181834Sroberto#ifdef BFD64
1360181834Sroberto  tilegx-*-*)
1361181834Sroberto    targ_defvec=tilegx_elf64_le_vec
1362181834Sroberto    targ_selvecs="tilegx_elf64_be_vec tilegx_elf32_be_vec tilegx_elf32_le_vec"
1363181834Sroberto    ;;
1364181834Sroberto  tilegxbe-*-*)
1365181834Sroberto    targ_defvec=tilegx_elf64_be_vec
1366181834Sroberto    targ_selvecs="tilegx_elf64_le_vec tilegx_elf32_be_vec tilegx_elf32_le_vec"
1367181834Sroberto    ;;
1368181834Sroberto#endif
1369181834Sroberto
1370181834Sroberto  tilepro-*-*)
1371181834Sroberto    targ_defvec=tilepro_elf32_vec
1372181834Sroberto    ;;
1373181834Sroberto
1374181834Sroberto  ft32*-*-*)
1375181834Sroberto    targ_defvec=ft32_elf32_vec
1376181834Sroberto    ;;
1377181834Sroberto
1378181834Sroberto  v850*-*-*)
1379181834Sroberto    targ_defvec=v850_elf32_vec
1380181834Sroberto    targ_selvecs="v800_elf32_vec"
1381181834Sroberto    targ_underscore=yes
1382181834Sroberto    ;;
1383181834Sroberto
1384181834Sroberto  vax-*-netbsdelf*)
1385181834Sroberto    targ_defvec=vax_elf32_vec
1386181834Sroberto    targ_selvecs="vax_aout_nbsd_vec vax_aout_1knbsd_vec"
1387181834Sroberto    ;;
1388181834Sroberto
1389181834Sroberto  vax-*-netbsdaout* | vax-*-netbsd*)
1390181834Sroberto    targ_defvec=vax_aout_nbsd_vec
1391181834Sroberto    targ_selvecs="vax_elf32_vec vax_aout_1knbsd_vec"
1392181834Sroberto    targ_underscore=yes
1393181834Sroberto    ;;
1394181834Sroberto
1395181834Sroberto  vax-*-openbsd*)
1396181834Sroberto    targ_defvec=vax_aout_nbsd_vec
1397181834Sroberto    targ_underscore=yes
1398181834Sroberto    ;;
1399181834Sroberto
1400181834Sroberto  vax-*-linux-*)
1401181834Sroberto    targ_defvec=vax_elf32_vec
1402181834Sroberto    ;;
1403181834Sroberto
1404181834Sroberto  visium-*-elf)
1405181834Sroberto    targ_defvec=visium_elf32_vec
1406181834Sroberto    ;;
1407181834Sroberto
1408181834Sroberto  wasm32-*-*)
1409181834Sroberto    targ_defvec=wasm32_elf32_vec
1410181834Sroberto    targ_selvecs="wasm_vec"
1411181834Sroberto    ;;
1412181834Sroberto
1413181834Sroberto  xc16x-*-elf)
1414181834Sroberto    targ_defvec=xc16x_elf32_vec
1415181834Sroberto    ;;
1416181834Sroberto
1417181834Sroberto  xgate-*-*)
1418181834Sroberto    targ_defvec=xgate_elf32_vec
1419181834Sroberto    targ_selvecs="xgate_elf32_vec"
1420181834Sroberto    ;;
1421181834Sroberto
1422181834Sroberto  xstormy16-*-elf)
1423181834Sroberto    targ_defvec=xstormy16_elf32_vec
1424181834Sroberto    ;;
1425181834Sroberto
1426181834Sroberto  xtensa*-*-*)
1427181834Sroberto    targ_defvec=xtensa_elf32_le_vec
1428181834Sroberto    targ_selvecs=xtensa_elf32_be_vec
1429181834Sroberto    ;;
1430181834Sroberto
1431181834Sroberto  z80-*-coff)
1432181834Sroberto    targ_defvec=z80_coff_vec
1433181834Sroberto    targ_underscore=no
1434181834Sroberto    ;;
1435181834Sroberto
1436181834Sroberto  z80-*-elf)
1437181834Sroberto    targ_defvec=z80_elf32_vec
1438181834Sroberto    targ_underscore=no
1439181834Sroberto    ;;
1440181834Sroberto
1441181834Sroberto  z8k*-*-*)
1442181834Sroberto    targ_defvec=z8k_coff_vec
1443181834Sroberto    targ_underscore=yes
1444181834Sroberto    ;;
1445181834Sroberto
1446181834Sroberto# END OF targmatch.h
1447181834Sroberto  bpf-*-*)
1448181834Sroberto    echo "*** Configuration $targ is not fully supported." >&2
1449181834Sroberto    echo "*** Use bpf or bpf-*-none as the target instead." >&2
1450181834Sroberto    exit 1
1451181834Sroberto    ;;
1452181834Sroberto
1453181834Sroberto  *)
1454181834Sroberto    echo 1>&2 "*** BFD does not support target ${targ}."
1455181834Sroberto    echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
1456181834Sroberto    exit 1
1457181834Sroberto    ;;
1458181834Srobertoesac
1459181834Sroberto
1460181834Sroberto# All MIPS ELF targets need a 64-bit bfd_vma.
1461181834Srobertocase "${targ_defvec} ${targ_selvecs}" in
1462181834Sroberto  *mips_elf*)
1463181834Sroberto    want64=true
1464181834Sroberto    ;;
1465181834Srobertoesac
1466181834Sroberto
1467181834Srobertocase "${host64}${want64}" in
1468181834Sroberto  *true*)
1469181834Sroberto    targ_selvecs="${targ_selvecs} ${targ64_selvecs}"
1470181834Sroberto    ;;
1471181834Srobertoesac
1472181834Sroberto
1473181834Sroberto# If we support any ELF target, then automatically add support for the
1474181834Sroberto# generic ELF targets.  This permits an objdump with some ELF support
1475181834Sroberto# to be used on an arbitrary ELF file for anything other than
1476181834Sroberto# relocation information.
1477181834Srobertocase "${targ_defvec} ${targ_selvecs}" in
1478181834Sroberto  *elf64* | *mips_elf32_n*)
1479181834Sroberto    targ_selvecs="${targ_selvecs} elf64_le_vec elf64_be_vec elf32_le_vec elf32_be_vec"
1480181834Sroberto    ;;
1481181834Sroberto  *elf32*)
1482181834Sroberto    targ_selvecs="${targ_selvecs} elf32_le_vec elf32_be_vec"
1483181834Sroberto    ;;
1484181834Srobertoesac
1485181834Sroberto
1486181834Sroberto# If we support Intel MCU target, then add support for bfd_iamcu_arch.
1487181834Srobertocase "${targ_defvec} ${targ_selvecs}" in
1488181834Sroberto  *iamcu_elf32*)
1489181834Sroberto    targ_archs="$targ_archs bfd_iamcu_arch"
1490181834Sroberto    ;;
1491181834Srobertoesac
1492181834Sroberto
1493181834Sroberto# If we support Intel L1OM target, then add support for bfd_l1om_arch.
1494181834Srobertocase "${targ_defvec} ${targ_selvecs}" in
1495181834Sroberto  *l1om_elf64*)
1496181834Sroberto    targ_archs="$targ_archs bfd_l1om_arch"
1497181834Sroberto    ;;
1498181834Srobertoesac
1499181834Sroberto
1500181834Sroberto# If we support Intel K1OM target, then add support for bfd_k1om_arch.
1501181834Srobertocase "${targ_defvec} ${targ_selvecs}" in
1502181834Sroberto  *k1om_elf64*)
1503181834Sroberto    targ_archs="$targ_archs bfd_k1om_arch"
1504181834Sroberto    ;;
1505181834Srobertoesac
1506181834Sroberto