config.bfd revision 33965
1# config.bfd 2# Convert a canonical host type into a BFD host type. 3# Set shell variable targ to canonical target name, and run 4# using ``. config.bfd''. 5# Sets the following shell variables: 6# targ_defvec Default vector for this target 7# targ_selvecs Vectors to build for this target 8# targ_archs Architectures for this target 9# targ_cflags $(CFLAGS) for this target (FIXME: pretty bogus) 10# targ_underscore Whether underscores are used: yes or no 11 12# Part of this file is processed by targmatch.sed to generate the 13# targmatch.h file. The #ifdef and #endif lines that appear below are 14# copied directly into targmatch.h. 15 16# The binutils c++filt program wants to know whether underscores are 17# stripped or not. That is why we set targ_underscore. c++filt uses 18# this information to choose a default. This information is 19# duplicated in the symbol_leading_char field of the BFD target 20# vector, but c++filt does not deal with object files and is not 21# linked against libbfd.a. It is not terribly important that c++filt 22# get this right; it is just convenient. 23 24targ_defvec= 25targ_selvecs= 26targ_cflags= 27targ_underscore=no 28 29targ_cpu=`echo $targ | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` 30case "${targ_cpu}" in 31arm*) targ_archs=bfd_arm_arch ;; 32hppa*) targ_archs=bfd_hppa_arch ;; 33i[3456]86) targ_archs=bfd_i386_arch ;; 34m68*) targ_archs=bfd_m68k_arch ;; 35m88*) targ_archs=bfd_m88k_arch ;; 36mips*) targ_archs=bfd_mips_arch ;; 37powerpc*) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;; 38rs6000) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;; 39sparc*) targ_archs=bfd_sparc_arch ;; 40z8k*) targ_archs=bfd_z8k_arch ;; 41*) targ_archs=bfd_${targ_cpu}_arch ;; 42esac 43 44# WHEN ADDING ENTRIES TO THIS MATRIX: 45# Make sure that the left side always has two dashes. Otherwise you 46# can get spurious matches. Even for unambiguous cases, do this as a 47# convention, else the table becomes a real mess to understand and maintain. 48 49case "${targ}" in 50# START OF targmatch.h 51#ifdef BFD64 52 alpha-*-netware*) 53 targ_defvec=ecoffalpha_little_vec 54 targ_selvecs=nlm32_alpha_vec 55 ;; 56 alpha-*-linuxecoff*) 57 targ_defvec=ecoffalpha_little_vec 58 targ_selvecs=bfd_elf64_alpha_vec 59 ;; 60 alpha-*-linux* | alpha-*-elf*) 61 targ_defvec=bfd_elf64_alpha_vec 62 targ_selvecs=ecoffalpha_little_vec 63 ;; 64 alpha-*-*vms*) 65 targ_defvec=evax_alpha_vec 66 ;; 67 alpha-*-*) 68 targ_defvec=ecoffalpha_little_vec 69 ;; 70#endif /* BFD64 */ 71 72 arm-*-riscix*) 73 targ_defvec=riscix_vec 74 ;; 75 arm-*-pe*) 76 targ_defvec=armpe_little_vec 77 targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec" 78 targ_underscore=yes 79 ;; 80 arm-*-aout | armel-*-aout) 81 targ_defvec=aout_arm_little_vec 82 targ_selvecs=aout_arm_big_vec 83 ;; 84 armeb-*-aout) 85 targ_defvec=aout_arm_big_vec 86 targ_selvecs=aout_arm_little_vec 87 ;; 88 arm-*-coff) 89 targ_defvec=armcoff_little_vec 90 targ_selvecs=armcoff_big_vec 91 targ_underscore=yes 92 ;; 93 94 a29k-*-ebmon* | a29k-*-udi* | a29k-*-coff* | a29k-*-sym1* | \ 95 a29k-*-vxworks* | a29k-*-sysv*) 96 targ_defvec=a29kcoff_big_vec 97 targ_selvecs=sunos_big_vec 98 targ_underscore=yes 99 ;; 100 a29k-*-aout* | a29k-*-bsd* | a29k-*-vsta*) 101 targ_defvec=sunos_big_vec 102 targ_underscore=yes 103 ;; 104 105 d10v-*-*) 106 targ_defvec=bfd_elf32_d10v_vec 107 ;; 108 109 110 h8300*-*-*) 111 targ_defvec=h8300coff_vec 112 targ_underscore=yes 113 ;; 114 115 h8500-*-*) 116 targ_defvec=h8500coff_vec 117 targ_underscore=yes 118 ;; 119 120 hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4* | hppa*-*-rtems*) 121 targ_defvec=bfd_elf32_hppa_vec 122 ;; 123#if defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) 124 hppa*-*-bsd*) 125 targ_defvec=som_vec 126 targ_selvecs=bfd_elf32_hppa_vec 127 ;; 128 hppa*-*-hpux* | hppa*-*-hiux*) 129 targ_defvec=som_vec 130 ;; 131 hppa*-*-osf*) 132 targ_defvec=som_vec 133 targ_selvecs=bfd_elf32_hppa_vec 134 ;; 135#endif /* defined (HOST_HPPAHPUX) || defined (HOST_HPPABSD) || defined (HOST_HPPAOSF) */ 136 137 i[3456]86-*-sysv4* | i[3456]86-*-unixware | i[3456]86-*-solaris2* | \ 138 i[3456]86-*-elf | i[3456]86-*-sco*elf* | i[3456]86-*-freebsdelf* | \ 139 i[3456]86-*-dgux*) 140 targ_defvec=bfd_elf32_i386_vec 141 targ_selvecs=i386coff_vec 142 ;; 143 i[3456]86-*-sysv* | i[3456]86-*-isc* | i[3456]86-*-sco* | i[3456]86-*-coff | \ 144 i[3456]86-*-aix* | i[3456]86-*-go32* | i[3456]86*-*-rtems*) 145 targ_defvec=i386coff_vec 146 ;; 147 i[3456]86-sequent-bsd*) 148 targ_defvec=i386dynix_vec 149 targ_underscore=yes 150 ;; 151 i[3456]86-*-bsd*) 152 targ_defvec=i386bsd_vec 153 targ_underscore=yes 154 ;; 155 i[3456]86-*-freebsd*) 156 targ_defvec=i386freebsd_vec 157 targ_selvecs=i386bsd_vec 158 targ_underscore=yes 159 ;; 160 i[3456]86-*-netbsd* | i[3456]86-*-openbsd*) 161 targ_defvec=i386netbsd_vec 162 targ_selvecs=i386bsd_vec 163 targ_underscore=yes 164 ;; 165 i[3456]86-*-netware*) 166 targ_defvec=bfd_elf32_i386_vec 167 targ_selvecs="nlm32_i386_vec i386coff_vec i386aout_vec" 168 ;; 169 i[3456]86-*-linux*aout*) 170 targ_defvec=i386linux_vec 171 targ_selvecs=bfd_elf32_i386_vec 172 targ_underscore=yes 173 ;; 174 i[3456]86-*-linux*) 175 targ_defvec=bfd_elf32_i386_vec 176 targ_selvecs=i386linux_vec 177 ;; 178 i[3456]86-*-lynxos*) 179 targ_defvec=i386lynx_coff_vec 180 targ_selvecs=i386lynx_aout_vec 181 ;; 182 i[3456]86-*-gnu*) 183 targ_defvec=bfd_elf32_i386_vec 184 targ_selvecs=i386mach3_vec 185 targ_cflags=-DSTAT_FOR_EXEC 186 ;; 187 i[3456]86-*-mach* | i[3456]86-*-osf1mk*) 188 targ_defvec=i386mach3_vec 189 targ_cflags=-DSTAT_FOR_EXEC 190 targ_underscore=yes 191 ;; 192 i[3456]86-*-os9k) 193 targ_defvec=i386os9k_vec 194 ;; 195 i[3456]86-*-msdos*) 196 targ_defvec=i386aout_vec 197 targ_selvecs=i386msdos_vec 198 ;; 199 i[3456]86-*-moss*) 200 targ_defvec=bfd_elf32_i386_vec 201 targ_selvecs="i386msdos_vec i386aout_vec" 202 ;; 203 i[3456]86-*-cygwin32 | i[3456]86-*-winnt | i[3456]86-*-pe) 204 targ_defvec=i386pe_vec 205 targ_selvecs="i386pe_vec i386pei_vec" 206 ;; 207 i[3456]86-none-*) 208 targ_defvec=i386coff_vec 209 ;; 210 i[3456]86-*-aout* | i[3456]86*-*-vsta*) 211 targ_defvec=i386aout_vec 212 ;; 213 214 i860-*-mach3* | i860-*-osf1* | i860-*-coff*) 215 targ_defvec=i860coff_vec 216 ;; 217 i860-*-sysv4* | i860-*-elf*) 218 targ_defvec=bfd_elf32_i860_vec 219 ;; 220 221 i960-*-vxworks4* | i960-*-vxworks5.0) 222 targ_defvec=b_out_vec_little_host 223 targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec" 224 targ_underscore=yes 225 ;; 226 i960-*-vxworks5.* | i960-*-coff* | i960-*-sysv* | i960-*-rtems*) 227 targ_defvec=icoff_little_vec 228 targ_selvecs="icoff_big_vec b_out_vec_little_host b_out_vec_big_host ieee_vec" 229 targ_underscore=yes 230 ;; 231 i960-*-vxworks* | i960-*-aout* | i960-*-bout* | i960-*-nindy*) 232 targ_defvec=b_out_vec_little_host 233 targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec" 234 targ_underscore=yes 235 ;; 236 237 m32r-*-*) 238 targ_defvec=bfd_elf32_m32r_vec 239 ;; 240 241 m68*-apollo-*) 242 targ_defvec=apollocoff_vec 243 ;; 244 m68*-bull-sysv*) 245 targ_defvec=m68kcoffun_vec 246 targ_underscore=yes 247 ;; 248 m68*-motorola-sysv*) 249 targ_defvec=m68ksysvcoff_vec 250 ;; 251 m68*-hp-bsd*) 252 targ_defvec=hp300bsd_vec 253 targ_underscore=yes 254 ;; 255 m68*-*-aout*) 256 targ_defvec=aout0_big_vec 257 # We include cisco_core_vec here, rather than making a separate cisco 258 # configuration, so that cisco-core.c gets routinely tested at 259 # least for compilation. 260 targ_selvecs="cisco_core_vec ieee_vec" 261 targ_underscore=yes 262 ;; 263 m68*-*-elf* | m68*-*-sysv4*) 264 targ_defvec=bfd_elf32_m68k_vec 265 targ_selvecs="m68kcoff_vec ieee_vec" 266 ;; 267 m68*-*-coff* | m68*-*-sysv* | m68*-*-rtems*) 268 targ_defvec=m68kcoff_vec 269 targ_selvecs="m68kcoff_vec versados_vec ieee_vec" 270 ;; 271 m68*-*-hpux*) 272 targ_defvec=hp300hpux_vec 273 targ_underscore=yes 274 ;; 275 m68*-*-linux*aout*) 276 targ_defvec=m68klinux_vec 277 targ_selvecs=bfd_elf32_m68k_vec 278 targ_underscore=yes 279 ;; 280 m68*-*-linux*) 281 targ_defvec=bfd_elf32_m68k_vec 282 targ_selvecs=m68klinux_vec 283 ;; 284 m68*-*-lynxos*) 285 targ_defvec=m68klynx_coff_vec 286 targ_selvecs=m68klynx_aout_vec 287 ;; 288 m68*-hp*-netbsd*) 289 targ_defvec=m68k4knetbsd_vec 290 targ_selvecs="m68knetbsd_vec hp300bsd_vec sunos_big_vec" 291 targ_underscore=yes 292 ;; 293 m68*-*-netbsd* | m68*-*-openbsd*) 294 targ_defvec=m68knetbsd_vec 295 targ_selvecs="m68k4knetbsd_vec hp300bsd_vec sunos_big_vec" 296 targ_underscore=yes 297 ;; 298 m68*-*-sunos* | m68*-*-os68k* | m68*-*-vxworks* | m68*-netx-* | \ 299 m68*-*-bsd* | m68*-*-vsta*) 300 targ_defvec=sunos_big_vec 301 targ_underscore=yes 302 ;; 303 m68*-ericsson-*) 304 targ_defvec=sunos_big_vec 305 targ_selvecs="m68kcoff_vec versados_vec tekhex_vec" 306 targ_underscore=yes 307 ;; 308 m68*-cbm-*) 309 targ_defvec=bfd_elf32_m68k_vec 310 targ_selvecs=m68kcoff_vec 311 ;; 312 m68*-apple-aux*) 313 targ_defvec=m68kaux_coff_vec 314 ;; 315 m68*-*-psos*) 316 targ_defvec=bfd_elf32_m68k_vec 317 targ_selvecs=ieee_vec 318 targ_underscore=yes 319 ;; 320 321 m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*) 322 targ_defvec=bfd_elf32_m88k_vec 323 targ_selvecs=m88kbcs_vec 324 ;; 325 m88*-*-mach3*) 326 targ_defvec=m88kmach3_vec 327 targ_cflags=-DSTAT_FOR_EXEC 328 ;; 329 m88*-*-*) 330 targ_defvec=m88kbcs_vec 331 targ_underscore=yes 332 ;; 333 334 mips*-big-*) 335 targ_defvec=ecoff_big_vec 336 targ_selvecs=ecoff_little_vec 337 ;; 338 mips-dec-netbsd*) 339 targ_defvec=bfd_elf32_littlemips_vec 340 targ_selvecs=bfd_elf32_bigmips_vec 341 ;; 342 mips*-dec-bsd*) 343 targ_defvec=aout_mips_little_vec 344 targ_underscore=yes 345 ;; 346 mips*-dec-mach3*) 347 targ_defvec=aout_mips_little_vec 348 targ_cflags=-DSTAT_FOR_EXEC 349 ;; 350 mips*-dec-* | mips*el-*-ecoff*) 351 targ_defvec=ecoff_little_vec 352 targ_selvecs=ecoff_big_vec 353 ;; 354 mips*-*-ecoff*) 355 targ_defvec=ecoff_big_vec 356 targ_selvecs=ecoff_little_vec 357 ;; 358 mips*-*-irix6*) 359 targ_defvec=bfd_elf32_bigmips_vec 360 targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec" 361 ;; 362 mips*-*-irix5*) 363 targ_defvec=bfd_elf32_bigmips_vec 364 targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec" 365 ;; 366 mips*-sgi-* | mips*-*-bsd*) 367 targ_defvec=ecoff_big_vec 368 targ_selvecs=ecoff_little_vec 369 ;; 370 mips*-*-lnews*) 371 targ_defvec=ecoff_biglittle_vec 372 targ_selvecs="ecoff_little_vec ecoff_big_vec" 373 ;; 374 mips*-*-mach3*) 375 targ_defvec=aout_mips_little_vec 376 targ_cflags=-DSTAT_FOR_EXEC 377 ;; 378 mips*-*-sysv4*) 379 targ_defvec=bfd_elf32_bigmips_vec 380 targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec" 381 ;; 382 mips*-*-sysv* | mips*-*-riscos*) 383 targ_defvec=ecoff_big_vec 384 targ_selvecs=ecoff_little_vec 385 ;; 386 mips*el-*-elf*) 387 targ_defvec=bfd_elf32_littlemips_vec 388 targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec" 389 ;; 390 mips*-*-elf* | mips*-*-rtems*) 391 targ_defvec=bfd_elf32_bigmips_vec 392 targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec" 393 ;; 394 mips*-*-none) 395 targ_defvec=bfd_elf32_bigmips_vec 396 targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec" 397 ;; 398 mips*el*-*-linux* | mips*el*-*-openbsd*) 399 targ_defvec=bfd_elf32_littlemips_vec 400 targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_little_vec ecoff_big_vec" 401 ;; 402 mips*-*-linux* | mips*-*-openbsd*) 403 targ_defvec=bfd_elf32_bigmips_vec 404 targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec ecoff_big_vec ecoff_little_vec" 405 ;; 406 407 mn10200-*-*) 408 targ_defvec=bfd_elf32_mn10200_vec 409 ;; 410 411 mn10300-*-*) 412 targ_defvec=bfd_elf32_mn10300_vec 413 ;; 414 415 ns32k-pc532-mach* | ns32k-pc532-ux*) 416 targ_defvec=pc532machaout_vec 417 targ_underscore=yes 418 ;; 419 ns32k-*-netbsd* | ns32k-*-lites* | ns32k-*-openbsd*) 420 targ_defvec=pc532netbsd_vec 421 targ_underscore=yes 422 ;; 423 424 powerpc-*-aix* | powerpc-*-beos*) 425 targ_defvec=rs6000coff_vec 426 ;; 427 powerpc-*-*bsd* | powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \ 428 powerpc-*-solaris2* | powerpc-*-linux* | powerpc-*-rtems*) 429 targ_defvec=bfd_elf32_powerpc_vec 430 targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec ppcboot_vec" 431 ;; 432 powerpc-*-macos* | powerpc-*-mpw*) 433 targ_defvec=pmac_xcoff_vec 434 ;; 435 powerpc-*-netware*) 436 targ_defvec=bfd_elf32_powerpc_vec 437 targ_selvecs="nlm32_powerpc_vec rs6000coff_vec" 438 ;; 439 powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \ 440 powerpcle-*-solaris2* | powerpcle-*-linux*) 441 targ_defvec=bfd_elf32_powerpcle_vec 442 targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec ppcboot_vec" 443 ;; 444 445 powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin32) 446 targ_defvec=bfd_powerpcle_pe_vec 447 targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec" 448 ;; 449 450 rs6000-*-*) 451 targ_defvec=rs6000coff_vec 452 ;; 453 454 sh-*-elf*) 455 targ_defvec=bfd_elf32_sh_vec 456 targ_selvecs="bfd_elf32_shl_vec shcoff_vec shlcoff_vec" 457 targ_underscore=yes 458 ;; 459 sh-*-*) 460 targ_defvec=shcoff_vec 461 targ_selvecs="shcoff_vec shlcoff_vec" 462 targ_underscore=yes 463 ;; 464 465 sparclet-*-aout*) 466 targ_defvec=sunos_big_vec 467 targ_selvecs=sparcle_aout_vec 468 targ_underscore=yes 469 ;; 470 sparc-*-linux*aout*) 471 targ_defvec=sparclinux_vec 472 targ_selvecs="bfd_elf32_sparc_vec sunos_big_vec" 473 targ_underscore=yes 474 ;; 475 sparc-*-linux*) 476 targ_defvec=bfd_elf32_sparc_vec 477 targ_selvecs="sparclinux_vec sunos_big_vec" 478 ;; 479 sparc-*-lynxos*) 480 targ_defvec=sparclynx_coff_vec 481 targ_selvecs=sparclynx_aout_vec 482 ;; 483 sparc-*-netbsd* | sparc-*-openbsd*) 484 targ_defvec=sparcnetbsd_vec 485 targ_underscore=yes 486 ;; 487 sparc-*-elf* | sparc-*-solaris2*) 488 targ_defvec=bfd_elf32_sparc_vec 489 targ_selvecs=sunos_big_vec 490 ;; 491 sparc-*-sysv4*) 492 targ_defvec=bfd_elf32_sparc_vec 493 ;; 494 sparc64-*-aout*) 495 targ_defvec=sunos_big_vec 496 targ_underscore=yes 497 ;; 498#ifdef BFD64 499 sparc64-*-elf*) 500 targ_defvec=bfd_elf64_sparc_vec 501 targ_selvecs=bfd_elf32_sparc_vec 502 ;; 503#endif /* BFD64 */ 504 sparc-*-netware*) 505 targ_defvec=bfd_elf32_sparc_vec 506 targ_selvecs="nlm32_sparc_vec sunos_big_vec" 507 ;; 508 sparc*-*-coff*) 509 targ_defvec=sparccoff_vec 510 ;; 511 sparc*-*-* | sparc*-*-rtems*) 512 targ_defvec=sunos_big_vec 513 targ_underscore=yes 514 ;; 515 516#if HAVE_host_aout_vec 517 tahoe-*-*) 518 targ_defvec=host_aout_vec 519 targ_underscore=yes 520 ;; 521#endif 522 523#if HAVE_host_aout_vec 524 vax-*-bsd* | vax-*-ultrix*) 525 targ_defvec=host_aout_vec 526 targ_underscore=yes 527 ;; 528#endif 529 530 we32k-*-*) 531 targ_defvec=we32kcoff_vec 532 ;; 533 534 w65-*-*) 535 targ_defvec=w65_vec 536 ;; 537 538 z8k*-*-*) 539 targ_defvec=z8kcoff_vec 540 targ_underscore=yes 541 ;; 542 543 *-*-ieee*) 544 targ_defvec=ieee_vec 545 ;; 546 547 *-adobe-*) 548 targ_defvec=a_out_adobe_vec 549 targ_underscore=yes 550 ;; 551 552 *-sony-*) 553 targ_defvec=newsos3_vec 554 targ_underscore=yes 555 ;; 556 557 *-tandem-*) 558 targ_defvec=m68kcoff_vec 559 targ_selvecs=ieee_vec 560 ;; 561# END OF targmatch.h 562 *) 563 echo 1>&2 "*** BFD does not support target ${targ}." 564 echo 1>&2 "*** Look in bfd/config.bfd for supported targets." 565 exit 1 566 ;; 567esac 568