1# config.bfd 2# 3# Copyright (C) 2012-2021 Free Software Foundation, Inc. 4# 5# This file is free software; you can redistribute it and/or modify 6# it under the terms of the GNU General Public License as published by 7# the Free Software Foundation; either version 3 of the License, or 8# (at your option) any later version. 9# 10# This program is distributed in the hope that it will be useful, 11# but WITHOUT ANY WARRANTY; without even the implied warranty of 12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13# GNU General Public License for more details. 14# 15# You should have received a copy of the GNU General Public License 16# along with this program; see the file COPYING3. If not see 17# <http://www.gnu.org/licenses/>. 18# 19# Convert a canonical host type into a BFD host type. 20# Set shell variable targ to canonical target name, and run 21# using ``. config.bfd''. 22# Sets the following shell variables: 23# targ_defvec Default vector for this target 24# targ_selvecs Vectors to build for this target 25# targ64_selvecs Vectors to build if --enable-64-bit-bfd is given 26# or if host is 64 bit. 27# targ_archs Architectures for this target 28# targ_cflags $(CFLAGS) for this target (FIXME: pretty bogus) 29# targ_underscore Whether underscores are used: yes or no 30 31# Part of this file is processed by targmatch.sed to generate the 32# targmatch.h file. The #ifdef and #endif lines that appear below are 33# copied directly into targmatch.h. 34 35# The binutils c++filt program wants to know whether underscores are 36# stripped or not. That is why we set targ_underscore. c++filt uses 37# this information to choose a default. This information is 38# duplicated in the symbol_leading_char field of the BFD target 39# vector, but c++filt does not deal with object files and is not 40# linked against libbfd.a. It is not terribly important that c++filt 41# get this right; it is just convenient. 42 43targ_defvec= 44targ_selvecs= 45targ64_selvecs= 46targ_cflags= 47targ_underscore=no 48 49# Catch obsolete configurations. 50case $targ in 51 openrisc-*-* | or32-*-*) 52 echo "*** Configuration $targ is obsolete." >&2 53 echo "*** Use or1k-*-elf or or1k-*-linux as the target instead" >&2 54 exit 1 55 ;; 56 *-*-netbsdpe* | null) 57 if test "x$enable_obsolete" != xyes; then 58 echo "*** Configuration $targ is obsolete." >&2 59 echo "*** Specify --enable-obsolete to build it anyway." >&2 60 echo "*** Support will be REMOVED in the next major release of BINUTILS," >&2 61 echo "*** unless a maintainer comes forward." >&2 62 exit 1 63 fi;; 64esac 65 66case $targ in 67 *-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu | \ 68 mips*-*-irix5* | mips*-*-irix6*) 69 # Not obsolete 70 ;; 71 *-adobe-* | \ 72 *-go32-rtems* | \ 73 *-sony-* | \ 74 *-tandem-* | \ 75 *-*-ieee* | \ 76 *-*-netware* | \ 77 *-*-rtemsaout* | \ 78 *-*-rtemscoff* | \ 79 a29k-* | \ 80 arm*-*-aout | \ 81 arm-*-coff | \ 82 arm-*-netbsd* | \ 83 arm-*-openbsd* | \ 84 arm-*-oabi | \ 85 arm-*-riscix* | \ 86 arm*-*-symbianelf* | \ 87 arm-epoc-pe* | \ 88 c30-*-*aout* | tic30-*-*aout* | \ 89 cr16c-*-* | \ 90 h8300*-*-coff | \ 91 h8500*-*-coff | \ 92 hppa*-*-rtems* | \ 93 i[3-7]86-*-unixware* | \ 94 i[3-7]86-*-dgux* | \ 95 i[3-7]86-*-chorus* | \ 96 i[3-7]86-*-sysv* | \ 97 i[3-7]86-*-isc* | \ 98 i[3-7]86-*-sco* | \ 99 i[3-7]86-*-coff | \ 100 i[3-7]86-*-aix* | \ 101 i[3-7]86-sequent-bsd* | \ 102 i[3-7]86-*-freebsdaout* | i[3-7]86-*-freebsd[12].* | i[3-7]86-*-freebsd[12] | \ 103 i[3-7]86-*-netbsdaout* | i[3-7]86-*-netbsd* | \ 104 i[3-7]86-*-openbsd[0-2].* | i[3-7]86-*-openbsd3.[0-3] | \ 105 i[3-7]86-*-linux*aout* | \ 106 i[3-7]86-*-mach* | i[3-7]86-*-osf1mk* | \ 107 i[3-7]86-*-os9k | \ 108 i[3-7]86-none-* | \ 109 i[3-7]86-*-aout* | i[3-7]86*-*-vsta* | \ 110 i370-* | \ 111 i860-*-* | \ 112 i960-*-* | \ 113 m68*-*-*bsd* | \ 114 m68*-*-aout* | \ 115 m68*-*-coff* | \ 116 m68*-*-hpux* | \ 117 m68*-*-linux*aout* | \ 118 m68*-*-lynxos* | \ 119 m68*-*-os68k* | \ 120 m68*-*-psos* | \ 121 m68*-*-sunos* | \ 122 m68*-*-sysv* | \ 123 m68*-*-vsta* | \ 124 m68*-*-vxworks* | \ 125 m68*-apollo-* | \ 126 m68*-apple-aux* | \ 127 m68*-bull-sysv* | \ 128 m68*-ericsson-* | \ 129 m68*-motorola-sysv* | \ 130 m68*-netx-* | \ 131 m88*-*-* | \ 132 maxq-*-coff | \ 133 mips*-*-bsd* | \ 134 mips*-*-ecoff* | \ 135 mips*-*-lnews* | \ 136 mips*-*-mach3* | \ 137 mips*-*-pe* | \ 138 mips*-*-riscos* | \ 139 mips*-*-sysv* | \ 140 mips*-big-* | \ 141 mips*-dec-* | \ 142 mips*-sgi-* | \ 143 mips*el-*-rtems* | \ 144 powerpc-*-lynxos* | powerpc-*-windiss* | \ 145 powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin* | \ 146 sh*-*-symbianelf* | sh5*-*-* | sh64*-*-* | \ 147 sparc*-*-*aout* | \ 148 sparc*-*-chorus* | \ 149 sparc*-*-coff* | \ 150 sparc-*-lynxos* | \ 151 sparc-*-openbsd[0-2].* | sparc-*-openbsd3.[0-1] | \ 152 tahoe-*-* | \ 153 vax-*-bsd* | vax-*-ultrix* | vax-*-vms* | \ 154 w65-*-* | \ 155 we32k-*-* | \ 156 xc16x-*-* | \ 157 null) 158 echo "*** Configuration $targ is obsolete." >&2 159 echo "*** Support has been REMOVED." >&2 160 exit 1 161 ;; 162esac 163 164targ_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` 165case "${targ_cpu}" in 166aarch64*) targ_archs="bfd_aarch64_arch bfd_arm_arch";; 167alpha*) targ_archs=bfd_alpha_arch ;; 168am33_2.0*) targ_archs=bfd_mn10300_arch ;; 169arc*) targ_archs=bfd_arc_arch ;; 170arm*) targ_archs=bfd_arm_arch ;; 171bfin*) targ_archs=bfd_bfin_arch ;; 172c30*) targ_archs=bfd_tic30_arch ;; 173c4x*) targ_archs=bfd_tic4x_arch ;; 174c54x*) targ_archs=bfd_tic54x_arch ;; 175cr16*) targ_archs=bfd_cr16_arch ;; 176crisv32) targ_archs=bfd_cris_arch ;; 177crx*) targ_archs=bfd_crx_arch ;; 178csky*) targ_archs=bfd_csky_arch ;; 179dlx*) targ_archs=bfd_dlx_arch ;; 180fido*) targ_archs=bfd_m68k_arch ;; 181hppa*) targ_archs=bfd_hppa_arch ;; 182i[3-7]86) targ_archs=bfd_i386_arch ;; 183ia16) targ_archs=bfd_i386_arch ;; 184lm32) targ_archs=bfd_lm32_arch ;; 185m6811*|m68hc11*) targ_archs="bfd_m68hc11_arch bfd_m68hc12_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;; 186m6812*|m68hc12*) targ_archs="bfd_m68hc12_arch bfd_m68hc11_arch bfd_m9s12x_arch bfd_m9s12xg_arch" ;; 187m68*) targ_archs=bfd_m68k_arch ;; 188s12z*) targ_archs=bfd_s12z_arch ;; 189microblaze*) targ_archs=bfd_microblaze_arch ;; 190mips*) targ_archs=bfd_mips_arch ;; 191nds32*) targ_archs=bfd_nds32_arch ;; 192nfp) targ_archs=bfd_nfp_arch ;; 193nios2*) targ_archs=bfd_nios2_arch ;; 194or1k*|or1knd*) targ_archs=bfd_or1k_arch ;; 195pdp11*) targ_archs=bfd_pdp11_arch ;; 196pj*) targ_archs="bfd_pj_arch bfd_i386_arch";; 197powerpc*) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;; 198pru*) targ_archs=bfd_pru_arch ;; 199riscv*) targ_archs=bfd_riscv_arch ;; 200rs6000) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;; 201s390*) targ_archs=bfd_s390_arch ;; 202sh*) targ_archs=bfd_sh_arch ;; 203sparc*) targ_archs=bfd_sparc_arch ;; 204spu*) targ_archs=bfd_spu_arch ;; 205tilegx*) targ_archs=bfd_tilegx_arch ;; 206tilepro*) targ_archs=bfd_tilepro_arch ;; 207v850*) targ_archs="bfd_v850_arch bfd_v850_rh850_arch" ;; 208visium*) targ_archs=bfd_visium_arch ;; 209wasm32) targ_archs=bfd_wasm32_arch ;; 210x86_64*) targ_archs=bfd_i386_arch ;; 211xtensa*) targ_archs=bfd_xtensa_arch ;; 212xgate) targ_archs=bfd_xgate_arch ;; 213z80*|r800|z180|gbz80|ez80*) targ_archs=bfd_z80_arch ;; 214z8k*) targ_archs=bfd_z8k_arch ;; 215*) targ_archs=bfd_${targ_cpu}_arch ;; 216esac 217 218 219# WHEN ADDING ENTRIES TO THIS MATRIX: 220# Make sure that the left side always has two dashes. Otherwise you 221# can get spurious matches. Even for unambiguous cases, do this as a 222# convention, else the table becomes a real mess to understand and maintain. 223 224case "${targ}" in 225# START OF targmatch.h 226#ifdef BFD64 227 aarch64-*-darwin*) 228 targ_defvec=aarch64_mach_o_vec 229 targ_selvecs="arm_mach_o_vec mach_o_le_vec mach_o_be_vec mach_o_fat_vec" 230 targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch" 231 want64=true 232 ;; 233 aarch64-*-elf | aarch64-*-rtems* | aarch64-*-genode*) 234 targ_defvec=aarch64_elf64_le_vec 235 targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec" 236 want64=true 237 ;; 238 aarch64_be-*-elf) 239 targ_defvec=aarch64_elf64_be_vec 240 targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec" 241 want64=true 242 ;; 243 aarch64-*-freebsd*) 244 targ_defvec=aarch64_elf64_le_vec 245 targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec" 246 want64=true 247 ;; 248 aarch64-*-fuchsia*) 249 targ_defvec=aarch64_elf64_le_vec 250 targ_selvecs="aarch64_elf64_be_vec arm_elf32_le_vec arm_elf32_be_vec" 251 want64=true 252 ;; 253 aarch64-*-cloudabi*) 254 targ_defvec=aarch64_elf64_le_cloudabi_vec 255 targ_selvecs=aarch64_elf64_be_cloudabi_vec 256 want64=true 257 ;; 258 aarch64-*-linux* | aarch64-*-netbsd*) 259 targ_defvec=aarch64_elf64_le_vec 260 targ_selvecs="aarch64_elf64_be_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_le_vec arm_elf32_be_vec" 261 want64=true 262 ;; 263 aarch64_be-*-linux* | aarch64_be-*-netbsd*) 264 targ_defvec=aarch64_elf64_be_vec 265 targ_selvecs="aarch64_elf64_le_vec aarch64_elf32_le_vec aarch64_elf32_be_vec arm_elf32_be_vec arm_elf32_le_vec" 266 want64=true 267 ;; 268 alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu) 269 targ_defvec=alpha_elf64_fbsd_vec 270 targ_selvecs="alpha_elf64_vec alpha_ecoff_le_vec" 271 want64=true 272 # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling. 273 case "${targ}" in 274 alpha*-*-freebsd3* | alpha*-*-freebsd4 | alpha*-*-freebsd4.0*) 275 targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;; 276 esac 277 ;; 278 alpha*-*-netbsd* | alpha*-*-openbsd*) 279 targ_defvec=alpha_elf64_vec 280 targ_selvecs=alpha_ecoff_le_vec 281 want64=true 282 ;; 283 alpha*-*-linux*ecoff*) 284 targ_defvec=alpha_ecoff_le_vec 285 targ_selvecs=alpha_elf64_vec 286 want64=true 287 ;; 288 alpha*-*-linux-* | alpha*-*-elf*) 289 targ_defvec=alpha_elf64_vec 290 targ_selvecs=alpha_ecoff_le_vec 291 want64=true 292 ;; 293 alpha*-*-*vms*) 294 targ_defvec=alpha_vms_vec 295 targ_selvecs=alpha_vms_lib_txt_vec 296 want64=true 297 ;; 298 alpha*-*-*) 299 targ_defvec=alpha_ecoff_le_vec 300 want64=true 301 ;; 302 ia64*-*-freebsd* | ia64*-*-netbsd* | ia64*-*-linux-* | ia64*-*-elf* | ia64*-*-kfreebsd*-gnu) 303 targ_defvec=ia64_elf64_le_vec 304 targ_selvecs="ia64_elf64_be_vec ia64_pei_vec" 305 want64=true 306 ;; 307 ia64*-*-hpux*) 308 targ_defvec=ia64_elf32_hpux_be_vec 309 targ_selvecs="ia64_elf64_hpux_be_vec" 310 want64=true 311 ;; 312 ia64*-*-*vms*) 313 targ_defvec=ia64_elf64_vms_vec 314 targ_selvecs=alpha_vms_lib_txt_vec 315 want64=true 316 ;; 317#endif /* BFD64 */ 318 319 am33_2.0-*-linux*) 320 targ_defvec=am33_elf32_linux_vec 321 ;; 322 323 arc*eb-*-elf* | arc*eb-*-linux*) 324 targ_defvec=arc_elf32_be_vec 325 targ_selvecs=arc_elf32_le_vec 326 ;; 327 328 arc*-*-elf* | arc*-*-linux*) 329 targ_defvec=arc_elf32_le_vec 330 targ_selvecs=arc_elf32_be_vec 331 ;; 332 333 arm-*-darwin*) 334 targ_defvec=arm_mach_o_vec 335 targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec" 336 targ_archs="$targ_archs bfd_i386_arch bfd_powerpc_arch bfd_rs6000_arch" 337 ;; 338 arm-*-fuchsia*) 339 targ_defvec=arm_elf32_le_vec 340 targ_selvecs="arm_elf32_be_vec" 341 ;; 342 arm-*-nacl*) 343 targ_defvec=arm_elf32_nacl_le_vec 344 targ_selvecs="arm_elf32_nacl_be_vec" 345 ;; 346 armeb-*-nacl*) 347 targ_defvec=arm_elf32_nacl_be_vec 348 targ_selvecs="arm_elf32_nacl_le_vec" 349 ;; 350 armeb-*-netbsdelf*) 351 targ_defvec=arm_elf32_be_vec 352 targ_selvecs="arm_elf32_le_vec" 353 ;; 354 arm-*-netbsdelf*) 355 targ_defvec=arm_elf32_le_vec 356 targ_selvecs="arm_elf32_be_vec" 357 ;; 358 arm-*-nto* | nto*arm*) 359 targ_defvec=arm_elf32_le_vec 360 targ_selvecs=arm_elf32_be_vec 361 targ_cflags=-D__QNXTARGET__ 362 ;; 363 arm-wince-pe | arm-*-wince | arm*-*-mingw32ce* | arm*-*-cegcc*) 364 targ_defvec=arm_pe_wince_le_vec 365 targ_selvecs="arm_pe_wince_le_vec arm_pe_wince_be_vec arm_pei_wince_le_vec arm_pei_wince_be_vec" 366 targ_underscore=no 367 targ_cflags="-DARM_WINCE -DARM_COFF_BUGFIX" 368 ;; 369 arm-*-pe*) 370 targ_defvec=arm_pe_le_vec 371 targ_selvecs="arm_pe_le_vec arm_pe_be_vec arm_pei_le_vec arm_pei_be_vec" 372 targ_underscore=yes 373 ;; 374 arm-*-phoenix*) 375 targ_defvec=arm_elf32_le_vec 376 targ_selvecs=arm_elf32_be_vec 377 ;; 378 armeb-*-elf | arm*b-*-freebsd* | arm*b-*-linux-* | armeb-*-eabi*) 379 targ_defvec=arm_elf32_be_vec 380 targ_selvecs=arm_elf32_le_vec 381 ;; 382 arm-*-kaos*) 383 targ_defvec=arm_elf32_le_vec 384 targ_selvecs=arm_elf32_be_vec 385 ;; 386 arm-*-elf | arm*-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \ 387 arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \ 388 arm*-*-eabi* | arm-*-rtems* | arm*-*-uclinuxfdpiceabi) 389 targ_defvec=arm_elf32_le_vec 390 targ_selvecs="arm_elf32_fdpic_le_vec arm_elf32_be_vec arm_elf32_fdpic_be_vec" 391 ;; 392 arm*-*-vxworks | arm*-*-windiss) 393 targ_defvec=arm_elf32_vxworks_le_vec 394 targ_selvecs=arm_elf32_vxworks_be_vec 395 ;; 396 arm9e-*-elf) 397 targ_defvec=arm_elf32_le_vec 398 targ_selvecs=arm_elf32_be_vec 399 ;; 400 401 avr-*-*) 402 targ_defvec=avr_elf32_vec 403 ;; 404 405 bfin-*-*) 406 targ_defvec=bfin_elf32_vec 407 targ_selvecs=bfin_elf32_fdpic_vec 408 targ_underscore=yes 409 ;; 410 411 c30-*-*coff* | tic30-*-*coff*) 412 targ_defvec=tic30_coff_vec 413 ;; 414 415 c4x-*-*coff* | tic4x-*-*coff*) 416 targ_defvec=tic4x_coff1_vec 417 targ_selvecs="tic4x_coff1_beh_vec tic4x_coff2_vec tic4x_coff2_beh_vec tic4x_coff0_vec tic4x_coff0_beh_vec" 418 targ_underscore=yes 419 ;; 420 421 c54x*-*-*coff* | tic54x-*-*coff*) 422 targ_defvec=tic54x_coff1_vec 423 targ_selvecs="tic54x_coff1_beh_vec tic54x_coff2_vec tic54x_coff2_beh_vec tic54x_coff0_vec tic54x_coff0_beh_vec" 424 targ_underscore=yes 425 ;; 426 427 cr16-*-elf* | cr16*-*-uclinux*) 428 targ_defvec=cr16_elf32_vec 429 targ_underscore=yes 430 ;; 431 432#ifdef BFD64 433 cris-*-* | crisv32-*-*) 434 targ_defvec=cris_aout_vec 435 targ_selvecs="cris_elf32_us_vec cris_elf32_vec" 436 case "${targ}" in 437 *-*-linux*) ;; 438 *) targ_underscore=yes ;; 439 esac 440 want64=true 441 ;; 442#endif 443 444 crx-*-elf*) 445 targ_defvec=crx_elf32_vec 446 targ_underscore=yes 447 ;; 448 449 csky-*-elf* | csky-*-linux* ) 450 targ_defvec=csky_elf32_le_vec 451 targ_selvecs="csky_elf32_be_vec csky_elf32_le_vec" 452 ;; 453 454 d10v-*-*) 455 targ_defvec=d10v_elf32_vec 456 ;; 457 458 dlx-*-elf*) 459 targ_defvec=dlx_elf32_be_vec 460 targ_selvecs="dlx_elf32_be_vec" 461 ;; 462 463 d30v-*-*) 464 targ_defvec=d30v_elf32_vec 465 ;; 466 467#ifdef BFD64 468 bpf-*-none) 469 targ_defvec=bpf_elf64_le_vec 470 targ_selvecs=bpf_elf64_be_vec 471 targ_underscore=yes 472 ;; 473#endif 474 475 epiphany-*-*) 476 targ_defvec=epiphany_elf32_vec 477 targ_underscore=yes 478 ;; 479 480 fido-*-elf* ) 481 targ_defvec=m68k_elf32_vec 482 ;; 483 484 fr30-*-elf) 485 targ_defvec=fr30_elf32_vec 486 ;; 487 488 frv-*-elf) 489 targ_defvec=frv_elf32_vec 490 targ_selvecs=frv_elf32_fdpic_vec 491 ;; 492 493 frv-*-*linux*) 494 targ_defvec=frv_elf32_fdpic_vec 495 targ_selvecs=frv_elf32_vec 496 ;; 497 498 moxie-*-elf | moxie-*-rtems* | moxie-*-uclinux) 499 targ_defvec=moxie_elf32_be_vec 500 targ_selvecs=moxie_elf32_le_vec 501 ;; 502 503 moxie-*-moxiebox*) 504 targ_defvec=moxie_elf32_le_vec 505 ;; 506 507 h8300*-*-elf | h8300*-*-rtems*) 508 targ_defvec=h8300_elf32_vec 509 targ_underscore=yes 510 ;; 511 512 h8300*-*-linux*) 513 targ_defvec=h8300_elf32_linux_vec 514 ;; 515 516#ifdef BFD64 517 hppa*64*-*-linux-*) 518 targ_defvec=hppa_elf64_linux_vec 519 targ_selvecs=hppa_elf64_vec 520 want64=true 521 ;; 522 hppa*64*-*-hpux11*) 523 targ_defvec=hppa_elf64_vec 524 targ_selvecs=hppa_elf64_linux_vec 525 targ_cflags=-DHPUX_LARGE_AR_IDS 526 want64=true 527 ;; 528#endif 529 530 hppa*-*-linux-*) 531 targ_defvec=hppa_elf32_linux_vec 532 targ_selvecs=hppa_elf32_vec 533 ;; 534 hppa*-*-netbsd*) 535 targ_defvec=hppa_elf32_nbsd_vec 536 targ_selvecs="hppa_elf32_vec hppa_elf32_linux_vec" 537 ;; 538 hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-openbsd*) 539 targ_defvec=hppa_elf32_vec 540 targ_selvecs=hppa_elf32_linux_vec 541 ;; 542 543 hppa*-*-bsd*) 544 targ_defvec=hppa_som_vec 545 targ_selvecs=hppa_elf32_vec 546 ;; 547 hppa*-*-hpux* | hppa*-*-hiux* | hppa*-*-mpeix*) 548 targ_defvec=hppa_som_vec 549 ;; 550 hppa*-*-osf*) 551 targ_defvec=hppa_som_vec 552 targ_selvecs=hppa_elf32_vec 553 ;; 554 555 i[3-7]86-*-elf* | i[3-7]86-*-rtems* | i[3-7]86-*-genode*) 556 targ_defvec=i386_elf32_vec 557 targ_selvecs="iamcu_elf32_vec i386_coff_vec" 558 ;; 559 i[3-7]86-*-solaris2*) 560 targ_defvec=i386_elf32_sol2_vec 561 targ_selvecs="iamcu_elf32_vec i386_coff_vec i386_pei_vec" 562 targ64_selvecs="x86_64_elf64_sol2_vec l1om_elf64_vec k1om_elf64_vec x86_64_pe_vec x86_64_pei_vec" 563 want64=true 564 ;; 565#ifdef BFD64 566 x86_64-*-solaris2*) 567 targ_defvec=i386_elf32_sol2_vec 568 targ_selvecs="x86_64_elf64_sol2_vec l1om_elf64_vec k1om_elf64_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pe_vec x86_64_pei_vec" 569 want64=true 570 ;; 571#endif 572 i[3-7]86-*-nto*) 573 targ_defvec=i386_elf32_vec 574 targ_selvecs="iamcu_elf32_vec i386_coff_vec" 575 ;; 576 i[3-7]86-*-aros*) 577 targ_defvec=i386_elf32_vec 578 targ_selvecs=iamcu_elf32_vec 579 ;; 580 i[3-7]86-*-dicos*) 581 targ_defvec=i386_elf32_vec 582 targ_selvecs=iamcu_elf32_vec 583 targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec" 584 ;; 585 *-*-msdosdjgpp* | *-*-go32* ) 586 targ_defvec=i386_coff_go32_vec 587 targ_selvecs="i386_coff_go32stubbed_vec i386_aout_vec" 588 ;; 589 i[3-7]86-*-darwin* | i[3-7]86-*-macos10* | i[3-7]86-*-rhapsody*) 590 targ_defvec=i386_mach_o_vec 591 targ_selvecs="mach_o_le_vec mach_o_be_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" 592 targ64_selvecs=x86_64_mach_o_vec 593 targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch" 594 ;; 595 i[3-7]86-*-bsd*) 596 targ_defvec=i386_aout_bsd_vec 597 targ_underscore=yes 598 ;; 599 i[3-7]86-*-dragonfly*) 600 targ_defvec=i386_elf32_vec 601 targ_selvecs=iamcu_elf32_vec 602 targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec" 603 ;; 604 i[3-7]86-*-freebsd* | i[3-7]86-*-kfreebsd*-gnu) 605 targ_defvec=i386_elf32_fbsd_vec 606 targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_pei_vec i386_coff_vec" 607 targ64_selvecs="x86_64_elf64_fbsd_vec x86_64_elf64_vec x86_64_pe_vec x86_64_pei_vec l1om_elf64_vec l1om_elf64_fbsd_vec k1om_elf64_vec k1om_elf64_fbsd_vec" 608 # FreeBSD <= 4.0 supports only the old nonstandard way of ABI labelling. 609 case "${targ}" in 610 i[3-7]86-*-freebsd3* | i[3-7]86-*-freebsd4 | i[3-7]86-*-freebsd4.0*) 611 targ_cflags=-DOLD_FREEBSD_ABI_LABEL ;; 612 esac 613 ;; 614 i[3-7]86-*-netbsdelf* | i[3-7]86-*-netbsd*-gnu* | i[3-7]86-*-knetbsd*-gnu) 615 targ_defvec=i386_elf32_vec 616 targ_selvecs="iamcu_elf32_vec" 617 targ64_selvecs="x86_64_elf64_vec l1om_elf64_vec k1om_elf64_vec" 618 ;; 619 i[3-7]86-*-netbsdpe*) 620 targ_defvec=i386_pe_vec 621 targ_selvecs="i386_pe_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec" 622 ;; 623 i[3-7]86-*-openbsd*) 624 targ_defvec=i386_elf32_vec 625 targ_selvecs="iamcu_elf32_vec" 626 ;; 627 i[3-7]86-*-linux-*) 628 targ_defvec=i386_elf32_vec 629 targ_selvecs="iamcu_elf32_vec i386_pei_vec" 630 targ64_selvecs="x86_64_elf64_vec x86_64_elf32_vec x86_64_pe_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" 631 ;; 632 i[3-7]86-*-redox*) 633 targ_defvec=i386_elf32_vec 634 targ_selvecs= 635 targ64_selvecs=x86_64_elf64_vec 636 ;; 637#ifdef BFD64 638 x86_64-*-cloudabi*) 639 targ_defvec=x86_64_elf64_cloudabi_vec 640 want64=true 641 ;; 642 x86_64-*-darwin*) 643 targ_defvec=x86_64_mach_o_vec 644 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" 645 targ_archs="$targ_archs bfd_powerpc_arch bfd_rs6000_arch" 646 want64=true 647 ;; 648 x86_64-*-dicos*) 649 targ_defvec=x86_64_elf64_vec 650 targ_selvecs="i386_elf32_vec iamcu_elf32_vec l1om_elf64_vec k1om_elf64_vec" 651 want64=true 652 ;; 653 x86_64-*-elf* | x86_64-*-rtems* | x86_64-*-fuchsia | x86_64-*-genode*) 654 targ_defvec=x86_64_elf64_vec 655 targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec l1om_elf64_vec k1om_elf64_vec" 656 case "${targ}" in 657 x86_64-*-rtems*) 658 targ_selvecs="${targ_selvecs} x86_64_pe_vec x86_64_pei_vec" 659 esac 660 want64=true 661 ;; 662 x86_64-*-dragonfly*) 663 targ_defvec=x86_64_elf64_vec 664 targ_selvecs="i386_elf32_vec iamcu_elf32_vec l1om_elf64_vec k1om_elf64_vec" 665 want64=true 666 ;; 667 x86_64-*-freebsd* | x86_64-*-kfreebsd*-gnu) 668 targ_defvec=x86_64_elf64_fbsd_vec 669 targ_selvecs="i386_elf32_fbsd_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pe_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" 670 want64=true 671 ;; 672 x86_64-*-netbsd* | x86_64-*-openbsd*) 673 targ_defvec=x86_64_elf64_vec 674 targ_selvecs="i386_elf32_vec iamcu_elf32_vec i386_coff_vec i386_pei_vec x86_64_pe_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" 675 want64=true 676 ;; 677 x86_64-*-linux-*) 678 targ_defvec=x86_64_elf64_vec 679 targ_selvecs="i386_elf32_vec iamcu_elf32_vec x86_64_elf32_vec i386_pei_vec x86_64_pe_vec x86_64_pei_vec l1om_elf64_vec k1om_elf64_vec" 680 want64=true 681 ;; 682 x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin) 683 targ_defvec=x86_64_pe_vec 684 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" 685 want64=true 686 targ_underscore=no 687 ;; 688 x86_64-*-rdos*) 689 targ_defvec=x86_64_elf64_vec 690 want64=true 691 ;; 692 x86_64-*-redox*) 693 targ_defvec=x86_64_elf64_vec 694 targ_selvecs=i386_elf32_vec 695 want64=true 696 ;; 697#endif 698 i[3-7]86-*-lynxos*) 699 targ_defvec=i386_elf32_vec 700 targ_selvecs="iamcu_elf32_vec i386_coff_lynx_vec i386_aout_lynx_vec" 701 ;; 702 i[3-7]86-*-gnu*) 703 targ_defvec=i386_elf32_vec 704 targ_selvecs=iamcu_elf32_vec 705 ;; 706 i[3-7]86-*-msdos*) 707 targ_defvec=i386_aout_vec 708 targ_selvecs=i386_msdos_vec 709 ;; 710 i[3-7]86-*-moss*) 711 targ_defvec=i386_elf32_vec 712 targ_selvecs="iamcu_elf32_vec i386_msdos_vec i386_aout_vec" 713 ;; 714 i[3-7]86-*-beospe*) 715 targ_defvec=i386_pe_vec 716 targ_selvecs="i386_pe_vec i386_pei_vec" 717 ;; 718 i[3-7]86-*-beoself* | i[3-7]86-*-beos*) 719 targ_defvec=i386_elf32_vec 720 targ_selvecs="iamcu_elf32_vec i386_pe_vec i386_pei_vec" 721 ;; 722 i[3-7]86-*-interix*) 723 targ_defvec=i386_pei_vec 724 targ_selvecs="i386_pe_vec" 725 # FIXME: This should eventually be checked at runtime. 726 targ_cflags=-DSTRICT_PE_FORMAT 727 ;; 728 i[3-7]86-*-rdos*) 729 targ_defvec=i386_elf32_vec 730 targ_selvecs="iamcu_elf32_vec i386_coff_vec" 731 ;; 732 i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe) 733 targ_defvec=i386_pe_vec 734 targ_selvecs="i386_pe_vec i386_pe_big_vec i386_pei_vec i386_elf32_vec iamcu_elf32_vec" 735 targ_underscore=yes 736 ;; 737 i[3-7]86-*-vxworks*) 738 targ_defvec=i386_elf32_vxworks_vec 739 targ_underscore=yes 740 ;; 741 742 ia16-*-elf) 743 targ_defvec=i386_elf32_vec 744 targ_selvecs="i386_msdos_vec i386_aout_vec" 745 ;; 746 747 ip2k-*-elf) 748 targ_defvec=ip2k_elf32_vec 749 targ_underscore=yes 750 ;; 751 752 iq2000-*-elf) 753 targ_defvec=iq2000_elf32_vec 754 ;; 755 756 lm32-*-elf | lm32-*-rtems*) 757 targ_defvec=lm32_elf32_vec 758 targ_selvecs=lm32_elf32_fdpic_vec 759 ;; 760 761 lm32-*-*linux*) 762 targ_defvec=lm32_elf32_fdpic_vec 763 targ_selvecs=lm32_elf32_vec 764 ;; 765 766 m32c-*-elf | m32c-*-rtems*) 767 targ_defvec=m32c_elf32_vec 768 targ_underscore=yes 769 ;; 770 771 m32r*le-*-linux*) 772 targ_defvec=m32r_elf32_linux_le_vec 773 targ_selvecs="m32r_elf32_linux_vec m32r_elf32_linux_le_vec" 774 ;; 775 m32r*-*-linux*) 776 targ_defvec=m32r_elf32_linux_vec 777 targ_selvecs="m32r_elf32_linux_vec m32r_elf32_linux_le_vec" 778 ;; 779 m32r*le-*-*) 780 targ_defvec=m32r_elf32_le_vec 781 targ_selvecs="m32r_elf32_vec m32r_elf32_le_vec" 782 ;; 783 m32r-*-*) 784 targ_defvec=m32r_elf32_vec 785 ;; 786 787 m68hc11-*-* | m6811-*-*) 788 targ_defvec=m68hc11_elf32_vec 789 targ_selvecs="m68hc11_elf32_vec m68hc12_elf32_vec" 790 ;; 791 m68hc12-*-* | m6812-*-*) 792 targ_defvec=m68hc12_elf32_vec 793 targ_selvecs="m68hc11_elf32_vec m68hc12_elf32_vec" 794 ;; 795 796 m68*-*-*) 797 targ_defvec=m68k_elf32_vec 798 ;; 799 800 s12z-*-*) 801 targ_defvec=s12z_elf32_vec 802 ;; 803 mcore-*-elf) 804 targ_defvec=mcore_elf32_be_vec 805 targ_selvecs="mcore_elf32_be_vec mcore_elf32_le_vec" 806 ;; 807 mcore-*-pe) 808 targ_defvec=mcore_pe_be_vec 809 targ_selvecs="mcore_pe_be_vec mcore_pe_le_vec mcore_pei_be_vec mcore_pei_le_vec" 810 ;; 811 812 mep-*-elf) 813 targ_defvec=mep_elf32_vec 814 targ_selvecs=mep_elf32_le_vec 815 ;; 816 817 metag-*-*) 818 targ_defvec=metag_elf32_vec 819 targ_underscore=yes 820 ;; 821 822 microblazeel*-*) 823 targ_defvec=microblaze_elf32_le_vec 824 targ_selvecs=microblaze_elf32_vec 825 ;; 826 827 microblaze*-*) 828 targ_defvec=microblaze_elf32_vec 829 targ_selvecs=microblaze_elf32_le_vec 830 ;; 831 832#ifdef BFD64 833 mips*el-*-netbsd*) 834 targ_defvec=mips_elf32_trad_le_vec 835 targ_selvecs="mips_elf32_trad_be_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_le_vec mips_ecoff_be_vec" 836 ;; 837 mips*-*-netbsd*) 838 targ_defvec=mips_elf32_trad_be_vec 839 targ_selvecs="mips_elf32_trad_le_vec mips_elf64_trad_be_vec mips_elf64_trad_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" 840 ;; 841 mips*-*-irix6*) 842 targ_defvec=mips_elf32_n_be_vec 843 targ_selvecs="mips_elf32_n_le_vec mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec" 844 ;; 845 mips64*-ps2-elf*) 846 targ_defvec=mips_elf32_n_le_vec 847 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" 848 ;; 849 mips*-ps2-elf*) 850 targ_defvec=mips_elf32_le_vec 851 targ_selvecs="mips_elf32_be_vec mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec" 852 ;; 853 mips*-*-irix5*) 854 targ_defvec=mips_elf32_be_vec 855 targ_selvecs="mips_elf32_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" 856 ;; 857 mips*el-*-vxworks*) 858 targ_defvec=mips_elf32_vxworks_le_vec 859 targ_selvecs="mips_elf32_le_vec mips_elf32_vxworks_be_vec mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec" 860 ;; 861 mips*-*-vxworks*) 862 targ_defvec=mips_elf32_vxworks_be_vec 863 targ_selvecs="mips_elf32_be_vec mips_elf32_vxworks_le_vec mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec" 864 ;; 865 mips*el-sde-elf*) 866 targ_defvec=mips_elf32_trad_le_vec 867 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" 868 ;; 869 mips*-sde-elf* | mips*-mti-elf* | mips*-img-elf*) 870 targ_defvec=mips_elf32_trad_be_vec 871 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" 872 ;; 873 mips*el-*-elf* | mips*-*-chorus*) 874 targ_defvec=mips_elf32_le_vec 875 targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec" 876 ;; 877 mips*-*-elf* | mips*-*-rtems* | mips*-*-windiss | mips*-*-none) 878 targ_defvec=mips_elf32_be_vec 879 targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec" 880 ;; 881 mips64*-*-openbsd*) 882 targ_defvec=mips_elf64_trad_be_vec 883 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" 884 ;; 885 mips*el-*-openbsd*) 886 targ_defvec=mips_elf32_le_vec 887 targ_selvecs="mips_elf32_be_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_le_vec mips_ecoff_be_vec" 888 ;; 889 mips*-*-openbsd*) 890 targ_defvec=mips_elf32_be_vec 891 targ_selvecs="mips_elf32_le_vec mips_elf64_be_vec mips_elf64_le_vec mips_ecoff_be_vec mips_ecoff_le_vec" 892 ;; 893 mips64*el-*-linux*) 894 targ_defvec=mips_elf32_ntrad_le_vec 895 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" 896 ;; 897 mips64*-*-linux*) 898 targ_defvec=mips_elf32_ntrad_be_vec 899 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" 900 ;; 901 mips*el-*-linux*) 902 targ_defvec=mips_elf32_trad_le_vec 903 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" 904 ;; 905 mips*-*-linux*) 906 targ_defvec=mips_elf32_trad_be_vec 907 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" 908 ;; 909 mips64*el-*-freebsd* | mips64*el-*-kfreebsd*-gnu) 910 # FreeBSD vectors 911 targ_defvec=mips_elf32_ntradfbsd_le_vec 912 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" 913 # Generic vectors 914 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" 915 ;; 916 mips64*-*-freebsd* | mips64*-*-kfreebsd*-gnu) 917 # FreeBSD vectors 918 targ_defvec=mips_elf32_ntradfbsd_be_vec 919 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" 920 # Generic vectors 921 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" 922 ;; 923 mips*el-*-freebsd* | mips*el-*-kfreebsd*-gnu) 924 # FreeBSD vectors 925 targ_defvec=mips_elf32_tradfbsd_le_vec 926 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" 927 # Generic vectors 928 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" 929 ;; 930 mips*-*-freebsd* | mips*-*-kfreebsd*-gnu) 931 # FreeBSD vectors 932 targ_defvec=mips_elf32_tradfbsd_be_vec 933 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" 934 # Generic vectors 935 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" 936 ;; 937 mmix-*-*) 938 targ_defvec=mmix_elf64_vec 939 targ_selvecs=mmix_mmo_vec 940 want64=true 941 ;; 942#endif 943 mn10200-*-*) 944 targ_defvec=mn10200_elf32_vec 945 targ_underscore=yes 946 ;; 947 948 mn10300-*-*) 949 targ_defvec=mn10300_elf32_vec 950 targ_underscore=yes 951 ;; 952 953 mt-*-elf) 954 targ_defvec=mt_elf32_vec 955 ;; 956 957 msp430-*-*) 958 targ_defvec=msp430_elf32_vec 959 targ_selvecs=msp430_elf32_ti_vec 960 ;; 961 962 nds32*le-*-linux*) 963 targ_defvec=nds32_elf32_linux_le_vec 964 targ_selvecs=nds32_elf32_linux_be_vec 965 ;; 966 967 nds32*be-*-linux*) 968 targ_defvec=nds32_elf32_linux_be_vec 969 targ_selvecs=nds32_elf32_linux_le_vec 970 ;; 971 972 nds32*le-*-*) 973 targ_defvec=nds32_elf32_le_vec 974 targ_selvecs=nds32_elf32_be_vec 975 ;; 976 977 nds32*be-*-*) 978 targ_defvec=nds32_elf32_be_vec 979 targ_selvecs=nds32_elf32_le_vec 980 ;; 981 982#ifdef BFD64 983 nfp-*-*) 984 targ_defvec=nfp_elf64_vec 985 ;; 986#endif 987 988 ns32k-pc532-mach* | ns32k-pc532-ux*) 989 targ_defvec=ns32k_aout_pc532mach_vec 990 targ_underscore=yes 991 ;; 992 ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*) 993 targ_defvec=ns32k_aout_pc532nbsd_vec 994 targ_underscore=yes 995 ;; 996 997 nios2eb-*-*) 998 targ_defvec=nios2_elf32_be_vec 999 targ_selvecs=nios2_elf32_le_vec 1000 ;; 1001 1002 nios2el-*-*) 1003 targ_defvec=nios2_elf32_le_vec 1004 targ_selvecs=nios2_elf32_be_vec 1005 ;; 1006 1007 nios2-*-*) 1008 targ_defvec=nios2_elf32_le_vec 1009 targ_selvecs=nios2_elf32_be_vec 1010 ;; 1011 1012 or1k-*-elf | or1k-*-linux* | or1k-*-rtems*) 1013 targ_defvec=or1k_elf32_vec 1014 ;; 1015 1016 or1knd-*-elf | or1knd-*-linux* | or1knd-*-rtems*) 1017 targ_defvec=or1k_elf32_vec 1018 ;; 1019 1020 pdp11-*-*) 1021 targ_defvec=pdp11_aout_vec 1022 targ_underscore=yes 1023 ;; 1024 1025 pj-*-*) 1026 targ_defvec=pj_elf32_vec 1027 targ_selvecs="pj_elf32_vec pj_elf32_le_vec" 1028 ;; 1029 1030 pjl-*-*) 1031 targ_defvec=pj_elf32_le_vec 1032 targ_selvecs="pj_elf32_le_vec pj_elf32_vec i386_elf32_vec iamcu_elf32_vec" 1033 ;; 1034 1035 powerpc-*-aix5.[01] | rs6000-*-aix5.[01]) 1036 targ_defvec=rs6000_xcoff_vec 1037 targ_selvecs="rs6000_xcoff64_aix_vec" 1038 want64=true 1039 ;; 1040#ifdef BFD64 1041 powerpc64-*-aix5.[01]) 1042 targ_defvec=rs6000_xcoff64_aix_vec 1043 targ_selvecs="rs6000_xcoff_vec" 1044 want64=true 1045 ;; 1046#endif 1047 powerpc-*-aix[5-9]* | rs6000-*-aix[5-9]*) 1048 targ_cflags=-DAIX_WEAK_SUPPORT 1049 targ_defvec=rs6000_xcoff_vec 1050 targ_selvecs="rs6000_xcoff64_aix_vec" 1051 want64=true 1052 ;; 1053#ifdef BFD64 1054 powerpc64-*-aix[5-9]*) 1055 targ_cflags=-DAIX_WEAK_SUPPORT 1056 targ_defvec=rs6000_xcoff64_aix_vec 1057 targ_selvecs="rs6000_xcoff_vec" 1058 want64=true 1059 ;; 1060#endif 1061 1062 powerpc-*-aix* | powerpc-*-beos* | rs6000-*-*) 1063 targ_defvec=rs6000_xcoff_vec 1064 targ64_selvecs=rs6000_xcoff64_vec 1065 case "${targ}" in 1066 *-*-aix4.[3456789]* | *-*-aix[56789]*) 1067 want64=true;; 1068 *) 1069 targ_cflags=-DSMALL_ARCHIVE;; 1070 esac 1071 ;; 1072#ifdef BFD64 1073 powerpc64-*-aix*) 1074 targ_defvec=rs6000_xcoff64_vec 1075 targ_selvecs=rs6000_xcoff_vec 1076 want64=true 1077 ;; 1078 powerpc64-*-freebsd*) 1079 targ_defvec=powerpc_elf64_fbsd_vec 1080 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" 1081 want64=true 1082 ;; 1083 powerpc64le-*-freebsd*) 1084 targ_defvec=powerpc_elf64_fbsd_le_vec 1085 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" 1086 want64=true 1087 ;; 1088 powerpc64-*-elf* | powerpc-*-elf64* | powerpc64-*-linux* | \ 1089 powerpc64-*-*bsd*) 1090 targ_defvec=powerpc_elf64_vec 1091 targ_selvecs="powerpc_elf64_le_vec powerpc_elf32_vec powerpc_elf32_le_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec" 1092 want64=true 1093 ;; 1094 powerpc64le-*-elf* | powerpcle-*-elf64* | powerpc64le-*-linux* | \ 1095 powerpc64le-*-*bsd*) 1096 targ_defvec=powerpc_elf64_le_vec 1097 targ_selvecs="powerpc_elf64_vec powerpc_elf32_le_vec powerpc_elf32_vec rs6000_xcoff_vec rs6000_xcoff64_vec rs6000_xcoff64_aix_vec" 1098 want64=true 1099 ;; 1100#endif 1101 powerpc-*-*freebsd*) 1102 targ_defvec=powerpc_elf32_fbsd_vec 1103 targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_elf32_le_vec powerpc_boot_vec" 1104 targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec powerpc_elf64_fbsd_vec" 1105 ;; 1106 powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \ 1107 powerpc-*-solaris2* | powerpc-*-linux-* | powerpc-*-rtems* | \ 1108 powerpc-*-chorus*) 1109 targ_defvec=powerpc_elf32_vec 1110 targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec" 1111 targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec" 1112 ;; 1113 powerpc-*-kaos*) 1114 targ_defvec=powerpc_elf32_vec 1115 targ_selvecs="powerpc_elf32_le_vec powerpc_boot_vec" 1116 targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec" 1117 ;; 1118 powerpc-*-darwin* | powerpc-*-macos10* | powerpc-*-rhapsody*) 1119 targ_defvec=mach_o_be_vec 1120 targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" 1121 targ_archs="$targ_archs bfd_i386_arch" 1122 ;; 1123 powerpc-*-macos*) 1124 targ_defvec=powerpc_xcoff_vec 1125 ;; 1126 powerpc-*-lynxos*) 1127 targ_defvec=powerpc_elf32_vec 1128 targ_selvecs="rs6000_xcoff_vec" 1129 targ_cflags=-DSMALL_ARCHIVE 1130 ;; 1131 powerpc-*-nto*) 1132 targ_defvec=powerpc_elf32_vec 1133 targ_selvecs="rs6000_xcoff_vec powerpc_elf32_le_vec powerpc_boot_vec" 1134 ;; 1135 powerpc-*-vxworks* | powerpc-*-windiss*) 1136 targ_defvec=powerpc_elf32_vxworks_vec 1137 targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_elf32_le_vec powerpc_boot_vec" 1138 targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec" 1139 ;; 1140 powerpcle-*-nto*) 1141 targ_defvec=powerpc_elf32_le_vec 1142 targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_boot_vec" 1143 ;; 1144 powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \ 1145 powerpcle-*-solaris2* | powerpcle-*-linux-* | powerpcle-*-vxworks*) 1146 targ_defvec=powerpc_elf32_le_vec 1147 targ_selvecs="rs6000_xcoff_vec powerpc_elf32_vec powerpc_boot_vec" 1148 targ64_selvecs="powerpc_elf64_vec powerpc_elf64_le_vec" 1149 ;; 1150 1151 pru-*-*) 1152 targ_defvec=pru_elf32_vec 1153 ;; 1154 1155#ifdef BFD64 1156 riscvbe-*-* | riscv32be*-*-*) 1157 targ_defvec=riscv_elf32_be_vec 1158 targ_selvecs="riscv_elf32_vec riscv_elf64_vec riscv_elf32_be_vec riscv_elf64_be_vec" 1159 want64=true 1160 ;; 1161 riscv-*-* | riscv32*-*-*) 1162 targ_defvec=riscv_elf32_vec 1163 targ_selvecs="riscv_elf32_vec riscv_elf64_vec riscv_elf32_be_vec riscv_elf64_be_vec" 1164 want64=true 1165 ;; 1166 riscv64be*-*-*) 1167 targ_defvec=riscv_elf64_be_vec 1168 targ_selvecs="riscv_elf32_vec riscv_elf64_vec riscv_elf32_be_vec riscv_elf64_be_vec" 1169 want64=true 1170 ;; 1171 riscv64*-*-*) 1172 targ_defvec=riscv_elf64_vec 1173 targ_selvecs="riscv_elf32_vec riscv_elf64_vec riscv_elf32_be_vec riscv_elf64_be_vec" 1174 want64=true 1175 ;; 1176#endif 1177 1178 rl78-*-elf) 1179 targ_defvec=rl78_elf32_vec 1180 targ_underscore=yes 1181 ;; 1182 1183 rx-*-elf) 1184 targ_defvec=rx_elf32_le_vec 1185 targ_selvecs="rx_elf32_be_vec rx_elf32_le_vec rx_elf32_be_ns_vec" 1186 targ_underscore=yes 1187 ;; 1188 rx-*-linux*) 1189 targ_defvec=rx_elf32_linux_le_vec 1190 targ_selvecs="rx_elf32_linux_le_vec" 1191 ;; 1192 1193 s390-*-linux*) 1194 targ_defvec=s390_elf32_vec 1195 targ64_selvecs=s390_elf64_vec 1196 want64=true 1197 ;; 1198#ifdef BFD64 1199 s390x-*-linux*) 1200 targ_defvec=s390_elf64_vec 1201 targ_selvecs=s390_elf32_vec 1202 want64=true 1203 ;; 1204 s390x-*-tpf*) 1205 targ_defvec=s390_elf64_vec 1206 want64=true 1207 ;; 1208 1209 score*-*-elf*) 1210 targ_defvec=score_elf32_be_vec 1211 targ_selvecs=score_elf32_le_vec 1212 ;; 1213#endif /* BFD64 */ 1214 1215 sh*eb-*-linux*) 1216 targ_defvec=sh_elf32_linux_be_vec 1217 targ_selvecs=sh_elf32_linux_vec 1218 targ_selvecs="${targ_selvecs} sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec" 1219 ;; 1220 sh*-*-linux*) 1221 targ_defvec=sh_elf32_linux_vec 1222 targ_selvecs=sh_elf32_linux_be_vec 1223 targ_selvecs="${targ_selvecs} sh_elf32_fdpic_le_vec sh_elf32_fdpic_be_vec" 1224 ;; 1225 1226 sh-*-uclinux* | sh[12]-*-uclinux*) 1227 targ_defvec=sh_elf32_vec 1228 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" 1229 ;; 1230 1231 sh*l*-*-netbsdelf*) 1232 targ_defvec=sh_elf32_nbsd_le_vec 1233 targ_selvecs="sh_elf32_nbsd_vec sh_coff_vec sh_coff_le_vec" 1234 ;; 1235 sh*-*-netbsdelf*) 1236 targ_defvec=sh_elf32_nbsd_vec 1237 targ_selvecs="sh_elf32_nbsd_le_vec sh_coff_vec sh_coff_le_vec" 1238 ;; 1239 1240 shl*-*-elf* | sh[1234]l*-*-elf* | sh3el*-*-elf* | shl*-*-kaos*) 1241 targ_defvec=sh_elf32_le_vec 1242 targ_selvecs="sh_elf32_vec sh_coff_le_vec sh_coff_vec sh_coff_small_le_vec sh_coff_small_vec" 1243 targ_underscore=yes 1244 ;; 1245 1246 sh-*-elf* | sh[1234]*-elf* | sh-*-rtems* | sh-*-kaos*) 1247 targ_defvec=sh_elf32_vec 1248 targ_selvecs="sh_elf32_le_vec sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec" 1249 targ_underscore=yes 1250 ;; 1251 1252 sh-*-nto*) 1253 targ_defvec=sh_elf32_vec 1254 targ_selvecs="sh_elf32_le_vec sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec" 1255 targ_underscore=yes 1256 ;; 1257 sh*-*-openbsd*) 1258 targ_defvec=sh_elf32_nbsd_le_vec 1259 targ_selvecs="sh_elf32_nbsd_vec sh_coff_vec sh_coff_le_vec" 1260 ;; 1261 sh-*-pe) 1262 targ_defvec=sh_pe_le_vec 1263 targ_selvecs="sh_pe_le_vec sh_pei_le_vec" 1264 targ_underscore=yes 1265 ;; 1266 sh-*-vxworks) 1267 targ_defvec=sh_elf32_vxworks_vec 1268 targ_selvecs="sh_elf32_vxworks_le_vec" 1269 # FIXME None of the following are actually used on this target, but 1270 # they're necessary for coff-sh.c (which is unconditionally used) to be 1271 # compiled correctly. 1272 targ_selvecs="$targ_selvecs sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec" 1273 targ_underscore=yes 1274 ;; 1275 sh-*-*) 1276 targ_defvec=sh_coff_vec 1277 targ_selvecs="sh_coff_vec sh_coff_le_vec sh_coff_small_vec sh_coff_small_le_vec" 1278 targ_underscore=yes 1279 ;; 1280 1281 sparc-*-solaris2.[0-6] | sparc-*-solaris2.[0-6].*) 1282 # PR 27666: Do not include sparc_elf32_vec here. 1283 targ_defvec=sparc_elf32_sol2_vec 1284 ;; 1285#ifdef BFD64 1286 sparc-*-solaris2* | sparcv9-*-solaris2* | sparc64-*-solaris2*) 1287 # PR 27666: Do not include sparc_elf32_vec or sparc_elf64_vec here. 1288 targ_defvec=sparc_elf32_sol2_vec 1289 targ_selvecs="sparc_elf64_sol2_vec" 1290 want64=true 1291 ;; 1292 sparc64-*-freebsd* | sparc64-*-kfreebsd*-gnu) 1293 targ_defvec=sparc_elf64_fbsd_vec 1294 targ_selvecs="sparc_elf64_vec sparc_elf32_vec" 1295 ;; 1296 sparc64*-*-*) 1297 targ_defvec=sparc_elf64_vec 1298 targ_selvecs="sparc_elf32_vec" 1299 want64=true 1300 ;; 1301#endif 1302 sparc-*-linux-* | sparcv*-*-linux-*) 1303 targ_defvec=sparc_elf32_vec 1304 targ_selvecs="sparc_elf64_vec" 1305 ;; 1306 sparc-*-vxworks*) 1307 targ_defvec=sparc_elf32_vxworks_vec 1308 targ_selvecs="sparc_elf32_vec" 1309 ;; 1310 sparc*-*-*) 1311 targ_defvec=sparc_elf32_vec 1312 ;; 1313 1314 spu-*-elf) 1315 targ_defvec=spu_elf32_vec 1316 want64=true 1317 ;; 1318 1319 tic6x-*-elf) 1320 targ_defvec=tic6x_elf32_c6000_le_vec 1321 targ_selvecs="tic6x_elf32_c6000_be_vec tic6x_elf32_le_vec tic6x_elf32_be_vec" 1322 ;; 1323 1324 tic6x-*-uclinux) 1325 targ_defvec=tic6x_elf32_linux_le_vec 1326 targ_selvecs="tic6x_elf32_linux_be_vec tic6x_elf32_le_vec tic6x_elf32_be_vec" 1327 ;; 1328 1329#ifdef BFD64 1330 tilegx-*-*) 1331 targ_defvec=tilegx_elf64_le_vec 1332 targ_selvecs="tilegx_elf64_be_vec tilegx_elf32_be_vec tilegx_elf32_le_vec" 1333 ;; 1334 tilegxbe-*-*) 1335 targ_defvec=tilegx_elf64_be_vec 1336 targ_selvecs="tilegx_elf64_le_vec tilegx_elf32_be_vec tilegx_elf32_le_vec" 1337 ;; 1338#endif 1339 1340 tilepro-*-*) 1341 targ_defvec=tilepro_elf32_vec 1342 ;; 1343 1344 ft32*-*-*) 1345 targ_defvec=ft32_elf32_vec 1346 ;; 1347 1348 v850*-*-*) 1349 targ_defvec=v850_elf32_vec 1350 targ_selvecs="v800_elf32_vec" 1351 targ_underscore=yes 1352 ;; 1353 1354 vax-*-netbsdelf*) 1355 targ_defvec=vax_elf32_vec 1356 targ_selvecs="vax_aout_nbsd_vec vax_aout_1knbsd_vec" 1357 ;; 1358 1359 vax-*-netbsdaout* | vax-*-netbsd*) 1360 targ_defvec=vax_aout_nbsd_vec 1361 targ_selvecs="vax_elf32_vec vax_aout_1knbsd_vec" 1362 targ_underscore=yes 1363 ;; 1364 1365 vax-*-openbsd*) 1366 targ_defvec=vax_aout_nbsd_vec 1367 targ_underscore=yes 1368 ;; 1369 1370 vax-*-linux-*) 1371 targ_defvec=vax_elf32_vec 1372 ;; 1373 1374 visium-*-elf) 1375 targ_defvec=visium_elf32_vec 1376 ;; 1377 1378 wasm32-*-*) 1379 targ_defvec=wasm32_elf32_vec 1380 targ_selvecs="wasm_vec" 1381 ;; 1382 1383 xc16x-*-elf) 1384 targ_defvec=xc16x_elf32_vec 1385 ;; 1386 1387 xgate-*-*) 1388 targ_defvec=xgate_elf32_vec 1389 targ_selvecs="xgate_elf32_vec" 1390 ;; 1391 1392 xstormy16-*-elf) 1393 targ_defvec=xstormy16_elf32_vec 1394 ;; 1395 1396 xtensa*-*-*) 1397 targ_defvec=xtensa_elf32_le_vec 1398 targ_selvecs=xtensa_elf32_be_vec 1399 ;; 1400 1401 z80-*-coff) 1402 targ_defvec=z80_coff_vec 1403 targ_underscore=no 1404 ;; 1405 1406 z80-*-elf) 1407 targ_defvec=z80_elf32_vec 1408 targ_underscore=no 1409 ;; 1410 1411 z8k*-*-*) 1412 targ_defvec=z8k_coff_vec 1413 targ_underscore=yes 1414 ;; 1415 1416# END OF targmatch.h 1417 bpf-*-*) 1418 echo "*** Configuration $targ is not fully supported." >&2 1419 echo "*** Use bpf or bpf-*-none as the target instead." >&2 1420 exit 1 1421 ;; 1422 1423 *) 1424 echo 1>&2 "*** BFD does not support target ${targ}." 1425 echo 1>&2 "*** Look in bfd/config.bfd for supported targets." 1426 exit 1 1427 ;; 1428esac 1429 1430# All MIPS ELF targets need a 64-bit bfd_vma. 1431case "${targ_defvec} ${targ_selvecs}" in 1432 *mips_elf*) 1433 want64=true 1434 ;; 1435esac 1436 1437case "${host64}${want64}" in 1438 *true*) 1439 targ_selvecs="${targ_selvecs} ${targ64_selvecs}" 1440 ;; 1441esac 1442 1443# If we support any ELF target, then automatically add support for the 1444# generic ELF targets. This permits an objdump with some ELF support 1445# to be used on an arbitrary ELF file for anything other than 1446# relocation information. 1447case "${targ_defvec} ${targ_selvecs}" in 1448 *elf64* | *mips_elf32_n*) 1449 targ_selvecs="${targ_selvecs} elf64_le_vec elf64_be_vec elf32_le_vec elf32_be_vec" 1450 ;; 1451 *elf32*) 1452 targ_selvecs="${targ_selvecs} elf32_le_vec elf32_be_vec" 1453 ;; 1454esac 1455 1456# If we support Intel MCU target, then add support for bfd_iamcu_arch. 1457case "${targ_defvec} ${targ_selvecs}" in 1458 *iamcu_elf32*) 1459 targ_archs="$targ_archs bfd_iamcu_arch" 1460 ;; 1461esac 1462 1463# If we support Intel L1OM target, then add support for bfd_l1om_arch. 1464case "${targ_defvec} ${targ_selvecs}" in 1465 *l1om_elf64*) 1466 targ_archs="$targ_archs bfd_l1om_arch" 1467 ;; 1468esac 1469 1470# If we support Intel K1OM target, then add support for bfd_k1om_arch. 1471case "${targ_defvec} ${targ_selvecs}" in 1472 *k1om_elf64*) 1473 targ_archs="$targ_archs bfd_k1om_arch" 1474 ;; 1475esac 1476