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