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