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