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