1# GCC target-specific configuration file. 2# Copyright (C) 1997-2019 Free Software Foundation, Inc. 3 4#This file is part of GCC. 5 6#GCC is free software; you can redistribute it and/or modify it under 7#the terms of the GNU General Public License as published by the Free 8#Software Foundation; either version 3, or (at your option) any later 9#version. 10 11#GCC is distributed in the hope that it will be useful, but WITHOUT 12#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13#FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14#for more details. 15 16#You should have received a copy of the GNU General Public License 17#along with GCC; see the file COPYING3. If not see 18#<http://www.gnu.org/licenses/>. 19 20# This is the GCC target-specific configuration file 21# where a configuration type is mapped to different system-specific 22# definitions and files. This is invoked by the autoconf-generated 23# configure script. Putting it in a separate shell file lets us skip 24# running autoconf when modifying target-specific information. 25 26# When you change the cases in the OS or target switches, consider 27# updating ../libgcc/config.host also. 28 29# This file switches on the shell variable ${target}, and also uses the 30# following shell variables: 31# 32# with_* Various variables as set by configure. 33# 34# enable_threads Either the name, yes or no depending on whether 35# threads support was requested. 36# 37# default_use_cxa_atexit 38# The default value for the $enable___cxa_atexit 39# variable. enable___cxa_atexit needs to be set to 40# "yes" for the correct operation of C++ destructors 41# but it relies upon the presence of a non-standard C 42# library function called __cxa_atexit. 43# Since not all C libraries provide __cxa_atexit the 44# default value of $default_use_cxa_atexit is set to 45# "no" except for targets which are known to be OK. 46# 47# default_gnu_indirect_function 48# The default value for the $enable_gnu_indirect_function 49# variable. enable_gnu_indirect_function relies 50# upon the presence of a non-standard gnu ifunc support 51# in the assembler, linker and dynamic linker. 52# Since not all libraries provide the dynamic linking 53# support, the default value of 54# $default_gnu_indirect_function is set to 55# "no" except for targets which are known to be OK. 56# 57# gas_flag Either yes or no depending on whether GNU as was 58# requested. 59# 60# gnu_ld_flag Either yes or no depending on whether GNU ld was 61# requested. 62 63# This file sets the following shell variables for use by the 64# autoconf-generated configure script: 65# 66# cpu_type The name of the cpu, if different from the first 67# chunk of the canonical target name. 68# 69# tm_defines List of target macros to define for all compilations. 70# 71# tm_file A list of target macro files, if different from 72# "$cpu_type/$cpu_type.h". Usually it's constructed 73# per target in a way like this: 74# tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h" 75# Note that the preferred order is: 76# - specific target header "${cpu_type}/${cpu_type.h}" 77# - generic headers like dbxelf.h elfos.h, etc. 78# - specializing target headers like ${cpu_type.h}/elf.h 79# This helps to keep OS specific stuff out of the CPU 80# defining header ${cpu_type}/${cpu_type.h}. 81# 82# It is possible to include automatically-generated 83# build-directory files by prefixing them with "./". 84# All other files should relative to $srcdir/config. 85# 86# tm_p_file Location of file with declarations for functions 87# in $out_file. 88# 89# tm_d_file A list of headers with definitions of target hook 90# macros for the D compiler. 91# 92# out_file The name of the machine description C support 93# file, if different from "$cpu_type/$cpu_type.c". 94# 95# common_out_file The name of the source file for code shared between 96# the compiler proper and the driver. 97# 98# md_file The name of the machine-description file, if 99# different from "$cpu_type/$cpu_type.md". 100# 101# tmake_file A list of machine-description-specific 102# makefile-fragments, if different from 103# "$cpu_type/t-$cpu_type". 104# 105# extra_modes The name of the file containing a list of extra 106# machine modes, if necessary and different from 107# "$cpu_type/$cpu_type-modes.def". 108# 109# extra_objs List of extra objects that should be linked into 110# the compiler proper (cc1, cc1obj, cc1plus) 111# depending on target. 112# 113# extra_gcc_objs List of extra objects that should be linked into 114# the compiler driver (gcc) depending on target. 115# 116# extra_headers List of used header files from the directory 117# config/${cpu_type}. 118# 119# user_headers_inc_next_pre 120# List of header file names of internal gcc header 121# files, which should be prefixed by an include_next. 122# user_headers_inc_next_post 123# List of header file names of internal gcc header 124# files, which should be postfixed by an include_next. 125# use_gcc_tgmath If set, add tgmath.h to the list of used header 126# files. 127# 128# use_gcc_stdint If "wrap", install a version of stdint.h that 129# wraps the system's copy for hosted compilations; 130# if "provide", provide a version of systems without 131# such a system header; otherwise "none", do not 132# provide such a header at all. 133# 134# extra_programs List of extra executables compiled for this target 135# machine, used when linking. 136# 137# extra_options List of target-dependent .opt files. 138# 139# c_target_objs List of extra target-dependent objects that be 140# linked into the C compiler only. 141# 142# cxx_target_objs List of extra target-dependent objects that be 143# linked into the C++ compiler only. 144# 145# d_target_objs List of extra target-dependent objects that be 146# linked into the D compiler only. 147# 148# fortran_target_objs List of extra target-dependent objects that be 149# linked into the fortran compiler only. 150# 151# target_gtfiles List of extra source files with type information. 152# 153# xm_defines List of macros to define when compiling for the 154# target machine. 155# 156# xm_file List of files to include when compiling for the 157# target machine. 158# 159# use_collect2 Set to yes or no, depending on whether collect2 160# will be used. 161# 162# target_cpu_default Set to override the default target model. 163# 164# gdb_needs_out_file_path 165# Set to yes if gdb needs a dir command with 166# `dirname $out_file`. 167# 168# thread_file Set to control which thread package to use. 169# 170# gas Set to yes or no depending on whether the target 171# system normally uses GNU as. 172# 173# configure_default_options 174# Set to an initializer for configure_default_options 175# in configargs.h, based on --with-cpu et cetera. 176# 177# native_system_header_dir 178# Where system header files are found for this 179# target. This defaults to /usr/include. If 180# the --with-sysroot configure option or the 181# --sysroot command line option is used this 182# will be relative to the sysroot. 183# target_type_format_char 184# The default character to be used for formatting 185# the attribute in a 186# .type symbol_name, ${t_t_f_c}<property> 187# directive. 188 189# The following variables are used in each case-construct to build up the 190# outgoing variables: 191# 192# gnu_ld Set to yes or no depending on whether the target 193# system normally uses GNU ld. 194# 195# target_has_targetcm Set to yes or no depending on whether the target 196# has its own definition of targetcm. 197# 198# target_has_targetm_common Set to yes or no depending on whether the 199# target has its own definition of targetm_common. 200# 201# target_has_targetdm Set to yes or no depending on whether the target 202# has its own definition of targetdm. 203 204out_file= 205common_out_file= 206tmake_file= 207extra_headers= 208user_headers_inc_next_pre= 209user_headers_inc_next_post= 210use_gcc_tgmath=yes 211use_gcc_stdint=none 212extra_programs= 213extra_objs= 214extra_gcc_objs= 215extra_options= 216c_target_objs= 217cxx_target_objs= 218d_target_objs= 219fortran_target_objs= 220target_has_targetcm=no 221target_has_targetm_common=yes 222target_has_targetdm=no 223tm_defines= 224xm_defines= 225# Set this to force installation and use of collect2. 226use_collect2= 227# Set this to override the default target model. 228target_cpu_default= 229# Set this if gdb needs a dir command with `dirname $out_file` 230gdb_needs_out_file_path= 231# Set this to control which thread package will be used. 232thread_file= 233# Reinitialize these from the flag values every loop pass, since some 234# configure entries modify them. 235gas="$gas_flag" 236gnu_ld="$gnu_ld_flag" 237default_use_cxa_atexit=no 238default_gnu_indirect_function=no 239target_gtfiles= 240need_64bit_isa= 241native_system_header_dir=/usr/include 242target_type_format_char='@' 243 244# Don't carry these over build->host->target. Please. 245xm_file= 246md_file= 247 248# Obsolete configurations. 249case ${target} in 250 *-*-solaris2.10* \ 251 | spu*-*-* \ 252 | tile*-*-* \ 253 ) 254 if test "x$enable_obsolete" != xyes; then 255 echo "*** Configuration ${target} is obsolete." >&2 256 echo "*** Specify --enable-obsolete to build it anyway." >&2 257 echo "*** Support will be REMOVED in the next major release of GCC," >&2 258 echo "*** unless a maintainer comes forward." >&2 259 exit 1 260 fi;; 261esac 262 263# Unsupported targets list. Do not put an entry in this list unless 264# it would otherwise be caught by a more permissive pattern. The list 265# should be in alphabetical order. 266case ${target} in 267 # Avoid special cases that are not obsolete 268 arm*-*-*eabi* \ 269 ) 270 ;; 271 arm*-wince-pe* \ 272 | arm*-*-ecos-elf \ 273 | arm*-*-elf \ 274 | arm*-*-linux* \ 275 | arm*-*-uclinux* \ 276 | i[34567]86-go32-* \ 277 | i[34567]86-*-go32* \ 278 | m68k-*-uclinuxoldabi* \ 279 | mips64orion*-*-rtems* \ 280 | pdp11-*-bsd \ 281 | powerpc*-*-linux*paired* \ 282 | powerpc*-*-*spe* \ 283 | sparc-hal-solaris2* \ 284 | thumb-*-* \ 285 | *-*-freebsd[12] | *-*-freebsd[1234].* \ 286 | *-*-freebsd*aout* \ 287 | *-*-linux*aout* \ 288 | *-*-linux*coff* \ 289 | *-*-linux*libc1* \ 290 | *-*-linux*oldld* \ 291 | *-*-rtemsaout* \ 292 | *-*-rtemscoff* \ 293 | *-*-solaris2 \ 294 | *-*-solaris2.[0-9] \ 295 | *-*-solaris2.[0-9].* \ 296 | *-*-sysv* \ 297 | vax-*-vms* \ 298 ) 299 echo "*** Configuration ${target} not supported" 1>&2 300 exit 1 301 ;; 302esac 303 304# Set default cpu_type, tm_file, tm_p_file and xm_file so it can be 305# updated in each machine entry. Also set default extra_headers for some 306# machines. 307tm_p_file= 308cpu_type=`echo ${target} | sed 's/-.*$//'` 309cpu_is_64bit= 310case ${target} in 311m32c*-*-*) 312 cpu_type=m32c 313 tmake_file=m32c/t-m32c 314 target_has_targetm_common=no 315 ;; 316aarch64*-*-*) 317 cpu_type=aarch64 318 extra_headers="arm_fp16.h arm_neon.h arm_acle.h" 319 c_target_objs="aarch64-c.o" 320 cxx_target_objs="aarch64-c.o" 321 d_target_objs="aarch64-d.o" 322 extra_objs="aarch64-builtins.o aarch-common.o cortex-a57-fma-steering.o aarch64-speculation.o falkor-tag-collision-avoidance.o aarch64-bti-insert.o" 323 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c" 324 target_has_targetm_common=yes 325 ;; 326alpha*-*-*) 327 cpu_type=alpha 328 extra_options="${extra_options} g.opt" 329 ;; 330amdgcn*) 331 cpu_type=gcn 332 use_gcc_stdint=wrap 333 ;; 334am33_2.0-*-linux*) 335 cpu_type=mn10300 336 ;; 337arc*-*-*) 338 cpu_type=arc 339 c_target_objs="arc-c.o" 340 cxx_target_objs="arc-c.o" 341 extra_options="${extra_options} arc/arc-tables.opt g.opt" 342 extra_headers="arc-simd.h" 343 ;; 344arm*-*-*) 345 cpu_type=arm 346 extra_objs="arm-builtins.o aarch-common.o" 347 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h" 348 target_type_format_char='%' 349 c_target_objs="arm-c.o" 350 cxx_target_objs="arm-c.o" 351 d_target_objs="arm-d.o" 352 extra_options="${extra_options} arm/arm-tables.opt" 353 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c" 354 ;; 355avr-*-*) 356 cpu_type=avr 357 c_target_objs="avr-c.o" 358 cxx_target_objs="avr-c.o" 359 ;; 360bfin*-*) 361 cpu_type=bfin 362 ;; 363crisv32-*) 364 cpu_type=cris 365 ;; 366frv*) cpu_type=frv 367 extra_options="${extra_options} g.opt" 368 ;; 369ft32*) cpu_type=ft32 370 target_has_targetm_common=no 371 ;; 372moxie*) cpu_type=moxie 373 target_has_targetm_common=no 374 ;; 375fido-*-*) 376 cpu_type=m68k 377 extra_headers=math-68881.h 378 extra_options="${extra_options} m68k/m68k-tables.opt" 379 ;; 380i[34567]86-*-*) 381 cpu_type=i386 382 c_target_objs="i386-c.o" 383 cxx_target_objs="i386-c.o" 384 d_target_objs="i386-d.o" 385 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o" 386 extra_options="${extra_options} fused-madd.opt" 387 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h 388 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h 389 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h 390 immintrin.h x86intrin.h avxintrin.h xopintrin.h 391 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h 392 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h 393 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h 394 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h 395 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h 396 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h 397 shaintrin.h clflushoptintrin.h xsavecintrin.h 398 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h 399 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h 400 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h 401 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h 402 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h 403 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h 404 gfniintrin.h cet.h avx512vbmi2intrin.h 405 avx512vbmi2vlintrin.h avx512vnniintrin.h 406 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h 407 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h 408 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h 409 waitpkgintrin.h cldemoteintrin.h" 410 ;; 411x86_64-*-*) 412 cpu_type=i386 413 c_target_objs="i386-c.o" 414 cxx_target_objs="i386-c.o" 415 d_target_objs="i386-d.o" 416 extra_options="${extra_options} fused-madd.opt" 417 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o" 418 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h 419 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h 420 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h 421 immintrin.h x86intrin.h avxintrin.h xopintrin.h 422 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h 423 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h 424 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h 425 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h 426 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h 427 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h 428 shaintrin.h clflushoptintrin.h xsavecintrin.h 429 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h 430 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h 431 avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h 432 avx512vbmivlintrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h 433 avx512vpopcntdqintrin.h clwbintrin.h mwaitxintrin.h 434 clzerointrin.h pkuintrin.h sgxintrin.h cetintrin.h 435 gfniintrin.h cet.h avx512vbmi2intrin.h 436 avx512vbmi2vlintrin.h avx512vnniintrin.h 437 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h 438 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h 439 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h 440 waitpkgintrin.h cldemoteintrin.h" 441 ;; 442ia64-*-*) 443 extra_headers=ia64intrin.h 444 extra_options="${extra_options} g.opt fused-madd.opt" 445 ;; 446hppa*-*-*) 447 cpu_type=pa 448 ;; 449lm32*) 450 extra_options="${extra_options} g.opt" 451 ;; 452m32r*-*-*) 453 cpu_type=m32r 454 extra_options="${extra_options} g.opt" 455 ;; 456m68k-*-*) 457 extra_headers=math-68881.h 458 extra_options="${extra_options} m68k/m68k-tables.opt" 459 ;; 460microblaze*-*-*) 461 cpu_type=microblaze 462 extra_options="${extra_options} g.opt" 463 ;; 464mips*-*-*) 465 cpu_type=mips 466 d_target_objs="mips-d.o" 467 extra_headers="loongson.h loongson-mmiintrin.h msa.h" 468 extra_objs="frame-header-opt.o" 469 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt" 470 ;; 471nds32*) 472 cpu_type=nds32 473 extra_headers="nds32_intrinsic.h nds32_isr.h nds32_init.inc" 474 case ${target} in 475 nds32*-*-linux*) 476 extra_options="${extra_options} nds32/nds32-linux.opt" 477 ;; 478 nds32*-*-elf*) 479 extra_options="${extra_options} nds32/nds32-elf.opt" 480 ;; 481 *) 482 ;; 483 esac 484 extra_objs="nds32-cost.o nds32-intrinsic.o nds32-isr.o nds32-md-auxiliary.o nds32-pipelines-auxiliary.o nds32-predicates.o nds32-memory-manipulation.o nds32-fp-as-gp.o nds32-relax-opt.o nds32-utils.o" 485 ;; 486nios2-*-*) 487 cpu_type=nios2 488 extra_options="${extra_options} g.opt" 489 ;; 490nvptx-*-*) 491 cpu_type=nvptx 492 ;; 493or1k*-*-*) 494 cpu_type=or1k 495 ;; 496powerpc*-*-*) 497 cpu_type=rs6000 498 extra_objs="rs6000-string.o rs6000-p8swap.o" 499 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h" 500 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h" 501 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h" 502 extra_headers="${extra_headers} mmintrin.h x86intrin.h" 503 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h" 504 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h" 505 extra_headers="${extra_headers} amo.h" 506 case x$with_cpu in 507 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500) 508 cpu_is_64bit=yes 509 ;; 510 esac 511 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt" 512 ;; 513riscv*) 514 cpu_type=riscv 515 extra_objs="riscv-builtins.o riscv-c.o" 516 d_target_objs="riscv-d.o" 517 ;; 518rs6000*-*-*) 519 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt" 520 extra_objs="rs6000-string.o rs6000-p8swap.o" 521 ;; 522sparc*-*-*) 523 cpu_type=sparc 524 c_target_objs="sparc-c.o" 525 cxx_target_objs="sparc-c.o" 526 d_target_objs="sparc-d.o" 527 extra_headers="visintrin.h" 528 ;; 529spu*-*-*) 530 cpu_type=spu 531 ;; 532s390*-*-*) 533 cpu_type=s390 534 d_target_objs="s390-d.o" 535 extra_options="${extra_options} fused-madd.opt" 536 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h" 537 ;; 538# Note the 'l'; we need to be able to match e.g. "shle" or "shl". 539sh[123456789lbe]*-*-* | sh-*-*) 540 cpu_type=sh 541 extra_options="${extra_options} fused-madd.opt" 542 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o" 543 ;; 544v850*-*-*) 545 cpu_type=v850 546 ;; 547tic6x-*-*) 548 cpu_type=c6x 549 extra_headers="c6x_intrinsics.h" 550 extra_options="${extra_options} c6x/c6x-tables.opt" 551 ;; 552xtensa*-*-*) 553 extra_options="${extra_options} fused-madd.opt" 554 ;; 555tilegx*-*-*) 556 cpu_type=tilegx 557 ;; 558tilepro*-*-*) 559 cpu_type=tilepro 560 ;; 561esac 562 563tm_file=${cpu_type}/${cpu_type}.h 564tm_d_file=${cpu_type}/${cpu_type}.h 565if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h 566then 567 tm_p_file=${cpu_type}/${cpu_type}-protos.h 568 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h" 569fi 570 571extra_modes= 572if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def 573then 574 extra_modes=${cpu_type}/${cpu_type}-modes.def 575fi 576if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt 577then 578 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt" 579fi 580 581case ${target} in 582aarch64*-*-*) 583 tm_p_file="${tm_p_file} arm/aarch-common-protos.h" 584 case ${with_abi} in 585 "") 586 if test "x$with_multilib_list" = xilp32; then 587 tm_file="aarch64/biarchilp32.h ${tm_file}" 588 else 589 tm_file="aarch64/biarchlp64.h ${tm_file}" 590 fi 591 ;; 592 ilp32) 593 tm_file="aarch64/biarchilp32.h ${tm_file}" 594 ;; 595 lp64) 596 tm_file="aarch64/biarchlp64.h ${tm_file}" 597 ;; 598 *) 599 echo "Unknown ABI used in --with-abi=$with_abi" 600 exit 1 601 esac 602 ;; 603i[34567]86-*-*) 604 if test "x$with_abi" != x; then 605 echo "This target does not support --with-abi." 606 exit 1 607 fi 608 if test "x$enable_cld" = xyes; then 609 tm_defines="${tm_defines} USE_IX86_CLD=1" 610 fi 611 if test "x$enable_frame_pointer" = xyes; then 612 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1" 613 fi 614 ;; 615x86_64-*-*) 616 case ${with_abi} in 617 "") 618 if test "x$with_multilib_list" = xmx32; then 619 tm_file="i386/biarchx32.h ${tm_file}" 620 else 621 tm_file="i386/biarch64.h ${tm_file}" 622 fi 623 ;; 624 64 | m64) 625 tm_file="i386/biarch64.h ${tm_file}" 626 ;; 627 x32 | mx32) 628 tm_file="i386/biarchx32.h ${tm_file}" 629 ;; 630 *) 631 echo "Unknown ABI used in --with-abi=$with_abi" 632 exit 1 633 esac 634 if test "x$enable_cld" = xyes; then 635 tm_defines="${tm_defines} USE_IX86_CLD=1" 636 fi 637 if test "x$enable_frame_pointer" = xyes; then 638 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1" 639 fi 640 ;; 641arm*-*-*) 642 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h" 643 ;; 644esac 645 646# On a.out targets, we need to use collect2. 647case ${target} in 648*-*-*aout*) 649 use_collect2=yes 650 ;; 651esac 652 653# Common C libraries. 654tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4" 655 656# 32-bit x86 processors supported by --with-arch=. Each processor 657# MUST be separated by exactly one space. 658x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \ 659athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \ 660i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \ 661pentium4 pentium4m pentiumpro prescott lakemont" 662 663# 64-bit x86 processors supported by --with-arch=. Each processor 664# MUST be separated by exactly one space. 665x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \ 666bdver3 bdver4 znver1 znver2 btver1 btver2 k8 k8-sse3 opteron \ 667opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \ 668slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \ 669silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \ 670skylake goldmont goldmont-plus tremont cascadelake tigerlake x86-64 \ 671native" 672 673# Additional x86 processors supported by --with-cpu=. Each processor 674# MUST be separated by exactly one space. 675x86_cpus="generic intel" 676 677# Common parts for widely ported systems. 678case ${target} in 679*-*-darwin*) 680 tmake_file="t-darwin " 681 tm_file="${tm_file} darwin.h" 682 case ${target} in 683 *-*-darwin9*) 684 tm_file="${tm_file} darwin9.h" 685 ;; 686 *-*-darwin[1][01]*) 687 tm_file="${tm_file} darwin9.h darwin10.h" 688 ;; 689 *-*-darwin[1][2-9]* | *-*-darwin[2][0-9]*) 690 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h" 691 ;; 692 esac 693 tm_file="${tm_file} ${cpu_type}/darwin.h" 694 tm_p_file="${tm_p_file} darwin-protos.h" 695 target_gtfiles="\$(srcdir)/config/darwin.c" 696 extra_options="${extra_options} darwin.opt" 697 c_target_objs="${c_target_objs} darwin-c.o" 698 cxx_target_objs="${cxx_target_objs} darwin-c.o" 699 fortran_target_objs="darwin-f.o" 700 target_has_targetcm=yes 701 extra_objs="${extra_objs} darwin.o" 702 extra_gcc_objs="darwin-driver.o" 703 default_use_cxa_atexit=yes 704 use_gcc_stdint=wrap 705 case ${enable_threads} in 706 "" | yes | posix) thread_file='posix' ;; 707 esac 708 ;; 709*-*-dragonfly*) 710 gas=yes 711 gnu_ld=yes 712 tmake_file="t-slibgcc" 713 case ${enable_threads} in 714 "" | yes | posix) 715 thread_file='posix' 716 ;; 717 no | single) 718 # Let these non-posix thread selections fall through if requested 719 ;; 720 *) 721 echo 'Unknown thread configuration for DragonFly BSD' 722 exit 1 723 ;; 724 esac 725 extra_options="$extra_options rpath.opt dragonfly.opt" 726 default_use_cxa_atexit=yes 727 use_gcc_stdint=wrap 728 ;; 729*-*-freebsd*) 730 # This is the generic ELF configuration of FreeBSD. Later 731 # machine-specific sections may refine and add to this 732 # configuration. 733 # 734 # Due to tm_file entry ordering issues that vary between cpu 735 # architectures, we only define fbsd_tm_file to allow the 736 # machine-specific section to dictate the final order of all 737 # entries of tm_file with the minor exception that components 738 # of the tm_file set here will always be of the form: 739 # 740 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h 741 # 742 # The machine-specific section should not tamper with this 743 # ordering but may order all other entries of tm_file as it 744 # pleases around the provided core setting. 745 gas=yes 746 gnu_ld=yes 747 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'` 748 if test "$fbsd_major" = ""; then 749 echo "Specify the major version number of the targeted FreeBSD release" 750 echo "like this: --target=amd64-unknown-freebsd10.1" 751 exit 1 752 fi 753 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}" 754 tmake_file="t-slibgcc" 755 case ${enable_threads} in 756 no) 757 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h" 758 ;; 759 "" | yes | posix) 760 thread_file='posix' 761 ;; 762 *) 763 echo 'Unknown thread configuration for FreeBSD' 764 exit 1 765 ;; 766 esac 767 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h" 768 extra_options="$extra_options rpath.opt freebsd.opt" 769 case ${target} in 770 *-*-freebsd[345].*) 771 :;; 772 *) 773 default_use_cxa_atexit=yes;; 774 esac 775 use_gcc_stdint=wrap 776 ;; 777*-*-fuchsia*) 778 native_system_header_dir=/include 779 ;; 780*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) 781 extra_options="$extra_options gnu-user.opt" 782 gas=yes 783 gnu_ld=yes 784 case ${enable_threads} in 785 "" | yes | posix) thread_file='posix' ;; 786 esac 787 tmake_file="t-slibgcc" 788 case $target in 789 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu) 790 :;; 791 *-*-gnu*) 792 native_system_header_dir=/include 793 ;; 794 esac 795 # Linux C libraries selection switch: glibc / uclibc / bionic. 796 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD. 797 case $target in 798 *linux*) 799 tm_p_file="${tm_p_file} linux-protos.h" 800 tmake_file="${tmake_file} t-linux" 801 extra_objs="${extra_objs} linux.o" 802 extra_options="${extra_options} linux.opt" 803 ;; 804 esac 805 case $target in 806 *-*-*android*) 807 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC" 808 ;; 809 *-*-*uclibc*) 810 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC" 811 ;; 812 *-*-*musl*) 813 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL" 814 ;; 815 *) 816 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC" 817 ;; 818 esac 819 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit 820 # is provided. 821 default_use_cxa_atexit=yes 822 use_gcc_tgmath=no 823 use_gcc_stdint=wrap 824 # Enable compilation for Android by default for *android* targets. 825 case $target in 826 *-*-*android*) 827 tm_defines="$tm_defines ANDROID_DEFAULT=1" 828 ;; 829 *) 830 tm_defines="$tm_defines ANDROID_DEFAULT=0" 831 ;; 832 esac 833 c_target_objs="${c_target_objs} glibc-c.o" 834 cxx_target_objs="${cxx_target_objs} glibc-c.o" 835 d_target_objs="${d_target_objs} glibc-d.o" 836 tmake_file="${tmake_file} t-glibc" 837 target_has_targetcm=yes 838 target_has_targetdm=yes 839 ;; 840*-*-netbsd*) 841 tm_p_file="${tm_p_file} netbsd-protos.h" 842 tmake_file="t-netbsd t-slibgcc" 843 extra_objs="${extra_objs} netbsd.o" 844 d_target_objs="${d_target_objs} netbsd-d.o" 845 gas=yes 846 gnu_ld=yes 847 use_gcc_stdint=wrap 848 case ${enable_threads} in 849 "" | yes | posix) thread_file='posix' ;; 850 esac 851 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h" 852 default_use_cxa_atexit=yes 853 target_has_targetdm=yes 854 ;; 855*-*-openbsd*) 856 tmake_file="t-openbsd" 857 case ${enable_threads} in 858 yes) 859 thread_file='posix' 860 ;; 861 esac 862 case ${target} in 863 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*) 864 default_use_cxa_atexit=yes 865 ;; 866 esac 867 ;; 868*-*-phoenix*) 869 gas=yes 870 gnu_ld=yes 871 default_use_cxa_atexit=yes 872 ;; 873*-*-rtems*) 874 case ${enable_threads} in 875 "" | yes | rtems) thread_file='rtems' ;; 876 posix) thread_file='posix' ;; 877 no) ;; 878 *) 879 echo 'Unknown thread configuration for RTEMS' 880 exit 1 881 ;; 882 esac 883 tmake_file="${tmake_file} t-rtems" 884 extra_options="${extra_options} rtems.opt" 885 default_use_cxa_atexit=yes 886 use_gcc_stdint=wrap 887 ;; 888*-*-uclinux*) 889 extra_options="$extra_options gnu-user.opt" 890 use_gcc_stdint=wrap 891 case ${enable_threads} in 892 "" | yes | posix) thread_file='posix' ;; 893 esac 894 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC" 895 ;; 896*-*-rdos*) 897 use_gcc_stdint=wrap 898 ;; 899*-*-solaris2*) 900 # i?86-*-solaris2* needs to insert headers between cpu default and 901 # Solaris 2 specific ones. 902 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h" 903 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h" 904 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}" 905 case ${target} in 906 *-*-solaris2.1[1-9]*) 907 # __cxa_atexit was introduced in Solaris 11.4. 908 default_use_cxa_atexit=yes 909 ;; 910 esac 911 use_gcc_stdint=wrap 912 if test x$gnu_ld = xyes; then 913 tm_file="usegld.h ${tm_file}" 914 fi 915 if test x$gas = xyes; then 916 tm_file="usegas.h ${tm_file}" 917 fi 918 tm_p_file="${tm_p_file} sol2-protos.h" 919 tmake_file="${tmake_file} t-sol2 t-slibgcc" 920 c_target_objs="${c_target_objs} sol2-c.o" 921 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o" 922 d_target_objs="${d_target_objs} sol2-d.o" 923 extra_objs="${extra_objs} sol2.o sol2-stubs.o" 924 extra_options="${extra_options} sol2.opt" 925 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in 926 "":yes:* | yes:yes:* ) 927 thread_file=posix 928 ;; 929 esac 930 target_has_targetdm=yes 931 ;; 932*-*-*vms*) 933 extra_options="${extra_options} vms/vms.opt" 934 xmake_file=vms/x-vms 935 tmake_file="vms/t-vms t-slibgcc" 936 extra_objs="vms.o" 937 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c" 938 tm_p_file="${tm_p_file} vms/vms-protos.h" 939 xm_file="vms/xm-vms.h" 940 c_target_objs="vms-c.o" 941 cxx_target_objs="vms-c.o" 942 fortran_target_objs="vms-f.o" 943 use_gcc_stdint=provide 944 tm_file="${tm_file} vms/vms-stdint.h" 945 if test x$gnu_ld != xyes; then 946 # Build wrappers for native case. 947 extra_programs="ld\$(exeext) ar\$(exeext)" 948 tmake_file="$tmake_file vms/t-vmsnative" 949 fi 950 ;; 951*-*-vxworks*) 952 tmake_file=t-vxworks 953 xm_defines=POSIX 954 extra_options="${extra_options} vxworks.opt" 955 extra_objs="$extra_objs vxworks.o" 956 use_gcc_stdint=provide 957 tm_file="${tm_file} vxworks-stdint.h" 958 case ${enable_threads} in 959 no) ;; 960 "" | yes | vxworks) thread_file='vxworks' ;; 961 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;; 962 esac 963 case $target in 964 *-*-vxworks7*) 965 tm_defines="$tm_defines TARGET_VXWORKS7=1" 966 ;; 967 esac 968 case $target in 969 *64-*-vxworks*) 970 tm_defines="$tm_defines TARGET_VXWORKS64=1" 971 ;; 972 esac 973 ;; 974*-*-elf|arc*-*-elf*) 975 # Assume that newlib is being used and so __cxa_atexit is provided. 976 default_use_cxa_atexit=yes 977 use_gcc_stdint=wrap 978 ;; 979esac 980 981case ${target} in 982aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) 983 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h" 984 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h" 985 tmake_file="${tmake_file} aarch64/t-aarch64" 986 case $target in 987 aarch64-*-elf*) 988 use_gcc_stdint=wrap 989 ;; 990 aarch64-*-fuchsia*) 991 tm_file="${tm_file} fuchsia.h" 992 ;; 993 aarch64-*-rtems*) 994 tm_file="${tm_file} rtems.h aarch64/rtems.h" 995 ;; 996 esac 997 case $target in 998 aarch64_be-*) 999 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" 1000 ;; 1001 esac 1002 aarch64_multilibs="${with_multilib_list}" 1003 if test "$aarch64_multilibs" = "default"; then 1004 aarch64_multilibs="lp64,ilp32" 1005 fi 1006 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'` 1007 for aarch64_multilib in ${aarch64_multilibs}; do 1008 case ${aarch64_multilib} in 1009 ilp32 | lp64 ) 1010 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}" 1011 ;; 1012 *) 1013 echo "--with-multilib-list=${aarch64_multilib} not supported." 1014 exit 1 1015 esac 1016 done 1017 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'` 1018 ;; 1019aarch64*-*-freebsd*) 1020 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}" 1021 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h" 1022 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd" 1023 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1" 1024 ;; 1025aarch64*-*-linux*) 1026 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h" 1027 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h" 1028 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux" 1029 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1" 1030 case $target in 1031 aarch64_be-*) 1032 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" 1033 ;; 1034 esac 1035 aarch64_multilibs="${with_multilib_list}" 1036 if test "$aarch64_multilibs" = "default"; then 1037 # TODO: turn on ILP32 multilib build after its support is mature. 1038 # aarch64_multilibs="lp64,ilp32" 1039 aarch64_multilibs="lp64" 1040 fi 1041 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'` 1042 for aarch64_multilib in ${aarch64_multilibs}; do 1043 case ${aarch64_multilib} in 1044 ilp32 | lp64 ) 1045 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}" 1046 ;; 1047 *) 1048 echo "--with-multilib-list=${aarch64_multilib} not supported." 1049 exit 1 1050 esac 1051 done 1052 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'` 1053 ;; 1054alpha*-*-linux*) 1055 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h" 1056 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha" 1057 extra_options="${extra_options} alpha/elf.opt" 1058 ;; 1059alpha*-*-netbsd*) 1060 tm_file="elfos.h ${tm_file} ${nbsd_tm_file} alpha/elf.h alpha/netbsd.h" 1061 tmake_file="${tmake_file} alpha/t-alpha" 1062 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \ 1063 alpha/elf.opt" 1064 ;; 1065alpha*-*-openbsd*) 1066 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT" 1067 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h" 1068 tmake_file="${tmake_file} alpha/t-alpha" 1069 extra_options="${extra_options} openbsd.opt alpha/elf.opt" 1070 # default x-alpha is only appropriate for dec-osf. 1071 ;; 1072alpha*-dec-*vms*) 1073 tm_file="${tm_file} vms/vms.h alpha/vms.h" 1074 tmake_file="${tmake_file} alpha/t-vms alpha/t-alpha" 1075 ;; 1076arc*-*-elf*) 1077 tm_file="arc/arc-arch.h dbxelf.h elfos.h newlib-stdint.h arc/elf.h ${tm_file}" 1078 tmake_file="arc/t-multilib arc/t-arc" 1079 extra_gcc_objs="driver-arc.o" 1080 if test "x$with_cpu" != x; then 1081 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu" 1082 fi 1083 if test x${with_endian} = x; then 1084 case ${target} in 1085 arc*be-*-* | arc*eb-*-*) with_endian=big ;; 1086 *) with_endian=little ;; 1087 esac 1088 fi 1089 case ${with_endian} in 1090 big|little) ;; 1091 *) echo "with_endian=${with_endian} not supported."; exit 1 ;; 1092 esac 1093 case ${with_endian} in 1094 big*) tm_file="arc/big.h ${tm_file}" 1095 esac 1096 ;; 1097arc*-*-linux*) 1098 tm_file="arc/arc-arch.h dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arc/linux.h ${tm_file}" 1099 tmake_file="${tmake_file} arc/t-multilib-linux arc/t-arc" 1100 extra_gcc_objs="driver-arc.o" 1101 if test "x$with_cpu" != x; then 1102 tm_defines="${tm_defines} TARGET_CPU_BUILD=PROCESSOR_$with_cpu" 1103 fi 1104 if test x${with_endian} = x; then 1105 case ${target} in 1106 arc*be-*-* | arc*eb-*-*) with_endian=big ;; 1107 *) with_endian=little ;; 1108 esac 1109 fi 1110 case ${with_endian} in 1111 big|little) ;; 1112 *) echo "with_endian=${with_endian} not supported."; exit 1 ;; 1113 esac 1114 case ${with_endian} in 1115 big*) tm_file="arc/big.h ${tm_file}" 1116 esac 1117 # Force .init_array support. The configure script cannot always 1118 # automatically detect that GAS supports it, yet we require it. 1119 gcc_cv_initfini_array=yes 1120 ;; 1121arm-wrs-vxworks|arm-wrs-vxworks7) 1122 extra_options="${extra_options} arm/vxworks.opt" 1123 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks" 1124 case $target in 1125 *-vxworks7) 1126 # VxWorks7 on ARM adheres to the ARM Base Platform ABI 1127 tmake_file="${tmake_file} arm/t-bpabi" 1128 tm_file="arm/bpabi.h ${tm_file}" 1129 # The BPABI long long divmod functions return a 128-bit value in 1130 # registers r0-r3. 1131 need_64bit_hwint=yes 1132 default_use_cxa_atexit=yes 1133 ;; 1134 *) ;; 1135 esac 1136 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h" 1137 target_cpu_cname="arm8" 1138 ;; 1139arm*-*-freebsd*) # ARM FreeBSD EABI 1140 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h" 1141 case $target in 1142 arm*b-*-freebsd*) 1143 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" 1144 ;; 1145 esac 1146 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi" 1147 tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h" 1148 case $target in 1149 armv6*-*-freebsd*) 1150 target_cpu_cname="arm1176jzf-s" 1151 if test $fbsd_major -ge 11; then 1152 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1" 1153 fi 1154 ;; 1155 armv7*-*-freebsd*) 1156 target_cpu_cname="generic-armv7-a" 1157 tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1" 1158 ;; 1159 *) 1160 target_cpu_cname="arm9" 1161 ;; 1162 esac 1163 with_tls=${with_tls:-gnu} 1164 ;; 1165arm*-*-netbsdelf*) 1166 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h" 1167 extra_options="${extra_options} netbsd.opt netbsd-elf.opt" 1168 tmake_file="${tmake_file} arm/t-arm" 1169 target_cpu_cname="strongarm" 1170 ;; 1171arm*-*-linux-*) # ARM GNU/Linux with ELF 1172 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" 1173 extra_options="${extra_options} linux-android.opt" 1174 case $target in 1175 arm*b-*-linux*) 1176 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" 1177 ;; 1178 esac 1179 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi" 1180 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h" 1181 # Generation of floating-point instructions requires at least ARMv5te. 1182 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then 1183 target_cpu_cname="arm10e" 1184 else 1185 target_cpu_cname="arm10tdmi" 1186 fi 1187 # Define multilib configuration for arm-linux-androideabi. 1188 case ${target} in 1189 *-androideabi) 1190 tmake_file="$tmake_file arm/t-linux-androideabi" 1191 ;; 1192 esac 1193 # The EABI requires the use of __cxa_atexit. 1194 default_use_cxa_atexit=yes 1195 with_tls=${with_tls:-gnu} 1196 ;; 1197arm*-*-uclinux*eabi*) # ARM ucLinux 1198 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h" 1199 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi" 1200 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h arm/arm.h" 1201 target_cpu_cname="arm7tdmi" 1202 # The EABI requires the use of __cxa_atexit. 1203 default_use_cxa_atexit=yes 1204 ;; 1205arm*-*-phoenix*) 1206 tm_file="elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h" 1207 tm_file="${tm_file} newlib-stdint.h phoenix.h" 1208 tm_file="${tm_file} arm/aout.h arm/arm.h" 1209 tmake_file="${tmake_file} arm/t-arm arm/t-bpabi arm/t-phoenix" 1210 target_cpu_cname="arm7tdmi" 1211 ;; 1212arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems* | arm*-*-fuchsia*) 1213 case ${target} in 1214 arm*eb-*-eabi*) 1215 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" 1216 esac 1217 default_use_cxa_atexit=yes 1218 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h" 1219 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf" 1220 target_cpu_cname="arm7tdmi" 1221 case ${target} in 1222 arm*-*-eabi*) 1223 tm_file="$tm_file newlib-stdint.h" 1224 tmake_file="${tmake_file} arm/t-bpabi" 1225 use_gcc_stdint=wrap 1226 ;; 1227 arm*-*-fuchsia*) 1228 tm_file="${tm_file} fuchsia.h arm/fuchsia-elf.h glibc-stdint.h" 1229 tmake_file="${tmake_file} arm/t-bpabi arm/t-fuchsia" 1230 target_cpu_cname="generic-armv7-a" 1231 ;; 1232 arm*-*-rtems*) 1233 tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h" 1234 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems" 1235 ;; 1236 arm*-*-symbianelf*) 1237 tm_file="${tm_file} arm/symbian.h" 1238 # We do not include t-bpabi for Symbian OS because the system 1239 # provides its own implementation of the BPABI functions. 1240 tmake_file="${tmake_file} arm/t-symbian" 1241 target_cpu_cname="arm10tdmi" 1242 ;; 1243 esac 1244 tm_file="${tm_file} arm/aout.h arm/arm.h" 1245 ;; 1246avr-*-*) 1247 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h" 1248 if test x${with_avrlibc} != xno; then 1249 tm_file="${tm_file} ${cpu_type}/avrlibc.h" 1250 tm_defines="${tm_defines} WITH_AVRLIBC" 1251 fi 1252 tmake_file="${tmake_file} avr/t-avr avr/t-multilib" 1253 use_gcc_stdint=wrap 1254 extra_gcc_objs="driver-avr.o avr-devices.o" 1255 extra_objs="avr-devices.o avr-log.o" 1256 ;; 1257bfin*-elf*) 1258 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h" 1259 tmake_file=bfin/t-bfin-elf 1260 use_collect2=no 1261 ;; 1262bfin*-uclinux*) 1263 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h" 1264 tmake_file=bfin/t-bfin-uclinux 1265 use_collect2=no 1266 ;; 1267bfin*-linux-uclibc*) 1268 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/linux.h ./linux-sysroot-suffix.h" 1269 tmake_file="${tmake_file} bfin/t-bfin-linux" 1270 use_collect2=no 1271 ;; 1272bfin*-rtems*) 1273 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h" 1274 tmake_file="${tmake_file} bfin/t-rtems" 1275 ;; 1276bfin*-*) 1277 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h" 1278 use_collect2=no 1279 use_gcc_stdint=wrap 1280 ;; 1281cr16-*-elf) 1282 tm_file="elfos.h ${tm_file} newlib-stdint.h" 1283 tmake_file="${tmake_file} cr16/t-cr16 " 1284 use_collect2=no 1285 ;; 1286crisv32-*-elf | crisv32-*-none) 1287 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 1288 tmake_file="cris/t-cris" 1289 target_cpu_default=32 1290 gas=yes 1291 extra_options="${extra_options} cris/elf.opt" 1292 use_gcc_stdint=wrap 1293 ;; 1294cris-*-elf | cris-*-none) 1295 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 1296 tmake_file="cris/t-cris cris/t-elfmulti" 1297 gas=yes 1298 extra_options="${extra_options} cris/elf.opt" 1299 use_gcc_stdint=wrap 1300 ;; 1301crisv32-*-linux* | cris-*-linux*) 1302 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h" 1303 tmake_file="${tmake_file} cris/t-cris cris/t-linux" 1304 extra_options="${extra_options} cris/linux.opt" 1305 case $target in 1306 cris-*-*) 1307 target_cpu_default=10 1308 ;; 1309 crisv32-*-*) 1310 target_cpu_default=32 1311 ;; 1312 esac 1313 ;; 1314csky-*-*) 1315 if test x${with_endian} != x; then 1316 case ${with_endian} in 1317 big|little) ;; 1318 *) 1319 echo "with_endian=${with_endian} not supported." 1320 exit 1 1321 ;; 1322 esac 1323 fi 1324 if test x${with_float} != x; then 1325 case ${with_float} in 1326 soft | hard) ;; 1327 *) echo 1328 "Unknown floating point type used in --with-float=$with_float" 1329 exit 1 1330 ;; 1331 esac 1332 fi 1333 tm_file="csky/csky.h" 1334 md_file="csky/csky.md" 1335 out_file="csky/csky.c" 1336 tm_p_file="${tm_p_file} csky/csky-protos.h" 1337 extra_options="${extra_options} csky/csky_tables.opt" 1338 1339 if test x${enable_tpf_debug} = xyes; then 1340 tm_defines="${tm_defines} ENABLE_TPF_DEBUG" 1341 fi 1342 1343 case ${target} in 1344 csky-*-elf*) 1345 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} csky/csky-elf.h" 1346 tmake_file="csky/t-csky csky/t-csky-elf" 1347 default_use_cxa_atexit=no 1348 ;; 1349 csky-*-linux*) 1350 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} csky/csky-linux-elf.h" 1351 tmake_file="${tmake_file} csky/t-csky csky/t-csky-linux" 1352 1353 if test "x${enable_multilib}" = xyes ; then 1354 tm_file="$tm_file ./sysroot-suffix.h" 1355 tmake_file="${tmake_file} csky/t-sysroot-suffix" 1356 fi 1357 1358 case ${target} in 1359 csky-*-linux-gnu*) 1360 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC" 1361 # Force .init_array support. The configure script cannot always 1362 # automatically detect that GAS supports it, yet we require it. 1363 gcc_cv_initfini_array=yes 1364 ;; 1365 csky-*-linux-uclibc*) 1366 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC" 1367 default_use_cxa_atexit=no 1368 ;; 1369 *) 1370 echo "Unknown target $target" 1371 exit 1 1372 ;; 1373 esac 1374 ;; 1375 *) 1376 echo "Unknown target $target" 1377 exit 1 1378 ;; 1379 esac 1380 ;; 1381epiphany-*-elf | epiphany-*-rtems*) 1382 tm_file="${tm_file} dbxelf.h elfos.h" 1383 tmake_file="${tmake_file} epiphany/t-epiphany" 1384 case ${target} in 1385 epiphany-*-rtems*) 1386 tm_file="${tm_file} rtems.h epiphany/rtems.h newlib-stdint.h" 1387 ;; 1388 *) 1389 tm_file="${tm_file} newlib-stdint.h" 1390 ;; 1391 esac 1392 extra_options="${extra_options} fused-madd.opt" 1393 extra_objs="${extra_objs} mode-switch-use.o resolve-sw-modes.o" 1394 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}" 1395 extra_headers="epiphany_intrinsics.h" 1396 ;; 1397fr30-*-elf) 1398 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 1399 ;; 1400frv-*-elf) 1401 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 1402 tmake_file=frv/t-frv 1403 ;; 1404frv-*-*linux*) 1405 tm_file="dbxelf.h elfos.h ${tm_file} \ 1406 gnu-user.h linux.h glibc-stdint.h frv/linux.h" 1407 tmake_file="${tmake_file} frv/t-frv frv/t-linux" 1408 ;; 1409ft32-*-elf) 1410 gas=yes 1411 gnu_ld=yes 1412 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 1413 tmake_file="${tmake_file} ft32/t-ft32" 1414 ;; 1415amdgcn-*-amdhsa) 1416 tm_file="elfos.h gcn/gcn-hsa.h gcn/gcn.h newlib-stdint.h" 1417 tmake_file="gcn/t-gcn-hsa" 1418 native_system_header_dir=/include 1419 extra_modes=gcn/gcn-modes.def 1420 extra_objs="${extra_objs} gcn-tree.o" 1421 extra_gcc_objs="driver-gcn.o" 1422 case "$host" in 1423 x86_64*-*-linux-gnu ) 1424 if test "$ac_cv_search_dlopen" != no; then 1425 extra_programs="${extra_programs} gcn-run\$(exeext)" 1426 fi 1427 ;; 1428 esac 1429 if test x$enable_as_accelerator = xyes; then 1430 extra_programs="${extra_programs} mkoffload\$(exeext)" 1431 tm_file="${tm_file} gcn/offload.h" 1432 fi 1433 ;; 1434moxie-*-elf) 1435 gas=yes 1436 gnu_ld=yes 1437 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 1438 tmake_file="${tmake_file} moxie/t-moxie" 1439 ;; 1440moxie-*-uclinux*) 1441 gas=yes 1442 gnu_ld=yes 1443 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h" 1444 tmake_file="${tmake_file} moxie/t-moxie" 1445 ;; 1446moxie-*-rtems*) 1447 tmake_file="${tmake_file} moxie/t-moxie" 1448 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h" 1449 ;; 1450moxie-*-moxiebox*) 1451 gas=yes 1452 gnu_ld=yes 1453 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h" 1454 tmake_file="${tmake_file} moxie/t-moxiebox" 1455 ;; 1456h8300-*-elf*) 1457 tmake_file="h8300/t-h8300" 1458 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h" 1459 ;; 1460h8300-*-linux*) 1461 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-linux" 1462 tm_file="h8300/h8300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h h8300/linux.h" 1463 ;; 1464hppa*64*-*-linux*) 1465 target_cpu_default="MASK_PA_11|MASK_PA_20" 1466 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \ 1467 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \ 1468 pa/pa64-linux.h" 1469 tmake_file="${tmake_file} pa/t-pa pa/t-linux" 1470 d_target_objs="${d_target_objs} pa-d.o" 1471 gas=yes gnu_ld=yes 1472 ;; 1473hppa*-*-linux*) 1474 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES" 1475 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \ 1476 pa/pa32-regs.h pa/pa32-linux.h" 1477 tmake_file="${tmake_file} pa/t-pa pa/t-linux" 1478 d_target_objs="${d_target_objs} pa-d.o" 1479 ;; 1480hppa*-*-openbsd*) 1481 target_cpu_default="MASK_PA_11" 1482 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \ 1483 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h" 1484 extra_options="${extra_options} openbsd.opt" 1485 tmake_file="pa/t-pa" 1486 d_target_objs="${d_target_objs} pa-d.o" 1487 gas=yes 1488 gnu_ld=yes 1489 ;; 1490hppa[12]*-*-hpux10*) 1491 case ${target} in 1492 hppa1.1-*-* | hppa2*-*-*) 1493 target_cpu_default="MASK_PA_11" 1494 ;; 1495 esac 1496 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \ 1497 pa/pa-hpux.h pa/pa-hpux10.h" 1498 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt" 1499 case ${target} in 1500 *-*-hpux10.[1-9]*) 1501 tm_file="${tm_file} pa/pa-hpux1010.h" 1502 extra_options="${extra_options} pa/pa-hpux1010.opt" 1503 ;; 1504 esac 1505 use_gcc_stdint=provide 1506 tm_file="${tm_file} hpux-stdint.h" 1507 tmake_file="pa/t-pa t-slibgcc" 1508 d_target_objs="${d_target_objs} pa-d.o" 1509 case ${enable_threads} in 1510 "") 1511 if test x$have_pthread_h = xyes ; then 1512 tmake_file="${tmake_file} pa/t-dce-thr" 1513 fi 1514 ;; 1515 yes | dce) 1516 tmake_file="${tmake_file} pa/t-dce-thr" 1517 ;; 1518 esac 1519 use_collect2=yes 1520 gas=yes 1521 if test "x$with_dwarf2" != x; then 1522 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2 1523 dwarf2=no 1524 fi 1525 ;; 1526hppa*64*-*-hpux11*) 1527 target_cpu_default="MASK_PA_11|MASK_PA_20" 1528 if test x$gnu_ld = xyes 1529 then 1530 target_cpu_default="${target_cpu_default}|MASK_GNU_LD" 1531 fi 1532 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \ 1533 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \ 1534 pa/pa-hpux11.h" 1535 case ${target} in 1536 *-*-hpux11.[12]*) 1537 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h" 1538 extra_options="${extra_options} pa/pa-hpux1111.opt" 1539 ;; 1540 *-*-hpux11.[3-9]*) 1541 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h" 1542 extra_options="${extra_options} pa/pa-hpux1131.opt" 1543 ;; 1544 *) 1545 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h" 1546 ;; 1547 esac 1548 extra_options="${extra_options} pa/pa-hpux.opt \ 1549 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt" 1550 tmake_file="pa/t-pa t-slibgcc" 1551 d_target_objs="${d_target_objs} pa-d.o" 1552 case x${enable_threads} in 1553 x | xyes | xposix ) 1554 thread_file=posix 1555 ;; 1556 esac 1557 gas=yes 1558 case ${target} in 1559 *-*-hpux11.[01]*) 1560 use_gcc_stdint=provide 1561 tm_file="${tm_file} hpux-stdint.h" 1562 ;; 1563 *-*-hpux11.[23]*) 1564 use_gcc_stdint=wrap 1565 tm_file="${tm_file} hpux-stdint.h" 1566 ;; 1567 esac 1568 ;; 1569hppa[12]*-*-hpux11*) 1570 case ${target} in 1571 hppa1.1-*-* | hppa2*-*-*) 1572 target_cpu_default="MASK_PA_11" 1573 ;; 1574 esac 1575 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \ 1576 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h" 1577 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \ 1578 hpux11.opt" 1579 case ${target} in 1580 *-*-hpux11.[12]*) 1581 tm_file="${tm_file} pa/pa-hpux1111.h" 1582 extra_options="${extra_options} pa/pa-hpux1111.opt" 1583 ;; 1584 *-*-hpux11.[3-9]*) 1585 tm_file="${tm_file} pa/pa-hpux1131.h" 1586 extra_options="${extra_options} pa/pa-hpux1131.opt" 1587 ;; 1588 esac 1589 tmake_file="pa/t-pa t-slibgcc" 1590 d_target_objs="${d_target_objs} pa-d.o" 1591 case x${enable_threads} in 1592 x | xyes | xposix ) 1593 thread_file=posix 1594 ;; 1595 esac 1596 use_collect2=yes 1597 gas=yes 1598 case ${target} in 1599 *-*-hpux11.[01]*) 1600 use_gcc_stdint=provide 1601 tm_file="${tm_file} hpux-stdint.h" 1602 ;; 1603 *-*-hpux11.[23]*) 1604 use_gcc_stdint=wrap 1605 tm_file="${tm_file} hpux-stdint.h" 1606 ;; 1607 esac 1608 if test "x$with_dwarf2" != x; then 1609 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2 1610 dwarf2=no 1611 fi 1612 ;; 1613i[34567]86-*-darwin1[89]*) 1614 echo "Error: 32bit target is not supported after Darwin17" 1>&2 1615 ;; 1616i[34567]86-*-darwin*) 1617 need_64bit_isa=yes 1618 # Baseline choice for a machine that allows m64 support. 1619 with_cpu=${with_cpu:-core2} 1620 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc" 1621 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h" 1622 ;; 1623x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*) 1624 # Only 64b from now 1625 with_cpu=${with_cpu:-core2} 1626 tmake_file="${tmake_file} t-slibgcc" 1627 ;; 1628x86_64-*-darwin*) 1629 with_cpu=${with_cpu:-core2} 1630 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc" 1631 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h" 1632 ;; 1633i[34567]86-*-elfiamcu) 1634 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h" 1635 ;; 1636i[34567]86-*-elf*) 1637 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h" 1638 ;; 1639x86_64-*-elf*) 1640 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h" 1641 ;; 1642x86_64-*-rtems*) 1643 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rtemself.h rtems.h" 1644 ;; 1645i[34567]86-*-rdos*) 1646 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h" 1647 ;; 1648x86_64-*-rdos*) 1649 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rdos.h i386/rdos64.h" 1650 tmake_file="i386/t-i386elf t-svr4" 1651 ;; 1652i[34567]86-*-dragonfly*) 1653 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h" 1654 tmake_file="${tmake_file} i386/t-crtstuff" 1655 ;; 1656x86_64-*-dragonfly*) 1657 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h" 1658 tmake_file="${tmake_file} i386/t-crtstuff" 1659 ;; 1660i[34567]86-*-freebsd*) 1661 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h" 1662 ;; 1663x86_64-*-freebsd*) 1664 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h" 1665 ;; 1666i[34567]86-*-netbsdelf*) 1667 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/netbsd-elf.h" 1668 extra_options="${extra_options} netbsd.opt netbsd-elf.opt" 1669 ;; 1670x86_64-*-netbsd*) 1671 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${nbsd_tm_file} i386/x86-64.h i386/netbsd64.h" 1672 extra_options="${extra_options} netbsd.opt netbsd-elf.opt" 1673 ;; 1674i[34567]86-*-openbsd*) 1675 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h" 1676 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h" 1677 extra_options="${extra_options} openbsd.opt" 1678 gas=yes 1679 gnu_ld=yes 1680 ;; 1681x86_64-*-openbsd*) 1682 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h" 1683 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h" 1684 extra_options="${extra_options} openbsd.opt" 1685 gas=yes 1686 gnu_ld=yes 1687 ;; 1688i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu) 1689 # Intel 80386's running GNU/* 1690 # with ELF format using glibc 2 1691 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h" 1692 case ${target} in 1693 i[34567]86-*-linux*) 1694 tm_file="${tm_file} linux.h linux-android.h" 1695 extra_options="${extra_options} linux-android.opt" 1696 if test x$enable_targets = xall; then 1697 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h" 1698 tm_defines="${tm_defines} TARGET_BI_ARCH=1" 1699 tmake_file="${tmake_file} i386/t-linux64" 1700 x86_multilibs="${with_multilib_list}" 1701 if test "$x86_multilibs" = "default"; then 1702 x86_multilibs="m64,m32" 1703 fi 1704 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'` 1705 for x86_multilib in ${x86_multilibs}; do 1706 case ${x86_multilib} in 1707 m32 | m64 | mx32) 1708 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}" 1709 ;; 1710 *) 1711 echo "--with-multilib-list=${x86_with_multilib} not supported." 1712 exit 1 1713 esac 1714 done 1715 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'` 1716 need_64bit_isa=yes 1717 if test x$with_cpu = x; then 1718 if test x$with_cpu_64 = x; then 1719 with_cpu_64=generic 1720 fi 1721 else 1722 case " $x86_cpus $x86_archs $x86_64_archs " in 1723 *" $with_cpu "*) 1724 ;; 1725 *) 1726 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 1727 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2 1728 exit 1 1729 ;; 1730 esac 1731 fi 1732 else 1733 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h" 1734 fi 1735 ;; 1736 i[34567]86-*-kfreebsd*-gnu) 1737 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h" 1738 ;; 1739 i[34567]86-*-kopensolaris*-gnu) 1740 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h" 1741 ;; 1742 i[34567]86-*-gnu*) 1743 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h" 1744 ;; 1745 esac 1746 ;; 1747x86_64-*-linux* | x86_64-*-kfreebsd*-gnu) 1748 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \ 1749 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h" 1750 case ${target} in 1751 x86_64-*-linux*) 1752 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h" 1753 extra_options="${extra_options} linux-android.opt" 1754 ;; 1755 x86_64-*-kfreebsd*-gnu) 1756 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h" 1757 ;; 1758 esac 1759 tmake_file="${tmake_file} i386/t-linux64" 1760 x86_multilibs="${with_multilib_list}" 1761 if test "$x86_multilibs" = "default"; then 1762 case ${with_abi} in 1763 x32 | mx32) 1764 x86_multilibs="mx32" 1765 ;; 1766 *) 1767 x86_multilibs="m64,m32" 1768 ;; 1769 esac 1770 fi 1771 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'` 1772 for x86_multilib in ${x86_multilibs}; do 1773 case ${x86_multilib} in 1774 m32 | m64 | mx32) 1775 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}" 1776 ;; 1777 *) 1778 echo "--with-multilib-list=${x86_with_multilib} not supported." 1779 exit 1 1780 esac 1781 done 1782 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'` 1783 ;; 1784i[34567]86-pc-msdosdjgpp*) 1785 xm_file=i386/xm-djgpp.h 1786 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h" 1787 native_system_header_dir=/dev/env/DJDIR/include 1788 extra_options="${extra_options} i386/djgpp.opt" 1789 gnu_ld=yes 1790 gas=yes 1791 use_gcc_stdint=wrap 1792 ;; 1793i[34567]86-*-lynxos*) 1794 xm_defines=POSIX 1795 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h" 1796 tmake_file="${tmake_file} t-lynx" 1797 extra_options="${extra_options} lynx.opt" 1798 thread_file=lynx 1799 gnu_ld=yes 1800 gas=yes 1801 ;; 1802i[34567]86-*-nto-qnx*) 1803 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h" 1804 extra_options="${extra_options} i386/nto.opt" 1805 gnu_ld=yes 1806 gas=yes 1807 ;; 1808i[34567]86-*-rtems*) 1809 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h newlib-stdint.h" 1810 tmake_file="${tmake_file} i386/t-rtems" 1811 ;; 1812i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*) 1813 # Set default arch_32 to pentium4, tune_32 to generic like the other 1814 # i386 targets, although config.guess defaults to i386-pc-solaris2*. 1815 with_arch_32=${with_arch_32:-pentium4} 1816 with_tune_32=${with_tune_32:-generic} 1817 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}" 1818 tm_defines="${tm_defines} TARGET_BI_ARCH=1" 1819 tmake_file="$tmake_file i386/t-sol2" 1820 need_64bit_isa=yes 1821 if test x$with_cpu = x; then 1822 if test x$with_cpu_64 = x; then 1823 with_cpu_64=generic 1824 fi 1825 else 1826 case " $x86_cpus $x86_archs $x86_64_archs " in 1827 *" $with_cpu "*) 1828 ;; 1829 *) 1830 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 1831 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2 1832 exit 1 1833 ;; 1834 esac 1835 fi 1836 ;; 1837i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae|i[4567]86-wrs-vxworks7|x86_64-wrs-vxworks7) 1838 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h" 1839 case ${target} in 1840 x86_64-*) 1841 need_64bit_isa=yes 1842 tm_file="${tm_file} i386/x86-64.h" 1843 ;; 1844 esac 1845 tm_file="${tm_file} vx-common.h" 1846 case ${target} in 1847 *-vxworksae*) 1848 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h" 1849 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae" 1850 ;; 1851 *) 1852 tm_file="${tm_file} vxworks.h i386/vxworks.h" 1853 tmake_file="${tmake_file} i386/t-vxworks" 1854 ;; 1855 esac 1856 ;; 1857i[34567]86-*-cygwin*) 1858 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h i386/cygwin-stdint.h" 1859 xm_file=i386/xm-cygwin.h 1860 tmake_file="${tmake_file} i386/t-cygming t-slibgcc" 1861 target_gtfiles="\$(srcdir)/config/i386/winnt.c" 1862 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt" 1863 extra_objs="${extra_objs} winnt.o winnt-stubs.o" 1864 c_target_objs="${c_target_objs} msformat-c.o" 1865 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o" 1866 if test x$enable_threads = xyes; then 1867 thread_file='posix' 1868 fi 1869 default_use_cxa_atexit=yes 1870 use_gcc_stdint=wrap 1871 ;; 1872x86_64-*-cygwin*) 1873 need_64bit_isa=yes 1874 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h i386/cygwin-w64.h i386/cygwin-stdint.h" 1875 xm_file=i386/xm-cygwin.h 1876 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64" 1877 target_gtfiles="\$(srcdir)/config/i386/winnt.c" 1878 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt" 1879 extra_objs="${extra_objs} winnt.o winnt-stubs.o" 1880 c_target_objs="${c_target_objs} msformat-c.o" 1881 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o" 1882 if test x$enable_threads = xyes; then 1883 thread_file='posix' 1884 fi 1885 default_use_cxa_atexit=yes 1886 use_gcc_stdint=wrap 1887 tm_defines="${tm_defines} TARGET_CYGWIN64=1" 1888 ;; 1889i[34567]86-*-mingw* | x86_64-*-mingw*) 1890 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h" 1891 xm_file=i386/xm-mingw32.h 1892 c_target_objs="${c_target_objs} winnt-c.o" 1893 cxx_target_objs="${cxx_target_objs} winnt-c.o" 1894 target_has_targetcm="yes" 1895 case ${target} in 1896 x86_64-*-* | *-w64-*) 1897 need_64bit_isa=yes 1898 ;; 1899 *) 1900 ;; 1901 esac 1902 if test x$enable_threads = xposix ; then 1903 tm_file="${tm_file} i386/mingw-pthread.h" 1904 fi 1905 tm_file="${tm_file} i386/mingw32.h" 1906 # This makes the logic if mingw's or the w64 feature set has to be used 1907 case ${target} in 1908 *-w64-*) 1909 user_headers_inc_next_post="${user_headers_inc_next_post} float.h" 1910 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h" 1911 tm_file="${tm_file} i386/mingw-w64.h" 1912 if test x$enable_targets = xall; then 1913 tm_defines="${tm_defines} TARGET_BI_ARCH=1" 1914 if test x$with_cpu = x; then 1915 if test x$with_cpu_64 = x; then 1916 with_cpu_64=generic 1917 fi 1918 else 1919 case " $x86_cpus $x86_archs $x86_64_archs " in 1920 *" $with_cpu "*) 1921 ;; 1922 *) 1923 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2 1924 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2 1925 exit 1 1926 ;; 1927 esac 1928 fi 1929 fi 1930 ;; 1931 *) 1932 ;; 1933 esac 1934 tm_file="${tm_file} i386/mingw-stdint.h" 1935 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc" 1936 case ${target} in 1937 x86_64-w64-*) 1938 tmake_file="${tmake_file} i386/t-mingw-w64" 1939 ;; 1940 i[34567]86-w64-*) 1941 tmake_file="${tmake_file} i386/t-mingw-w32" 1942 ;; 1943 esac 1944 native_system_header_dir=/mingw/include 1945 target_gtfiles="\$(srcdir)/config/i386/winnt.c" 1946 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt" 1947 case ${target} in 1948 *-w64-*) 1949 extra_options="${extra_options} i386/mingw-w64.opt" 1950 ;; 1951 *) 1952 ;; 1953 esac 1954 extra_objs="${extra_objs} winnt.o winnt-stubs.o" 1955 c_target_objs="${c_target_objs} msformat-c.o" 1956 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o" 1957 gas=yes 1958 gnu_ld=yes 1959 default_use_cxa_atexit=yes 1960 use_gcc_stdint=wrap 1961 case ${enable_threads} in 1962 "" | yes | win32) 1963 thread_file='win32' 1964 ;; 1965 posix) 1966 thread_file='posix' 1967 ;; 1968 esac 1969 case ${target} in 1970 *mingw32crt*) 1971 tm_file="${tm_file} i386/crtdll.h" 1972 ;; 1973 *mingw32msv* | *mingw*) 1974 ;; 1975 esac 1976 ;; 1977x86_64-*-fuchsia*) 1978 tmake_file="${tmake_file} i386/t-x86_64-elf" 1979 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h fuchsia.h" 1980 ;; 1981ia64*-*-elf*) 1982 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h" 1983 tmake_file="ia64/t-ia64" 1984 target_cpu_default="0" 1985 if test x$gas = xyes 1986 then 1987 target_cpu_default="${target_cpu_default}|MASK_GNU_AS" 1988 fi 1989 if test x$gnu_ld = xyes 1990 then 1991 target_cpu_default="${target_cpu_default}|MASK_GNU_LD" 1992 fi 1993 ;; 1994ia64*-*-freebsd*) 1995 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h" 1996 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" 1997 tmake_file="${tmake_file} ia64/t-ia64" 1998 ;; 1999ia64*-*-linux*) 2000 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h" 2001 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind" 2002 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD" 2003 ;; 2004ia64*-*-hpux*) 2005 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h" 2006 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc" 2007 target_cpu_default="MASK_GNU_AS" 2008 case x$enable_threads in 2009 x | xyes | xposix ) 2010 thread_file=posix 2011 ;; 2012 esac 2013 use_collect2=no 2014 c_target_objs="ia64-c.o" 2015 cxx_target_objs="ia64-c.o" 2016 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt" 2017 use_gcc_stdint=wrap 2018 tm_file="${tm_file} hpux-stdint.h" 2019 case ${target} in 2020 *-*-hpux11.3*) 2021 tm_file="${tm_file} ia64/hpux-unix2003.h" 2022 ;; 2023 esac 2024 ;; 2025ia64-hp-*vms*) 2026 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h" 2027 tmake_file="${tmake_file} ia64/t-ia64" 2028 target_cpu_default="0" 2029 if test x$gas = xyes 2030 then 2031 target_cpu_default="${target_cpu_default}|MASK_GNU_AS" 2032 fi 2033 extra_options="${extra_options} ia64/vms.opt" 2034 ;; 2035iq2000*-*-elf*) 2036 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h" 2037 out_file=iq2000/iq2000.c 2038 md_file=iq2000/iq2000.md 2039 ;; 2040lm32-*-elf*) 2041 tm_file="dbxelf.h elfos.h ${tm_file} newlib-stdint.h" 2042 tmake_file="${tmake_file} lm32/t-lm32" 2043 ;; 2044lm32-*-rtems*) 2045 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h" 2046 tmake_file="${tmake_file} lm32/t-lm32" 2047 tmake_file="${tmake_file} lm32/t-rtems" 2048 ;; 2049lm32-*-uclinux*) 2050 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h" 2051 tmake_file="${tmake_file} lm32/t-lm32" 2052 ;; 2053m32r-*-elf*) 2054 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 2055 ;; 2056m32rle-*-elf*) 2057 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}" 2058 ;; 2059m32r-*-linux*) 2060 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h" 2061 tmake_file="${tmake_file} m32r/t-linux t-slibgcc" 2062 gnu_ld=yes 2063 if test x$enable_threads = xyes; then 2064 thread_file='posix' 2065 fi 2066 ;; 2067m32rle-*-linux*) 2068 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h" 2069 tmake_file="${tmake_file} m32r/t-linux t-slibgcc" 2070 gnu_ld=yes 2071 if test x$enable_threads = xyes; then 2072 thread_file='posix' 2073 fi 2074 ;; 2075m68k-*-elf* | fido-*-elf*) 2076 case ${target} in 2077 fido-*-elf*) 2078 # Check that $with_cpu makes sense. 2079 case $with_cpu in 2080 "" | "fidoa") 2081 ;; 2082 *) 2083 echo "Cannot accept --with-cpu=$with_cpu" 2084 exit 1 2085 ;; 2086 esac 2087 with_cpu=fidoa 2088 ;; 2089 *) 2090 default_m68k_cpu=68020 2091 default_cf_cpu=5206 2092 ;; 2093 esac 2094 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h newlib-stdint.h m68k/m68kemb.h m68k/m68020-elf.h" 2095 tm_defines="${tm_defines} MOTOROLA=1" 2096 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf" 2097 # Add multilibs for targets other than fido. 2098 case ${target} in 2099 fido-*-elf*) 2100 ;; 2101 *) 2102 tmake_file="$tmake_file m68k/t-mlibs" 2103 ;; 2104 esac 2105 ;; 2106m68k*-*-netbsdelf*) 2107 default_m68k_cpu=68020 2108 default_cf_cpu=5475 2109 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} m68k/netbsd-elf.h" 2110 extra_options="${extra_options} netbsd.opt netbsd-elf.opt" 2111 tm_defines="${tm_defines} MOTOROLA=1 CHAR_FAST8=1 SHORT_FAST16=1" 2112 ;; 2113m68k*-*-openbsd*) 2114 default_m68k_cpu=68020 2115 default_cf_cpu=5475 2116 # needed to unconfuse gdb 2117 tm_defines="${tm_defines} OBSD_OLD_GAS" 2118 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h" 2119 extra_options="${extra_options} openbsd.opt" 2120 tmake_file="t-openbsd m68k/t-openbsd" 2121 # we need collect2 until our bug is fixed... 2122 use_collect2=yes 2123 ;; 2124m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux 2125 # with uClibc, using the new GNU/Linux-style 2126 # ABI. 2127 default_m68k_cpu=68020 2128 default_cf_cpu=5206 2129 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h" 2130 extra_options="${extra_options} m68k/uclinux.opt" 2131 tm_defines="${tm_defines} MOTOROLA=1" 2132 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs" 2133 ;; 2134m68k-*-linux*) # Motorola m68k's running GNU/Linux 2135 # with ELF format using glibc 2 2136 # aka the GNU/Linux C library 6. 2137 default_m68k_cpu=68020 2138 default_cf_cpu=5475 2139 with_arch=${with_arch:-m68k} 2140 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h" 2141 extra_options="${extra_options} m68k/ieee.opt" 2142 tm_defines="${tm_defines} MOTOROLA=1" 2143 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs" 2144 ;; 2145m68k-*-rtems*) 2146 default_m68k_cpu=68020 2147 default_cf_cpu=5206 2148 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs" 2149 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h newlib-stdint.h" 2150 tm_defines="${tm_defines} MOTOROLA=1" 2151 ;; 2152mcore-*-elf) 2153 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h" 2154 tmake_file=mcore/t-mcore 2155 inhibit_libc=true 2156 ;; 2157microblaze*-linux*) 2158 case $target in 2159 microblazeel-*) 2160 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0" 2161 ;; 2162 microblaze-*) 2163 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321" 2164 ;; 2165 esac 2166 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h" 2167 tm_file="${tm_file} glibc-stdint.h" 2168 c_target_objs="${c_target_objs} microblaze-c.o" 2169 cxx_target_objs="${cxx_target_objs} microblaze-c.o" 2170 tmake_file="${tmake_file} microblaze/t-microblaze" 2171 tmake_file="${tmake_file} microblaze/t-microblaze-linux" 2172 ;; 2173microblaze*-*-rtems*) 2174 case $target in 2175 microblazeel-*) 2176 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0" 2177 ;; 2178 microblaze-*) 2179 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321" 2180 ;; 2181 esac 2182 tm_file="${tm_file} dbxelf.h" 2183 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h" 2184 c_target_objs="${c_target_objs} microblaze-c.o" 2185 cxx_target_objs="${cxx_target_objs} microblaze-c.o" 2186 tmake_file="${tmake_file} microblaze/t-microblaze" 2187 tmake_file="${tmake_file} microblaze/t-rtems" 2188 ;; 2189microblaze*-*-elf) 2190 case $target in 2191 microblazeel-*) 2192 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0" 2193 ;; 2194 microblaze-*) 2195 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321" 2196 ;; 2197 esac 2198 tm_file="${tm_file} dbxelf.h newlib-stdint.h" 2199 c_target_objs="${c_target_objs} microblaze-c.o" 2200 cxx_target_objs="${cxx_target_objs} microblaze-c.o" 2201 tmake_file="${tmake_file} microblaze/t-microblaze" 2202 ;; 2203riscv*-*-linux*) 2204 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} riscv/linux.h" 2205 case "x${enable_multilib}" in 2206 xno) ;; 2207 xyes) tmake_file="${tmake_file} riscv/t-linux-multilib" ;; 2208 *) echo "Unknown value for enable_multilib"; exit 1 2209 esac 2210 tmake_file="${tmake_file} riscv/t-riscv riscv/t-linux" 2211 gnu_ld=yes 2212 gas=yes 2213 # Force .init_array support. The configure script cannot always 2214 # automatically detect that GAS supports it, yet we require it. 2215 gcc_cv_initfini_array=yes 2216 ;; 2217riscv*-*-elf* | riscv*-*-rtems*) 2218 tm_file="elfos.h newlib-stdint.h ${tm_file} riscv/elf.h" 2219 case ${target} in 2220 *-*-rtems*) 2221 tm_file="${tm_file} rtems.h riscv/rtems.h" 2222 tmake_file="${tmake_file} riscv/t-rtems" 2223 ;; 2224 *) 2225 case "x${enable_multilib}" in 2226 xno) ;; 2227 xyes) tmake_file="${tmake_file} riscv/t-elf-multilib" ;; 2228 *) echo "Unknown value for enable_multilib"; exit 1 2229 esac 2230 esac 2231 tmake_file="${tmake_file} riscv/t-riscv" 2232 gnu_ld=yes 2233 gas=yes 2234 # Force .init_array support. The configure script cannot always 2235 # automatically detect that GAS supports it, yet we require it. 2236 gcc_cv_initfini_array=yes 2237 ;; 2238riscv*-*-freebsd*) 2239 tm_file="${tm_file} elfos.h ${fbsd_tm_file} riscv/freebsd.h" 2240 tmake_file="${tmake_file} riscv/t-riscv" 2241 gnu_ld=yes 2242 gas=yes 2243 # Force .init_array support. The configure script cannot always 2244 # automatically detect that GAS supports it, yet we require it. 2245 gcc_cv_initfini_array=yes 2246 ;; 2247mips*-*-netbsd*) # NetBSD/mips, either endian. 2248 target_cpu_default="MASK_ABICALLS" 2249 tm_file="elfos.h ${tm_file} mips/elf.h ${nbsd_tm_file} mips/netbsd.h" 2250 extra_options="${extra_options} netbsd.opt netbsd-elf.opt" 2251 ;; 2252mips*-img-linux*) 2253 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h" 2254 extra_options="${extra_options} linux-android.opt" 2255 tmake_file="${tmake_file} mips/t-img-linux" 2256 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32" 2257 with_arch_32="mips32r6" 2258 with_arch_64="mips64r6" 2259 gnu_ld=yes 2260 gas=yes 2261 ;; 2262mips*-mti-linux*) 2263 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h" 2264 extra_options="${extra_options} linux-android.opt" 2265 tmake_file="${tmake_file} mips/t-mti-linux" 2266 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32" 2267 with_arch_32="mips32r2" 2268 with_arch_64="mips64r2" 2269 gnu_ld=yes 2270 gas=yes 2271 ;; 2272mips*-*-linux*) # Linux MIPS, either endian. 2273 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h" 2274 extra_options="${extra_options} linux-android.opt" 2275 case ${target} in 2276 mipsisa32r6*) 2277 default_mips_arch=mips32r6 2278 ;; 2279 mipsisa32r2*) 2280 default_mips_arch=mips32r2 2281 ;; 2282 mipsisa32*) 2283 default_mips_arch=mips32 2284 ;; 2285 mips64el-st-linux-gnu) 2286 default_mips_abi=n32 2287 tm_file="${tm_file} mips/st.h" 2288 tmake_file="${tmake_file} mips/t-st" 2289 enable_mips_multilibs="yes" 2290 ;; 2291 mips64octeon*-*-linux*) 2292 default_mips_abi=n32 2293 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\"" 2294 target_cpu_default=MASK_SOFT_FLOAT_ABI 2295 enable_mips_multilibs="yes" 2296 ;; 2297 mipsisa64r6*-*-linux*) 2298 default_mips_abi=n32 2299 default_mips_arch=mips64r6 2300 enable_mips_multilibs="yes" 2301 ;; 2302 mipsisa64r2*-*-linux*) 2303 default_mips_abi=n32 2304 default_mips_arch=mips64r2 2305 enable_mips_multilibs="yes" 2306 ;; 2307 mips64*-*-linux* | mipsisa64*-*-linux*) 2308 default_mips_abi=n32 2309 enable_mips_multilibs="yes" 2310 ;; 2311 esac 2312 if test x$enable_targets = xall; then 2313 enable_mips_multilibs="yes" 2314 fi 2315 if test x$enable_mips_multilibs = xyes; then 2316 tmake_file="${tmake_file} mips/t-linux64" 2317 fi 2318 ;; 2319mips*-mti-elf*) 2320 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h" 2321 tmake_file="mips/t-mti-elf" 2322 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32" 2323 with_arch_32="mips32r2" 2324 with_arch_64="mips64r2" 2325 ;; 2326mips*-img-elf*) 2327 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h" 2328 tmake_file="mips/t-img-elf" 2329 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32" 2330 with_arch_32="mips32r6" 2331 with_arch_64="mips64r6" 2332 ;; 2333mips*-sde-elf*) 2334 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h" 2335 tmake_file="mips/t-sde" 2336 extra_options="${extra_options} mips/sde.opt" 2337 case "${with_newlib}" in 2338 yes) 2339 # newlib / libgloss. 2340 ;; 2341 *) 2342 # MIPS toolkit libraries. 2343 tm_file="$tm_file mips/sdemtk.h" 2344 tmake_file="$tmake_file mips/t-sdemtk" 2345 case ${enable_threads} in 2346 "" | yes | mipssde) 2347 thread_file='mipssde' 2348 ;; 2349 esac 2350 ;; 2351 esac 2352 case ${target} in 2353 mipsisa32r6*) 2354 tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32" 2355 ;; 2356 mipsisa32r2*) 2357 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32" 2358 ;; 2359 mipsisa32*) 2360 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32" 2361 ;; 2362 mipsisa64r6*) 2363 tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32" 2364 ;; 2365 mipsisa64r2*) 2366 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32" 2367 ;; 2368 mipsisa64*) 2369 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32" 2370 ;; 2371 esac 2372 ;; 2373mipsisa32-*-elf* | mipsisa32el-*-elf* | \ 2374mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \ 2375mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \ 2376mipsisa64-*-elf* | mipsisa64el-*-elf* | \ 2377mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \ 2378mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*) 2379 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h" 2380 tmake_file="mips/t-isa3264" 2381 case ${target} in 2382 mipsisa32r6*) 2383 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37" 2384 ;; 2385 mipsisa32r2*) 2386 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33" 2387 ;; 2388 mipsisa32*) 2389 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32" 2390 ;; 2391 mipsisa64r6*) 2392 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69" 2393 ;; 2394 mipsisa64r2*) 2395 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65" 2396 ;; 2397 mipsisa64*) 2398 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64" 2399 ;; 2400 esac 2401 case ${target} in 2402 mipsisa32*-*-elfoabi*) 2403 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32" 2404 tm_file="${tm_file} mips/elfoabi.h" 2405 ;; 2406 mipsisa64*-*-elfoabi*) 2407 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64" 2408 tm_file="${tm_file} mips/elfoabi.h" 2409 ;; 2410 *-*-elf*) 2411 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI" 2412 ;; 2413 esac 2414 ;; 2415mipsisa64sr71k-*-elf*) 2416 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h" 2417 tmake_file=mips/t-sr71k 2418 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI" 2419 ;; 2420mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*) 2421 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h" 2422 tmake_file="mips/t-elf mips/t-sb1" 2423 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64" 2424 ;; 2425mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*) 2426 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h" 2427 tmake_file="mips/t-elf" 2428 ;; 2429mips64r5900-*-elf* | mips64r5900el-*-elf*) 2430 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h" 2431 tmake_file="mips/t-elf" 2432 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32" 2433 ;; 2434mips64-*-elf* | mips64el-*-elf*) 2435 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h" 2436 tmake_file="mips/t-elf" 2437 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" 2438 ;; 2439mips64vr-*-elf* | mips64vrel-*-elf*) 2440 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h" 2441 tmake_file=mips/t-vr 2442 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI" 2443 ;; 2444mips64orion-*-elf* | mips64orionel-*-elf*) 2445 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h" 2446 tmake_file="mips/t-elf" 2447 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64" 2448 ;; 2449mips*-*-rtems*) 2450 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h" 2451 tmake_file="${tmake_file} mips/t-elf mips/t-rtems" 2452 ;; 2453mips-wrs-vxworks) 2454 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h" 2455 tmake_file="${tmake_file} mips/t-vxworks" 2456 ;; 2457mipstx39-*-elf* | mipstx39el-*-elf*) 2458 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h" 2459 tmake_file="mips/t-r3900" 2460 ;; 2461mmix-knuth-mmixware) 2462 tm_file="${tm_file} newlib-stdint.h" 2463 use_gcc_stdint=wrap 2464 ;; 2465mn10300-*-*) 2466 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 2467 if test x$stabs = xyes 2468 then 2469 tm_file="${tm_file} dbx.h" 2470 fi 2471 use_collect2=no 2472 use_gcc_stdint=wrap 2473 ;; 2474msp430*-*-*) 2475 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 2476 c_target_objs="msp430-c.o" 2477 cxx_target_objs="msp430-c.o" 2478 tmake_file="${tmake_file} msp430/t-msp430" 2479 extra_gcc_objs="driver-msp430.o" 2480 ;; 2481nds32*-*-*) 2482 target_cpu_default="0" 2483 tm_defines="${tm_defines}" 2484 case ${target} in 2485 nds32le*-*-*) 2486 ;; 2487 nds32be-*-*) 2488 target_cpu_default="${target_cpu_default}|MASK_BIG_ENDIAN" 2489 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" 2490 ;; 2491 esac 2492 case ${target} in 2493 nds32*-*-elf*) 2494 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} nds32/elf.h nds32/nds32_intrinsic.h" 2495 tmake_file="nds32/t-nds32 nds32/t-elf" 2496 ;; 2497 nds32*-*-linux*) 2498 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h" 2499 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux" 2500 gcc_cv_initfini_array=yes 2501 ;; 2502 esac 2503 2504 # Handle --enable-default-relax setting. 2505 if test x${enable_default_relax} = xyes; then 2506 tm_defines="${tm_defines} TARGET_DEFAULT_RELAX=1" 2507 fi 2508 # Handle --with-ext-dsp 2509 if test x${with_ext_dsp} = xyes; then 2510 tm_defines="${tm_defines} TARGET_DEFAULT_EXT_DSP=1" 2511 fi 2512 ;; 2513nios2-*-*) 2514 tm_file="elfos.h ${tm_file}" 2515 tmake_file="${tmake_file} nios2/t-nios2" 2516 case ${target} in 2517 nios2-*-linux*) 2518 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h " 2519 ;; 2520 nios2-*-elf*) 2521 tm_file="${tm_file} newlib-stdint.h nios2/elf.h" 2522 extra_options="${extra_options} nios2/elf.opt" 2523 ;; 2524 nios2-*-rtems*) 2525 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h" 2526 tmake_file="${tmake_file} t-rtems nios2/t-rtems" 2527 ;; 2528 esac 2529 ;; 2530nvptx-*) 2531 tm_file="${tm_file} newlib-stdint.h" 2532 use_gcc_stdint=wrap 2533 tmake_file="nvptx/t-nvptx" 2534 if test x$enable_as_accelerator = xyes; then 2535 extra_programs="${extra_programs} mkoffload\$(exeext)" 2536 tm_file="${tm_file} nvptx/offload.h" 2537 fi 2538 ;; 2539or1k*-*-*) 2540 tm_file="elfos.h ${tm_file}" 2541 tmake_file="${tmake_file} or1k/t-or1k" 2542 # Force .init_array support. The configure script cannot always 2543 # automatically detect that GAS supports it, yet we require it. 2544 gcc_cv_initfini_array=yes 2545 2546 # Handle --with-multilib-list=... 2547 or1k_multilibs="${with_multilib_list}" 2548 if test "$or1k_multilibs" = "default"; then 2549 or1k_multilibs="mcmov,msoft-mul,msoft-div" 2550 fi 2551 or1k_multilibs=`echo $or1k_multilibs | sed -e 's/,/ /g'` 2552 for or1k_multilib in ${or1k_multilibs}; do 2553 case ${or1k_multilib} in 2554 mcmov | msext | msfimm | \ 2555 mhard-div | mhard-mul | \ 2556 msoft-div | msoft-mul ) 2557 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${or1k_multilib}" 2558 ;; 2559 *) 2560 echo "--with-multilib-list=${with_multilib_list} not supported." 2561 exit 1 2562 esac 2563 done 2564 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'` 2565 2566 case ${target} in 2567 or1k*-*-linux*) 2568 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h" 2569 tm_file="${tm_file} or1k/linux.h" 2570 ;; 2571 or1k*-*-elf*) 2572 tm_file="${tm_file} newlib-stdint.h or1k/elf.h" 2573 extra_options="${extra_options} or1k/elf.opt" 2574 ;; 2575 or1k*-*-rtems*) 2576 tm_file="${tm_file} newlib-stdint.h or1k/rtems.h rtems.h" 2577 tmake_file="${tmake_file} or1k/t-rtems" 2578 ;; 2579 esac 2580 ;; 2581pdp11-*-*) 2582 tm_file="${tm_file} newlib-stdint.h" 2583 use_gcc_stdint=wrap 2584 ;; 2585# port not yet contributed 2586#powerpc-*-openbsd*) 2587# tmake_file="${tmake_file} rs6000/t-fprules" 2588# extra_headers= 2589# ;; 2590powerpc-*-darwin*) 2591 extra_options="${extra_options} ${cpu_type}/darwin.opt" 2592 case ${target} in 2593 *-darwin1[0-9]* | *-darwin9*) 2594 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch" 2595 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h" 2596 ;; 2597 *-darwin8*) 2598 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch" 2599 tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h" 2600 tm_file="${tm_file} ${cpu_type}/darwin8.h" 2601 ;; 2602 *-darwin7*) 2603 tm_file="${tm_file} ${cpu_type}/darwin7.h" 2604 ;; 2605 *-darwin[456]*) 2606 # Earlier - ingle arch, with 32b only 2607 # OS X 10.0, the first edition is Darwin4 2608 ;; 2609 esac 2610 tmake_file="${tmake_file} t-slibgcc" 2611 ;; 2612powerpc64-*-darwin*) 2613 extra_options="${extra_options} ${cpu_type}/darwin.opt" 2614 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc" 2615 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h" 2616 ;; 2617powerpc*-*-freebsd*) 2618 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h" 2619 extra_options="${extra_options} rs6000/sysv4.opt" 2620 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" 2621 case ${target} in 2622 powerpc*le-*-*) 2623 tm_file="${tm_file} rs6000/sysv4le.h" ;; 2624 esac 2625 case ${target} in 2626 powerpc64*) 2627 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h" 2628 tmake_file="${tmake_file} rs6000/t-freebsd64" 2629 extra_options="${extra_options} rs6000/linux64.opt" 2630 ;; 2631 *) 2632 tm_file="${tm_file} rs6000/freebsd.h" 2633 ;; 2634 esac 2635 ;; 2636powerpc-*-netbsd*) 2637 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h" 2638 extra_options="${extra_options} netbsd.opt netbsd-elf.opt" 2639 tmake_file="${tmake_file} rs6000/t-netbsd" 2640 extra_options="${extra_options} rs6000/sysv4.opt" 2641 ;; 2642powerpc-*-eabisimaltivec*) 2643 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h" 2644 extra_options="${extra_options} rs6000/sysv4.opt" 2645 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm" 2646 use_gcc_stdint=wrap 2647 ;; 2648powerpc-*-eabisim*) 2649 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h" 2650 extra_options="${extra_options} rs6000/sysv4.opt" 2651 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" 2652 use_gcc_stdint=wrap 2653 ;; 2654powerpc-*-elf*) 2655 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h" 2656 extra_options="${extra_options} rs6000/sysv4.opt" 2657 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" 2658 ;; 2659powerpc-*-eabialtivec*) 2660 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h" 2661 extra_options="${extra_options} rs6000/sysv4.opt" 2662 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm" 2663 use_gcc_stdint=wrap 2664 ;; 2665powerpc-*-eabi*) 2666 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h" 2667 extra_options="${extra_options} rs6000/sysv4.opt" 2668 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" 2669 use_gcc_stdint=wrap 2670 ;; 2671powerpc-*-rtems*) 2672 tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/rtems.h rtems.h" 2673 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt" 2674 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm" 2675 ;; 2676powerpc*-*-linux*) 2677 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h" 2678 extra_options="${extra_options} rs6000/sysv4.opt" 2679 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm" 2680 extra_objs="$extra_objs rs6000-linux.o" 2681 case ${target} in 2682 powerpc*le-*-*) 2683 tm_file="${tm_file} rs6000/sysv4le.h" ;; 2684 esac 2685 case ${target}:${with_cpu} in 2686 powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;; 2687 esac 2688 maybe_biarch=${cpu_is_64bit} 2689 case ${enable_targets} in 2690 *powerpc64*) maybe_biarch=yes ;; 2691 all) maybe_biarch=yes ;; 2692 esac 2693 case ${target}:${enable_targets}:${maybe_biarch} in 2694 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \ 2695 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \ 2696 | powerpcle-*:*powerpc64le*:yes) 2697 if test x$cpu_is_64bit = xyes; then 2698 tm_file="${tm_file} rs6000/default64.h" 2699 fi 2700 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h" 2701 tmake_file="$tmake_file rs6000/t-linux64" 2702 case ${target} in 2703 powerpc*le-*-*) 2704 tmake_file="$tmake_file rs6000/t-linux64le" 2705 case ${enable_targets} in 2706 all | *powerpc64-* | *powerpc-*) 2707 tmake_file="$tmake_file rs6000/t-linux64lebe" ;; 2708 esac ;; 2709 *) 2710 case ${enable_targets} in 2711 all | *powerpc64le-* | *powerpcle-*) 2712 tmake_file="$tmake_file rs6000/t-linux64bele" ;; 2713 esac ;; 2714 esac 2715 extra_options="${extra_options} rs6000/linux64.opt" 2716 ;; 2717 powerpc64*) 2718 tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h" 2719 extra_options="${extra_options} rs6000/linux64.opt" 2720 tmake_file="${tmake_file} rs6000/t-linux" 2721 ;; 2722 *) 2723 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h" 2724 tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux" 2725 ;; 2726 esac 2727 case ${target} in 2728 powerpc*-*-linux*ppc476*) 2729 tm_file="${tm_file} rs6000/476.h" 2730 extra_options="${extra_options} rs6000/476.opt" ;; 2731 powerpc*-*-linux*altivec*) 2732 tm_file="${tm_file} rs6000/linuxaltivec.h" ;; 2733 esac 2734 case ${target} in 2735 *-linux*-musl*) 2736 enable_secureplt=yes ;; 2737 esac 2738 if test x${enable_secureplt} = xyes; then 2739 tm_file="rs6000/secureplt.h ${tm_file}" 2740 fi 2741 ;; 2742powerpc-wrs-vxworks*) 2743 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h" 2744 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks" 2745 extra_options="${extra_options} rs6000/sysv4.opt" 2746 extra_headers=ppc-asm.h 2747 case ${target} in 2748 *-vxworksmils*) 2749 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h" 2750 tmake_file="${tmake_file} rs6000/t-vxworksmils" 2751 ;; 2752 *-vxworksae*) 2753 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksae.h" 2754 tmake_file="${tmake_file} rs6000/t-vxworksae" 2755 ;; 2756 *-vxworks*) 2757 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h" 2758 ;; 2759 esac 2760 ;; 2761powerpc-*-lynxos*) 2762 xm_defines=POSIX 2763 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h" 2764 tmake_file="t-lynx rs6000/t-lynx" 2765 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt" 2766 thread_file=lynx 2767 gnu_ld=yes 2768 gas=yes 2769 ;; 2770powerpcle-*-elf*) 2771 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h" 2772 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" 2773 extra_options="${extra_options} rs6000/sysv4.opt" 2774 ;; 2775powerpcle-*-eabisim*) 2776 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h" 2777 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" 2778 extra_options="${extra_options} rs6000/sysv4.opt" 2779 use_gcc_stdint=wrap 2780 ;; 2781powerpcle-*-eabi*) 2782 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h" 2783 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" 2784 extra_options="${extra_options} rs6000/sysv4.opt" 2785 use_gcc_stdint=wrap 2786 ;; 2787rs6000-ibm-aix6.* | powerpc-ibm-aix6.*) 2788 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h" 2789 tmake_file="rs6000/t-aix52 t-slibgcc" 2790 extra_options="${extra_options} rs6000/aix64.opt" 2791 use_collect2=yes 2792 thread_file='aix' 2793 use_gcc_stdint=wrap 2794 default_use_cxa_atexit=yes 2795 ;; 2796rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*) 2797 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h" 2798 tmake_file="rs6000/t-aix52 t-slibgcc" 2799 extra_options="${extra_options} rs6000/aix64.opt" 2800 use_collect2=yes 2801 thread_file='aix' 2802 use_gcc_stdint=wrap 2803 default_use_cxa_atexit=yes 2804 ;; 2805rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*) 2806 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h" 2807 tmake_file="rs6000/t-aix52 t-slibgcc" 2808 extra_options="${extra_options} rs6000/aix64.opt" 2809 use_collect2=yes 2810 thread_file='aix' 2811 use_gcc_stdint=wrap 2812 default_use_cxa_atexit=yes 2813 ;; 2814rl78-*-elf*) 2815 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 2816 target_has_targetm_common=no 2817 c_target_objs="rl78-c.o" 2818 cxx_target_objs="rl78-c.o" 2819 tmake_file="${tmake_file} rl78/t-rl78" 2820 ;; 2821rx-*-elf*) 2822 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 2823 tmake_file="${tmake_file} rx/t-rx" 2824 ;; 2825s390-*-linux*) 2826 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h" 2827 c_target_objs="${c_target_objs} s390-c.o" 2828 cxx_target_objs="${cxx_target_objs} s390-c.o" 2829 if test x$enable_targets = xall; then 2830 tmake_file="${tmake_file} s390/t-linux64" 2831 fi 2832 tmake_file="${tmake_file} s390/t-s390" 2833 ;; 2834s390x-*-linux*) 2835 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h" 2836 tm_p_file="linux-protos.h s390/s390-protos.h" 2837 c_target_objs="${c_target_objs} s390-c.o" 2838 cxx_target_objs="${cxx_target_objs} s390-c.o" 2839 md_file=s390/s390.md 2840 extra_modes=s390/s390-modes.def 2841 out_file=s390/s390.c 2842 tmake_file="${tmake_file} s390/t-linux64 s390/t-s390" 2843 ;; 2844s390x-ibm-tpf*) 2845 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h" 2846 tm_p_file=s390/s390-protos.h 2847 c_target_objs="${c_target_objs} s390-c.o" 2848 cxx_target_objs="${cxx_target_objs} s390-c.o" 2849 md_file=s390/s390.md 2850 extra_modes=s390/s390-modes.def 2851 out_file=s390/s390.c 2852 thread_file='tpf' 2853 extra_options="${extra_options} s390/tpf.opt" 2854 tmake_file="${tmake_file} s390/t-s390" 2855 ;; 2856sh-*-elf* | sh[12346l]*-*-elf* | \ 2857 sh-*-linux* | sh[2346lbe]*-*-linux* | \ 2858 sh-*-netbsdelf* | shl*-*-netbsdelf*) 2859 tmake_file="${tmake_file} sh/t-sh sh/t-elf" 2860 if test x${with_endian} = x; then 2861 case ${target} in 2862 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;; 2863 shbe-*-* | sheb-*-*) with_endian=big,little ;; 2864 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;; 2865 shl* | sh*-*-linux* | \ 2866 sh-superh-elf) with_endian=little,big ;; 2867 sh[1234]*-*-*) with_endian=big ;; 2868 *) with_endian=big,little ;; 2869 esac 2870 fi 2871 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs. 2872 # First word : the default endian. 2873 # Second word: the secondary endian (optional). 2874 case ${with_endian} in 2875 big) TM_ENDIAN_CONFIG=mb ;; 2876 little) TM_ENDIAN_CONFIG=ml ;; 2877 big,little) TM_ENDIAN_CONFIG="mb ml" ;; 2878 little,big) TM_ENDIAN_CONFIG="ml mb" ;; 2879 *) echo "with_endian=${with_endian} not supported."; exit 1 ;; 2880 esac 2881 case ${with_endian} in 2882 little*) tm_file="sh/little.h ${tm_file}" ;; 2883 esac 2884 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h" 2885 case ${target} in 2886 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux" 2887 if test x$enable_fdpic = xyes; then 2888 tm_defines="$tm_defines FDPIC_DEFAULT=1" 2889 fi 2890 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;; 2891 sh*-*-netbsd*) 2892 tm_file="${tm_file} ${nbsd_tm_file} sh/netbsd-elf.h" 2893 extra_options="${extra_options} netbsd.opt netbsd-elf.opt" 2894 2895 ;; 2896 sh*-superh-elf) if test x$with_libgloss != xno; then 2897 with_libgloss=yes 2898 tm_file="${tm_file} sh/newlib.h" 2899 fi 2900 tm_file="${tm_file} sh/embed-elf.h" 2901 tm_file="${tm_file} sh/superh.h" 2902 extra_options="${extra_options} sh/superh.opt" ;; 2903 *) if test x$with_newlib = xyes \ 2904 && test x$with_libgloss = xyes; then 2905 tm_file="${tm_file} sh/newlib.h" 2906 fi 2907 tm_file="${tm_file} sh/embed-elf.h" ;; 2908 esac 2909 case ${target} in 2910 *-*-netbsd) 2911 ;; 2912 *-*-elf*) 2913 tm_file="${tm_file} newlib-stdint.h" 2914 ;; 2915 esac 2916 # sed el/eb endian suffixes away to avoid confusion with sh[23]e 2917 case `echo ${target} | sed 's/e[lb]-/-/'` in 2918 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;; 2919 sh4a_single*) sh_cpu_target=sh4a-single ;; 2920 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;; 2921 sh4al) sh_cpu_target=sh4al ;; 2922 sh4a*) sh_cpu_target=sh4a ;; 2923 sh4_single_only*) sh_cpu_target=sh4-single-only ;; 2924 sh4_single*) sh_cpu_target=sh4-single ;; 2925 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;; 2926 sh4* | sh-superh-*) sh_cpu_target=sh4 ;; 2927 sh3e*) sh_cpu_target=sh3e ;; 2928 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;; 2929 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;; 2930 sh2a_single*) sh_cpu_target=sh2a-single ;; 2931 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;; 2932 sh2a*) sh_cpu_target=sh2a ;; 2933 sh2e*) sh_cpu_target=sh2e ;; 2934 sh2*) sh_cpu_target=sh2 ;; 2935 *) sh_cpu_target=sh1 ;; 2936 esac 2937 # did the user say --without-fp ? 2938 if test x$with_fp = xno; then 2939 case ${sh_cpu_target} in 2940 sh4al | sh1) ;; 2941 sh4a* ) sh_cpu_target=sh4a-nofpu ;; 2942 sh4*) sh_cpu_target=sh4-nofpu ;; 2943 sh3*) sh_cpu_target=sh3 ;; 2944 sh2a*) sh_cpu_target=sh2a-nofpu ;; 2945 sh2*) sh_cpu_target=sh2 ;; 2946 *) echo --without-fp not available for $target: ignored 2947 esac 2948 tm_defines="$tm_defines STRICT_NOFPU=1" 2949 fi 2950 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`" 2951 case $sh_cpu_default in 2952 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \ 2953 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \ 2954 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \ 2955 sh3e | sh3 | sh2e | sh2 | sh1) ;; 2956 "") sh_cpu_default=${sh_cpu_target} ;; 2957 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;; 2958 esac 2959 sh_multilibs=${with_multilib_list} 2960 if test "$sh_multilibs" = "default" ; then 2961 case ${target} in 2962 sh[1234]*) sh_multilibs=${sh_cpu_target} ;; 2963 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;; 2964 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;; 2965 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;; 2966 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;; 2967 esac 2968 if test x$with_fp = xno; then 2969 sh_multilibs="`echo $sh_multilibs|sed -e s/m4/sh4-nofpu/ -e s/,m4-[^,]*//g -e s/,m[23]e// -e s/m2a,m2a-single/m2a-nofpu/ -e s/m5-..m....,//g`" 2970 fi 2971 fi 2972 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_` 2973 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"' 2974 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1" 2975 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-` 2976 for sh_multilib in ${sh_multilibs}; do 2977 case ${sh_multilib} in 2978 m1 | m2 | m2e | m3 | m3e | \ 2979 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\ 2980 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \ 2981 m2a | m2a-single | m2a-single-only | m2a-nofpu) 2982 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition 2983 # It is passed to MULTIILIB_OPTIONS verbatim. 2984 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}" 2985 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1" 2986 ;; 2987 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh 2988 # It is passed the MULTILIB_EXCEPTIONS verbatim. 2989 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;; 2990 *) 2991 echo "with_multilib_list=${sh_multilib} not supported." 2992 exit 1 2993 ;; 2994 esac 2995 done 2996 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'` 2997 if test x${enable_incomplete_targets} = xyes ; then 2998 tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1" 2999 fi 3000 tm_file="$tm_file ./sysroot-suffix.h" 3001 tmake_file="$tmake_file t-sysroot-suffix" 3002 ;; 3003sh-*-rtems*) 3004 tmake_file="${tmake_file} sh/t-sh sh/t-rtems" 3005 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h" 3006 ;; 3007sh-wrs-vxworks) 3008 tmake_file="$tmake_file sh/t-sh sh/t-vxworks" 3009 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h" 3010 ;; 3011sparc-*-elf*) 3012 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h" 3013 case ${target} in 3014 *-leon-*) 3015 tmake_file="sparc/t-sparc sparc/t-leon" 3016 ;; 3017 *-leon[3-9]*) 3018 tmake_file="sparc/t-sparc sparc/t-leon3" 3019 ;; 3020 *) 3021 tmake_file="sparc/t-sparc sparc/t-elf" 3022 ;; 3023 esac 3024 ;; 3025sparc-*-rtems*) 3026 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h" 3027 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems" 3028 ;; 3029sparc-*-linux*) 3030 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h" 3031 extra_options="${extra_options} sparc/long-double-switch.opt" 3032 case ${target} in 3033 *-leon-*) 3034 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon" 3035 ;; 3036 *-leon[3-9]*) 3037 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3" 3038 ;; 3039 *) 3040 tmake_file="${tmake_file} sparc/t-sparc" 3041 ;; 3042 esac 3043 if test x$enable_targets = xall; then 3044 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h" 3045 tmake_file="${tmake_file} sparc/t-linux64" 3046 else 3047 tm_file="${tm_file} sparc/linux.h" 3048 tmake_file="${tmake_file} sparc/t-linux" 3049 fi 3050 ;; 3051sparc-*-netbsdelf*) 3052 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h" 3053 extra_options="${extra_options} netbsd.opt netbsd-elf.opt" 3054 extra_options="${extra_options} sparc/long-double-switch.opt" 3055 tmake_file="${tmake_file} sparc/t-sparc" 3056 ;; 3057sparc*-*-solaris2*) 3058 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h" 3059 case ${target} in 3060 sparc64-*-* | sparcv9-*-*) 3061 tm_file="sparc/default64.h ${tm_file}" 3062 ;; 3063 *) 3064 test x$with_cpu != x || with_cpu=v9 3065 ;; 3066 esac 3067 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2" 3068 ;; 3069sparc-wrs-vxworks) 3070 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h" 3071 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks" 3072 ;; 3073sparc64-*-elf*) 3074 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h" 3075 extra_options="${extra_options}" 3076 tmake_file="${tmake_file} sparc/t-sparc" 3077 ;; 3078sparc64-*-rtems*) 3079 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h" 3080 extra_options="${extra_options}" 3081 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64" 3082 ;; 3083sparc64-*-linux*) 3084 tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default64.h sparc/linux64.h sparc/tso.h" 3085 extra_options="${extra_options} sparc/long-double-switch.opt" 3086 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64" 3087 ;; 3088sparc64-*-freebsd*|ultrasparc-*-freebsd*) 3089 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h" 3090 extra_options="${extra_options} sparc/long-double-switch.opt" 3091 case "x$with_cpu" in 3092 xultrasparc) ;; 3093 x) with_cpu=ultrasparc ;; 3094 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;; 3095 esac 3096 tmake_file="${tmake_file} sparc/t-sparc" 3097 ;; 3098sparc64-*-netbsd*) 3099 tm_file="sparc/biarch64.h ${tm_file}" 3100 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h ${nbsd_tm_file} sparc/netbsd-elf.h" 3101 extra_options="${extra_options} netbsd.opt netbsd-elf.opt" 3102 extra_options="${extra_options} sparc/long-double-switch.opt" 3103 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64" 3104 ;; 3105sparc64-*-openbsd*) 3106 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h" 3107 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h" 3108 extra_options="${extra_options} openbsd.opt" 3109 extra_options="${extra_options}" 3110 gas=yes gnu_ld=yes 3111 with_cpu=ultrasparc 3112 tmake_file="${tmake_file} sparc/t-sparc" 3113 ;; 3114spu-*-elf*) 3115 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h" 3116 tmake_file="spu/t-spu-elf" 3117 native_system_header_dir=/include 3118 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h" 3119 extra_modes=spu/spu-modes.def 3120 c_target_objs="${c_target_objs} spu-c.o" 3121 cxx_target_objs="${cxx_target_objs} spu-c.o" 3122 ;; 3123tic6x-*-elf) 3124 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h" 3125 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h" 3126 tmake_file="c6x/t-c6x c6x/t-c6x-elf" 3127 use_collect2=no 3128 ;; 3129tic6x-*-uclinux) 3130 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h" 3131 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h" 3132 tm_file="${tm_file} ./sysroot-suffix.h" 3133 tmake_file="t-sysroot-suffix t-slibgcc" 3134 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux" 3135 use_collect2=no 3136 ;; 3137tilegx*-*-linux*) 3138 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}" 3139 tmake_file="${tmake_file} tilegx/t-tilegx" 3140 extra_objs="${extra_objs} mul-tables.o" 3141 c_target_objs="${c_target_objs} tilegx-c.o" 3142 cxx_target_objs="${cxx_target_objs} tilegx-c.o" 3143 extra_headers="feedback.h" 3144 case $target in 3145 tilegxbe-*) 3146 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" 3147 ;; 3148 esac 3149 ;; 3150tilepro*-*-linux*) 3151 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}" 3152 tmake_file="${tmake_file} tilepro/t-tilepro" 3153 extra_objs="${extra_objs} mul-tables.o" 3154 c_target_objs="${c_target_objs} tilepro-c.o" 3155 cxx_target_objs="${cxx_target_objs} tilepro-c.o" 3156 extra_headers="feedback.h" 3157 ;; 3158v850-*-rtems*) 3159 target_cpu_default="TARGET_CPU_generic" 3160 tm_file="dbxelf.h elfos.h v850/v850.h" 3161 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h" 3162 tmake_file="${tmake_file} v850/t-v850" 3163 tmake_file="${tmake_file} v850/t-rtems" 3164 use_collect2=no 3165 c_target_objs="v850-c.o" 3166 cxx_target_objs="v850-c.o" 3167 ;; 3168v850*-*-*) 3169 case ${target} in 3170 v850e3v5-*-*) 3171 target_cpu_default="TARGET_CPU_v850e3v5" 3172 ;; 3173 v850e2v3-*-*) 3174 target_cpu_default="TARGET_CPU_v850e2v3" 3175 ;; 3176 v850e2-*-*) 3177 target_cpu_default="TARGET_CPU_v850e2" 3178 ;; 3179 v850e1-*-* | v850es-*-*) 3180 target_cpu_default="TARGET_CPU_v850e1" 3181 ;; 3182 v850e-*-*) 3183 target_cpu_default="TARGET_CPU_v850e" 3184 ;; 3185 v850-*-*) 3186 target_cpu_default="TARGET_CPU_generic" 3187 ;; 3188 esac 3189 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h" 3190 if test x$stabs = xyes 3191 then 3192 tm_file="${tm_file} dbx.h" 3193 fi 3194 use_collect2=no 3195 c_target_objs="v850-c.o" 3196 cxx_target_objs="v850-c.o" 3197 use_gcc_stdint=wrap 3198 ;; 3199vax-*-linux*) 3200 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h" 3201 extra_options="${extra_options} vax/elf.opt" 3202 ;; 3203vax-*-netbsdelf*) 3204 tm_file="${tm_file} elfos.h ${nbsd_tm_file} vax/elf.h vax/netbsd-elf.h" 3205 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt" 3206 tm_defines="${tm_defines} CHAR_FAST8=1 SHORT_FAST16=1" 3207 ;; 3208vax-*-openbsd*) 3209 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-libpthread.h vax/openbsd.h" 3210 extra_options="${extra_options} openbsd.opt" 3211 use_collect2=yes 3212 ;; 3213visium-*-elf*) 3214 tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h" 3215 tmake_file="visium/t-visium visium/t-crtstuff" 3216 ;; 3217xstormy16-*-elf) 3218 # For historical reasons, the target files omit the 'x'. 3219 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h" 3220 tm_p_file=stormy16/stormy16-protos.h 3221 tm_d_file="elfos.h stormy16/stormy16.h" 3222 md_file=stormy16/stormy16.md 3223 out_file=stormy16/stormy16.c 3224 extra_options=stormy16/stormy16.opt 3225 tmake_file="stormy16/t-stormy16" 3226 ;; 3227xtensa*-*-elf*) 3228 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h" 3229 extra_options="${extra_options} xtensa/elf.opt" 3230 ;; 3231xtensa*-*-linux*) 3232 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h" 3233 tmake_file="${tmake_file} xtensa/t-xtensa" 3234 ;; 3235xtensa*-*-uclinux*) 3236 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/uclinux.h" 3237 tmake_file="${tmake_file} xtensa/t-xtensa" 3238 extra_options="${extra_options} xtensa/uclinux.opt" 3239 ;; 3240am33_2.0-*-linux*) 3241 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h" 3242 gas=yes gnu_ld=yes 3243 use_collect2=no 3244 ;; 3245m32c-*-rtems*) 3246 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h" 3247 c_target_objs="m32c-pragma.o" 3248 cxx_target_objs="m32c-pragma.o" 3249 ;; 3250m32c-*-elf*) 3251 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 3252 c_target_objs="m32c-pragma.o" 3253 cxx_target_objs="m32c-pragma.o" 3254 ;; 3255*) 3256 echo "*** Configuration ${target} not supported" 1>&2 3257 exit 1 3258 ;; 3259esac 3260 3261case ${target} in 3262i[34567]86-*-linux* | x86_64-*-linux*) 3263 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386" 3264 ;; 3265i[34567]86-*-* | x86_64-*-*) 3266 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386" 3267 ;; 3268powerpc*-*-* | rs6000-*-*) 3269 tm_file="${tm_file} ${cpu_type}/option-defaults.h" 3270esac 3271 3272# non-glibc systems 3273case ${target} in 3274*-linux-musl*) 3275 tmake_file="${tmake_file} t-musl" 3276 ;; 3277*-linux-uclibc*) 3278 tmake_file="${tmake_file} t-uclibc" 3279 ;; 3280esac 3281 3282# Assume the existence of indirect function support and allow the use of the 3283# resolver attribute. 3284case ${target} in 3285*-*-linux*android*|*-*-linux*uclibc*|*-*-linux*musl*) 3286 ;; 3287*-*-kfreebsd*-gnu | *-*-kopensolaris*-gnu) 3288 ;; 3289*-*-linux* | *-*-gnu*) 3290 case ${target} in 3291 aarch64*-* | arm*-* | i[34567]86-* | powerpc*-* | s390*-* | sparc*-* | x86_64-*) 3292 default_gnu_indirect_function=yes 3293 ;; 3294 esac 3295 ;; 3296esac 3297 3298# Build mkoffload tool 3299case ${target} in 3300*-intelmic-* | *-intelmicemul-*) 3301 tmake_file="${tmake_file} i386/t-intelmic" 3302 tm_file="${tm_file} i386/intelmic-offload.h" 3303 ;; 3304esac 3305 3306if [ "$target_has_targetcm" = "no" ]; then 3307 c_target_objs="$c_target_objs default-c.o" 3308 cxx_target_objs="$cxx_target_objs default-c.o" 3309fi 3310 3311if [ "$common_out_file" = "" ]; then 3312 if [ "$target_has_targetm_common" = "yes" ]; then 3313 common_out_file="$cpu_type/$cpu_type-common.c" 3314 else 3315 common_out_file="default-common.c" 3316 fi 3317fi 3318 3319if [ "$target_has_targetdm" = "no" ]; then 3320 d_target_objs="$d_target_objs default-d.o" 3321fi 3322 3323# Support for --with-cpu and related options (and a few unrelated options, 3324# too). 3325case ${with_cpu} in 3326 yes | no) 3327 echo "--with-cpu must be passed a value" 1>&2 3328 exit 1 3329 ;; 3330esac 3331 3332# Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu 3333# to generic if there is no processor scheduler model for the target. 3334arch= 3335cpu= 3336arch_without_sse2=no 3337arch_without_64bit=no 3338case ${target} in 3339 i386-*-freebsd*) 3340 if test $fbsd_major -ge 6; then 3341 arch=i486 3342 else 3343 arch=i386 3344 fi 3345 cpu=generic 3346 arch_without_sse2=yes 3347 arch_without_64bit=yes 3348 ;; 3349 i386-*-netbsd*) 3350 arch=i486 3351 cpu=generic 3352 arch_without_sse2=yes 3353 arch_without_64bit=yes 3354 ;; 3355 i386-*-*) 3356 arch=i386 3357 cpu=i386 3358 arch_without_sse2=yes 3359 arch_without_64bit=yes 3360 ;; 3361 i486-*-*) 3362 arch=i486 3363 cpu=i486 3364 arch_without_sse2=yes 3365 arch_without_64bit=yes 3366 ;; 3367 i586-*-*) 3368 arch_without_sse2=yes 3369 arch_without_64bit=yes 3370 case ${target_noncanonical} in 3371 k6_2-*) 3372 arch=k6-2 3373 cpu=k6-2 3374 ;; 3375 k6_3-*) 3376 arch=k6-3 3377 cpu=k6-3 3378 ;; 3379 k6-*) 3380 arch=k6 3381 cpu=k6 3382 ;; 3383 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*) 3384 arch=pentium-mmx 3385 cpu=pentium-mmx 3386 ;; 3387 *) 3388 arch=pentium 3389 cpu=pentium 3390 ;; 3391 esac 3392 ;; 3393 i686-*-* | i786-*-*) 3394 case ${target_noncanonical} in 3395 znver1-*) 3396 arch=znver1 3397 cpu=znver1 3398 ;; 3399 znver2-*) 3400 arch=znver2 3401 cpu=znver2 3402 ;; 3403 bdver4-*) 3404 arch=bdver4 3405 cpu=bdver4 3406 ;; 3407 bdver3-*) 3408 arch=bdver3 3409 cpu=bdver3 3410 ;; 3411 bdver2-*) 3412 arch=bdver2 3413 cpu=bdver2 3414 ;; 3415 bdver1-*) 3416 arch=bdver1 3417 cpu=bdver1 3418 ;; 3419 btver1-*) 3420 arch=btver1 3421 cpu=btver1 3422 ;; 3423 btver2-*) 3424 arch=btver2 3425 cpu=btver2 3426 ;; 3427 amdfam10-*|barcelona-*) 3428 arch=amdfam10 3429 cpu=amdfam10 3430 ;; 3431 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*) 3432 arch=k8-sse3 3433 cpu=k8-sse3 3434 ;; 3435 k8-*|opteron-*|athlon64-*|athlon_fx-*) 3436 arch=k8 3437 cpu=k8 3438 ;; 3439 athlon_xp-*|athlon_mp-*|athlon_4-*) 3440 arch=athlon-4 3441 cpu=athlon-4 3442 arch_without_sse2=yes 3443 arch_without_64bit=yes 3444 ;; 3445 athlon_tbird-*|athlon-*) 3446 arch=athlon 3447 cpu=athlon 3448 arch_without_sse2=yes 3449 ;; 3450 geode-*) 3451 arch=geode 3452 cpu=geode 3453 arch_without_sse2=yes 3454 ;; 3455 pentium2-*) 3456 arch=pentium2 3457 cpu=pentium2 3458 arch_without_sse2=yes 3459 ;; 3460 pentium3-*|pentium3m-*) 3461 arch=pentium3 3462 cpu=pentium3 3463 arch_without_sse2=yes 3464 ;; 3465 pentium4-*|pentium4m-*) 3466 arch=pentium4 3467 cpu=pentium4 3468 ;; 3469 prescott-*) 3470 arch=prescott 3471 cpu=prescott 3472 ;; 3473 nocona-*) 3474 arch=nocona 3475 cpu=nocona 3476 ;; 3477 atom-*) 3478 arch=atom 3479 cpu=atom 3480 ;; 3481 slm-*) 3482 arch=slm 3483 cpu=slm 3484 ;; 3485 core2-*) 3486 arch=core2 3487 cpu=core2 3488 ;; 3489 corei7-*) 3490 arch=corei7 3491 cpu=corei7 3492 ;; 3493 corei7_avx-*) 3494 arch=corei7-avx 3495 cpu=corei7-avx 3496 ;; 3497 pentium_m-*) 3498 arch=pentium-m 3499 cpu=pentium-m 3500 ;; 3501 pentiumpro-*) 3502 arch=pentiumpro 3503 cpu=pentiumpro 3504 arch_without_sse2=yes 3505 ;; 3506 *) 3507 arch=pentiumpro 3508 cpu=generic 3509 arch_without_sse2=yes 3510 arch_without_64bit=yes 3511 ;; 3512 esac 3513 ;; 3514 x86_64-*-*) 3515 case ${target_noncanonical} in 3516 znver1-*) 3517 arch=znver1 3518 cpu=znver1 3519 ;; 3520 znver2-*) 3521 arch=znver2 3522 cpu=znver2 3523 ;; 3524 bdver4-*) 3525 arch=bdver4 3526 cpu=bdver4 3527 ;; 3528 bdver3-*) 3529 arch=bdver3 3530 cpu=bdver3 3531 ;; 3532 bdver2-*) 3533 arch=bdver2 3534 cpu=bdver2 3535 ;; 3536 bdver1-*) 3537 arch=bdver1 3538 cpu=bdver1 3539 ;; 3540 btver1-*) 3541 arch=btver1 3542 cpu=btver1 3543 ;; 3544 btver2-*) 3545 arch=btver2 3546 cpu=btver2 3547 ;; 3548 amdfam10-*|barcelona-*) 3549 arch=amdfam10 3550 cpu=amdfam10 3551 ;; 3552 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*) 3553 arch=k8-sse3 3554 cpu=k8-sse3 3555 ;; 3556 k8-*|opteron-*|athlon_64-*) 3557 arch=k8 3558 cpu=k8 3559 ;; 3560 nocona-*) 3561 arch=nocona 3562 cpu=nocona 3563 ;; 3564 atom-*) 3565 arch=atom 3566 cpu=atom 3567 ;; 3568 slm-*) 3569 arch=slm 3570 cpu=slm 3571 ;; 3572 core2-*) 3573 arch=core2 3574 cpu=core2 3575 ;; 3576 corei7-*) 3577 arch=corei7 3578 cpu=corei7 3579 ;; 3580 *) 3581 arch=x86-64 3582 cpu=generic 3583 ;; 3584 esac 3585 ;; 3586esac 3587 3588# If there is no $with_cpu option, try to infer one from ${target}. 3589# This block sets nothing except for with_cpu. 3590if test x$with_cpu = x ; then 3591 case ${target} in 3592 i[34567]86-*-elfiamcu) 3593 with_cpu=lakemont 3594 ;; 3595 i[34567]86-*-*|x86_64-*-*) 3596 with_cpu=$cpu 3597 ;; 3598 alphaev6[78]*-*-*) 3599 with_cpu=ev67 3600 ;; 3601 alphaev6*-*-*) 3602 with_cpu=ev6 3603 ;; 3604 alphapca56*-*-*) 3605 with_cpu=pca56 3606 ;; 3607 alphaev56*-*-*) 3608 with_cpu=ev56 3609 ;; 3610 alphaev5*-*-*) 3611 with_cpu=ev5 3612 ;; 3613 frv-*-*linux* | frv400-*-*linux*) 3614 with_cpu=fr400 3615 ;; 3616 frv550-*-*linux*) 3617 with_cpu=fr550 3618 ;; 3619 m68k*-*-*) 3620 case "$with_arch" in 3621 "cf") 3622 with_cpu=${default_cf_cpu} 3623 ;; 3624 "" | "m68k") 3625 with_cpu=m${default_m68k_cpu} 3626 ;; 3627 esac 3628 ;; 3629 sparc*-*-*) 3630 case ${target} in 3631 *-leon-*) 3632 with_cpu=leon 3633 ;; 3634 *-leon[3-9]*) 3635 with_cpu=leon3 3636 ;; 3637 *-leon[3-9]v7*) 3638 with_cpu=leon3v7 3639 ;; 3640 *) 3641 with_cpu="`echo ${target} | sed 's/-.*$//'`" 3642 ;; 3643 esac 3644 ;; 3645 visium-*-*) 3646 with_cpu=gr5 3647 ;; 3648 esac 3649 3650 # Avoid overriding --with-cpu-32 and --with-cpu-64 values. 3651 case ${target} in 3652 i[34567]86-*-*|x86_64-*-*) 3653 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then 3654 if test x$with_cpu_32 = x; then 3655 with_cpu_32=$with_cpu 3656 fi 3657 if test x$with_cpu_64 = x; then 3658 with_cpu_64=$with_cpu 3659 fi 3660 with_cpu= 3661 fi 3662 ;; 3663 esac 3664fi 3665 3666# Support for --with-arch and related options (and a few unrelated options, 3667# too). 3668case ${with_arch} in 3669 yes | no) 3670 echo "--with-arch must be passed a value" 1>&2 3671 exit 1 3672 ;; 3673esac 3674 3675# If there is no $with_arch option, try to infer one from ${target}. 3676# This block sets nothing except for with_arch. 3677if test x$with_arch = x ; then 3678 case ${target} in 3679 i[34567]86-*-darwin*|x86_64-*-darwin*) 3680 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT 3681 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h. 3682 ;; 3683 i[34567]86-*-elfiamcu) 3684 with_arch=lakemont 3685 ;; 3686 i[34567]86-*-*) 3687 # --with-fpmath sets the default ISA to SSE2, which is the same 3688 # ISA supported by Pentium 4. 3689 if test x$with_fpmath = x || test $arch_without_sse2 = no; then 3690 with_arch=$arch 3691 else 3692 with_arch=pentium4 3693 fi 3694 ;; 3695 x86_64-*-*) 3696 with_arch=$arch 3697 ;; 3698 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*) 3699 with_arch=r5900 3700 ;; 3701 mips*-*-vxworks) 3702 with_arch=mips2 3703 ;; 3704 esac 3705 3706 # Avoid overriding --with-arch-32 and --with-arch-64 values. 3707 case ${target} in 3708 i[34567]86-*-darwin*|x86_64-*-darwin*) 3709 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT 3710 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h. 3711 ;; 3712 i[34567]86-*-*|x86_64-*-*) 3713 if test x$with_arch_32 != x || test x$with_arch_64 != x; then 3714 if test x$with_arch_32 = x; then 3715 with_arch_32=$with_arch 3716 fi 3717 if test x$with_arch_64 = x; then 3718 if test $arch_without_64bit = yes; then 3719 # Set the default 64bit arch to x86-64 if the default arch 3720 # doesn't support 64bit. 3721 with_arch_64=x86-64 3722 else 3723 with_arch_64=$with_arch 3724 fi 3725 fi 3726 with_arch= 3727 elif test $arch_without_64bit$need_64bit_isa = yesyes; then 3728 # Set the default 64bit arch to x86-64 if the default arch 3729 # doesn't support 64bit and we need 64bit ISA. 3730 with_arch_32=$with_arch 3731 with_arch_64=x86-64 3732 with_arch= 3733 fi 3734 ;; 3735 esac 3736fi 3737 3738# Infer a default setting for --with-float. 3739if test x$with_float = x; then 3740 case ${target} in 3741 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*) 3742 # The R5900 doesn't support 64-bit float. 32-bit float doesn't 3743 # comply with IEEE 754. 3744 with_float=soft 3745 ;; 3746 esac 3747fi 3748 3749# Infer a default setting for --with-fpu. 3750if test x$with_fpu = x; then 3751 case ${target} in 3752 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*) 3753 # The R5900 FPU only supports single precision. 3754 with_fpu=single 3755 ;; 3756 esac 3757fi 3758 3759# Support --with-fpmath. 3760if test x$with_fpmath != x; then 3761 case ${target} in 3762 i[34567]86-*-* | x86_64-*-*) 3763 case ${with_fpmath} in 3764 avx) 3765 tm_file="${tm_file} i386/avxmath.h" 3766 ;; 3767 sse) 3768 tm_file="${tm_file} i386/ssemath.h" 3769 ;; 3770 *) 3771 echo "Invalid --with-fpmath=$with_fpmath" 1>&2 3772 exit 1 3773 ;; 3774 esac 3775 ;; 3776 *) 3777 echo "--with-fpmath isn't supported for $target." 1>&2 3778 exit 1 3779 ;; 3780 esac 3781fi 3782 3783# Similarly for --with-schedule. 3784if test x$with_schedule = x; then 3785 case ${target} in 3786 hppa1*) 3787 # Override default PA8000 scheduling model. 3788 with_schedule=7100LC 3789 ;; 3790 esac 3791fi 3792 3793# Infer a default setting for --with-llsc. 3794if test x$with_llsc = x; then 3795 case ${target} in 3796 mips*-*-linux*) 3797 # The kernel emulates LL and SC where necessary. 3798 with_llsc=yes 3799 ;; 3800 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*) 3801 # The R5900 doesn't support LL(D) and SC(D). 3802 with_llsc=no 3803 ;; 3804 esac 3805fi 3806 3807# Validate and mark as valid any --with options supported 3808# by this target. In order to use a particular --with option 3809# you must list it in supported_defaults; validating the value 3810# is optional. This case statement should set nothing besides 3811# supported_defaults. 3812 3813supported_defaults= 3814case "${target}" in 3815 aarch64*-*-*) 3816 supported_defaults="abi cpu cpu_64 arch arch_64 tune tune_64" 3817 if test x$with_cpu_64 != x && test x$with_cpu = x; then 3818 with_cpu=$with_cpu_64 3819 fi 3820 if test x$with_arch_64 != x && test x$with_arch = x; then 3821 with_arch=$with_arch_64 3822 fi 3823 if test x$with_tune_64 != x && test x$with_tune = x; then 3824 with_tune=$with_tune_64 3825 fi 3826 for which in cpu arch tune; do 3827 eval "val=\$with_$which" 3828 base_val=`echo $val | sed -e 's/\+.*//'` 3829 ext_val=`echo $val | sed -e 's/[a-z0-9.-]\+//'` 3830 3831 if [ $which = arch ]; then 3832 def=aarch64-arches.def 3833 pattern=AARCH64_ARCH 3834 else 3835 def=aarch64-cores.def 3836 pattern=AARCH64_CORE 3837 fi 3838 3839 ext_mask=AARCH64_CPU_DEFAULT_FLAGS 3840 3841 # Find the base CPU or ARCH id in aarch64-cores.def or 3842 # aarch64-arches.def 3843 if [ x"$base_val" = x ] \ 3844 || grep "^$pattern(\"$base_val\"," \ 3845 ${srcdir}/config/aarch64/$def \ 3846 > /dev/null; then 3847 3848 if [ $which = arch ]; then 3849 base_id=`grep "^$pattern(\"$base_val\"," \ 3850 ${srcdir}/config/aarch64/$def | \ 3851 sed -e 's/^[^,]*,[ ]*//' | \ 3852 sed -e 's/,.*$//'` 3853 # Extract the architecture flags from aarch64-arches.def 3854 ext_mask=`grep "^$pattern(\"$base_val\"," \ 3855 ${srcdir}/config/aarch64/$def | \ 3856 sed -e 's/)$//' | \ 3857 sed -e 's/^.*,//'` 3858 else 3859 base_id=`grep "^$pattern(\"$base_val\"," \ 3860 ${srcdir}/config/aarch64/$def | \ 3861 sed -e 's/^[^,]*,[ ]*//' | \ 3862 sed -e 's/,.*$//'` 3863 fi 3864 3865 # Disallow extensions in --with-tune=cortex-a53+crc. 3866 if [ $which = tune ] && [ x"$ext_val" != x ]; then 3867 echo "Architecture extensions not supported in --with-$which=$val" 1>&2 3868 exit 1 3869 fi 3870 3871 while [ x"$ext_val" != x ] 3872 do 3873 ext_val=`echo $ext_val | sed -e 's/\+//'` 3874 ext=`echo $ext_val | sed -e 's/\+.*//'` 3875 base_ext=`echo $ext | sed -e 's/^no//'` 3876 3877 if [ x"$base_ext" = x ] \ 3878 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \ 3879 ${srcdir}/config/aarch64/aarch64-option-extensions.def \ 3880 > /dev/null; then 3881 3882 ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \ 3883 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \ 3884 sed -e 's/^[^,]*,[ ]*//' | \ 3885 sed -e 's/,.*$//'` 3886 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \ 3887 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \ 3888 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \ 3889 sed -e 's/,.*$//' | \ 3890 sed -e 's/).*$//'` 3891 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \ 3892 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \ 3893 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*[^,]*,[ ]*//' | \ 3894 sed -e 's/,.*$//' | \ 3895 sed -e 's/).*$//'` 3896 3897 3898 if [ $ext = $base_ext ]; then 3899 # Adding extension 3900 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")" 3901 else 3902 # Removing extension 3903 ext_mask="("$ext_mask") & ~("$ext_off" | "$ext_canon")" 3904 fi 3905 3906 true 3907 else 3908 echo "Unknown extension used in --with-$which=$val" 1>&2 3909 exit 1 3910 fi 3911 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'` 3912 done 3913 3914 ext_mask="(("$ext_mask") << 6)" 3915 if [ x"$base_id" != x ]; then 3916 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask" 3917 fi 3918 true 3919 else 3920 # Allow --with-$which=native. 3921 if [ "$val" = native ]; then 3922 true 3923 else 3924 echo "Unknown $which used in --with-$which=$val" 1>&2 3925 exit 1 3926 fi 3927 fi 3928 done 3929 ;; 3930 3931 alpha*-*-*) 3932 supported_defaults="cpu tune" 3933 for which in cpu tune; do 3934 eval "val=\$with_$which" 3935 case "$val" in 3936 "" \ 3937 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \ 3938 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \ 3939 | 21264a) 3940 ;; 3941 *) 3942 echo "Unknown CPU used in --with-$which=$val" 1>&2 3943 exit 1 3944 ;; 3945 esac 3946 done 3947 ;; 3948 3949 arc*-*-*) 3950 supported_defaults="cpu" 3951 3952 if [ x"$with_cpu" = x ] \ 3953 || grep "^ARC_CPU ($with_cpu," \ 3954 ${srcdir}/config/arc/arc-cpus.def \ 3955 > /dev/null; then 3956 # Ok 3957 true 3958 else 3959 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2 3960 exit 1 3961 fi 3962 ;; 3963 3964 csky-*-*) 3965 supported_defaults="cpu endian float" 3966 ;; 3967 3968 arm*-*-*) 3969 supported_defaults="arch cpu float tune fpu abi mode tls" 3970 for which in cpu tune arch; do 3971 # See if it matches a supported value 3972 eval "val=\$with_$which" 3973 if [ x"$val" != x ]; then 3974 cpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \ 3975 -v cmd="chk$which $val" \ 3976 ${srcdir}/config/arm/arm-cpus.in` 3977 if [ "$cpu" = "error" ]; then 3978 echo "Unknown target in --with-$which=$val" 1>&2 3979 exit 1 3980 else 3981 new_val=$cpu 3982 eval "target_${which}_cname=$new_val" 3983 echo "For $val real value is $new_val" 3984 fi 3985 fi 3986 done 3987 3988 case "$with_float" in 3989 "" \ 3990 | soft | hard | softfp) 3991 # OK 3992 ;; 3993 *) 3994 echo "Unknown floating point type used in --with-float=$with_float" 1>&2 3995 exit 1 3996 ;; 3997 esac 3998 3999 # see if --with-fpu matches any of the supported FPUs 4000 if [ x"$with_fpu" != x ] ; then 4001 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \ 4002 -v cmd="chkfpu $with_fpu" \ 4003 ${srcdir}/config/arm/arm-cpus.in` 4004 if [ "$fpu" = "error"] 4005 then 4006 echo "Unknown target in --with-$which=$val" 1>&2 4007 exit 1 4008 fi 4009 fi 4010 4011 case "$with_abi" in 4012 "" \ 4013 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux ) 4014 #OK 4015 ;; 4016 *) 4017 echo "Unknown ABI used in --with-abi=$with_abi" 4018 exit 1 4019 ;; 4020 esac 4021 4022 case "$with_mode" in 4023 "" \ 4024 | arm | thumb ) 4025 #OK 4026 ;; 4027 *) 4028 echo "Unknown mode used in --with-mode=$with_mode" 4029 exit 1 4030 ;; 4031 esac 4032 4033 case "$with_tls" in 4034 "" \ 4035 | gnu | gnu2) 4036 # OK 4037 ;; 4038 *) 4039 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2 4040 exit 1 4041 ;; 4042 esac 4043 4044 if test "x$with_arch" != x && test "x$with_cpu" != x; then 4045 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2 4046 exit 1 4047 fi 4048 4049 if test "x$with_cpu" != x && test "x$with_tune" != x; then 4050 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2 4051 exit 1 4052 fi 4053 4054 # Add extra multilibs 4055 if test "x$with_multilib_list" != x; then 4056 ml= 4057 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'` 4058 if test "x${arm_multilibs}" != xdefault ; then 4059 for arm_multilib in ${arm_multilibs}; do 4060 case ${arm_multilib} in 4061 aprofile|rmprofile) 4062 tmake_profile_file="arm/t-multilib" 4063 ;; 4064 @*) 4065 ml=`echo "X$arm_multilib" | sed '1s,^X@,,'` 4066 if test -f "${srcdir}/config/arm/${ml}"; then 4067 tmake_file="${tmake_file} arm/${ml}" 4068 else 4069 echo "Error: ${ml} does not exist in ${srcdir}/config/arm" >&2 4070 exit 1 4071 fi 4072 ;; 4073 *) 4074 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2 4075 exit 1 4076 ;; 4077 esac 4078 done 4079 fi 4080 4081 if test "x${tmake_profile_file}" != x ; then 4082 # arm/t-aprofile and arm/t-rmprofile are only 4083 # designed to work without any with-cpu, 4084 # with-arch, with-mode, with-fpu or with-float 4085 # options. 4086 if test "x$with_arch" != x \ 4087 || test "x$with_cpu" != x \ 4088 || test "x$with_float" != x \ 4089 || test "x$with_fpu" != x \ 4090 || test "x$with_mode" != x ; then 4091 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2 4092 exit 1 4093 elif test "x$ml" != x ; then 4094 echo "Error: You cannot use builtin multilib profiles along with custom ones" 1>&2 4095 exit 1 4096 fi 4097 # But pass the default value for float-abi 4098 # through to the multilib selector 4099 with_float="soft" 4100 tmake_file="${tmake_file} ${tmake_profile_file}" 4101 TM_MULTILIB_CONFIG="$with_multilib_list" 4102 fi 4103 fi 4104 target_cpu_cname=${target_cpu_cname:-arm7tdmi} 4105 with_cpu=${with_cpu:-$target_cpu_cname} 4106 ;; 4107 4108 fr*-*-*linux*) 4109 supported_defaults=cpu 4110 case "$with_cpu" in 4111 fr400) ;; 4112 fr550) ;; 4113 *) 4114 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2 4115 exit 1 4116 ;; 4117 esac 4118 ;; 4119 4120 fido-*-* | m68k*-*-*) 4121 supported_defaults="arch cpu" 4122 case "$with_arch" in 4123 "" | "m68k"| "cf") 4124 m68k_arch_family="$with_arch" 4125 ;; 4126 *) 4127 echo "Invalid --with-arch=$with_arch" 1>&2 4128 exit 1 4129 ;; 4130 esac 4131 4132 # We always have a $with_cpu setting here. 4133 case "$with_cpu" in 4134 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060") 4135 m68k_cpu_ident=$with_cpu 4136 ;; 4137 "m68020-40") 4138 m68k_cpu_ident=m68020 4139 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40" 4140 ;; 4141 "m68020-60") 4142 m68k_cpu_ident=m68020 4143 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60" 4144 ;; 4145 *) 4146 # We need the C identifier rather than the string. 4147 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \ 4148 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \ 4149 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \ 4150 ${srcdir}/config/m68k/m68k-devices.def` 4151 if [ x"$m68k_cpu_ident" = x ] ; then 4152 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2 4153 exit 1 4154 fi 4155 with_cpu="mcpu=$with_cpu" 4156 ;; 4157 esac 4158 ;; 4159 4160 amdgcn-*-*) 4161 supported_defaults="arch tune" 4162 4163 for which in arch tune; do 4164 eval "val=\$with_$which" 4165 case ${val} in 4166 "" | carrizo | fiji | gfx900 ) 4167 # OK 4168 ;; 4169 *) 4170 echo "Unknown cpu used in --with-$which=$val." 1>&2 4171 exit 1 4172 ;; 4173 esac 4174 done 4175 [ "x$with_arch" = x ] && with_arch=fiji 4176 ;; 4177 4178 hppa*-*-*) 4179 supported_defaults="arch schedule" 4180 4181 case "$with_arch" in 4182 "" | 1.0 | 1.1 | 2.0) 4183 # OK 4184 ;; 4185 *) 4186 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2 4187 exit 1 4188 ;; 4189 esac 4190 4191 case "$with_schedule" in 4192 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000) 4193 # OK 4194 ;; 4195 *) 4196 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2 4197 exit 1 4198 ;; 4199 esac 4200 ;; 4201 4202 i[34567]86-*-* | x86_64-*-*) 4203 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64" 4204 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do 4205 eval "val=\$with_$which" 4206 case " $x86_archs " in 4207 *" ${val} "*) 4208 case "${target}" in 4209 x86_64-*-*) 4210 case "x$which" in 4211 *_32) 4212 ;; 4213 *) 4214 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2 4215 exit 1 4216 ;; 4217 esac 4218 ;; 4219 esac 4220 # OK 4221 ;; 4222 *) 4223 if test x${val} != x; then 4224 case " $x86_64_archs " in 4225 *" ${val} "*) 4226 # OK 4227 ;; 4228 *) 4229 # Allow $x86_cpus --with-cpu=/--with-tune= 4230 case "x$which" in 4231 xcpu*|xtune*) 4232 case " $x86_cpus " in 4233 *" ${val} "*) 4234 # OK 4235 ;; 4236 *) 4237 echo "Unknown CPU given in --with-$which=$val." 1>&2 4238 exit 1 4239 ;; 4240 esac 4241 ;; 4242 *) 4243 echo "Unknown CPU given in --with-$which=$val." 1>&2 4244 exit 1 4245 ;; 4246 esac 4247 ;; 4248 esac 4249 fi 4250 ;; 4251 esac 4252 done 4253 ;; 4254 4255 riscv*-*-*) 4256 supported_defaults="abi arch tune riscv_attribute" 4257 4258 case "${target}" in 4259 riscv-* | riscv32*) xlen=32 ;; 4260 riscv64*) xlen=64 ;; 4261 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;; 4262 esac 4263 4264 case "${with_riscv_attribute}" in 4265 yes) 4266 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1" 4267 ;; 4268 no) 4269 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0" 4270 ;; 4271 ""|default) 4272 case "${target}" in 4273 riscv*-*-elf*) 4274 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1" 4275 ;; 4276 *) 4277 tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0" 4278 ;; 4279 esac 4280 ;; 4281 *) 4282 echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2 4283 exit 1 4284 ;; 4285 esac 4286 4287 4288 # Infer arch from --with-arch, --target, and --with-abi. 4289 case "${with_arch}" in 4290 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*) 4291 # OK. 4292 ;; 4293 "") 4294 # Infer XLEN, but otherwise assume GC. 4295 case "${with_abi}" in 4296 ilp32e) with_arch="rv32e" ;; 4297 ilp32 | ilp32f | ilp32d) with_arch="rv32gc" ;; 4298 lp64 | lp64f | lp64d) with_arch="rv64gc" ;; 4299 *) with_arch="rv${xlen}gc" ;; 4300 esac 4301 ;; 4302 *) 4303 echo "--with-arch=${with_arch} is not supported. The argument must begin with rv32e, rv32i, rv32g, rv64i, or rv64g." 1>&2 4304 exit 1 4305 ;; 4306 esac 4307 4308 # Make sure --with-abi is valid. If it was not specified, 4309 # pick a default based on the ISA, preferring soft-float 4310 # unless the D extension is present. 4311 case "${with_abi}" in 4312 ilp32 | ilp32e | ilp32f | ilp32d | lp64 | lp64f | lp64d) 4313 ;; 4314 "") 4315 case "${with_arch}" in 4316 rv32*d* | rv32g*) with_abi=ilp32d ;; 4317 rv32e*) with_abi=ilp32e ;; 4318 rv32*) with_abi=ilp32 ;; 4319 rv64*d* | rv64g*) with_abi=lp64d ;; 4320 rv64*) with_abi=lp64 ;; 4321 esac 4322 ;; 4323 *) 4324 echo "--with-abi=${with_abi} is not supported" 1>&2 4325 exit 1 4326 ;; 4327 esac 4328 4329 # Make sure ABI and ISA are compatible. 4330 case "${with_abi},${with_arch}" in 4331 ilp32,rv32* | ilp32e,rv32e* \ 4332 | ilp32f,rv32*f* | ilp32f,rv32g* \ 4333 | ilp32d,rv32*d* | ilp32d,rv32g* \ 4334 | lp64,rv64* \ 4335 | lp64f,rv64*f* | lp64f,rv64g* \ 4336 | lp64d,rv64*d* | lp64d,rv64g*) 4337 ;; 4338 *) 4339 echo "--with-abi=${with_abi} is not supported for ISA ${with_arch}" 1>&2 4340 exit 1 4341 ;; 4342 esac 4343 4344 # Handle --with-multilib-list. 4345 if test "x${with_multilib_list}" != xdefault; then 4346 tm_file="${tm_file} riscv/withmultilib.h" 4347 tmake_file="${tmake_file} riscv/t-withmultilib" 4348 4349 case ${with_multilib_list} in 4350 ilp32 | ilp32f | ilp32d \ 4351 | lp64 | lp64f | lp64d ) 4352 TM_MULTILIB_CONFIG="${with_arch},${with_multilib_list}" 4353 ;; 4354 *) 4355 echo "--with-multilib-list=${with_multilib_list} not supported." 4356 exit 1 4357 esac 4358 4359 # Define macros to select the default multilib. 4360 case ${with_arch} in 4361 rv32gc) 4362 tm_defines="${tm_defines} TARGET_MLIB_ARCH=1" 4363 ;; 4364 rv64gc) 4365 tm_defines="${tm_defines} TARGET_MLIB_ARCH=2" 4366 ;; 4367 *) 4368 echo "unsupported --with-arch for --with-multilib-list" 4369 exit 1 4370 esac 4371 case ${with_abi} in 4372 ilp32) 4373 tm_defines="${tm_defines} TARGET_MLIB_ABI=1" 4374 ;; 4375 ilp32f) 4376 tm_defines="${tm_defines} TARGET_MLIB_ABI=2" 4377 ;; 4378 ilp32d) 4379 tm_defines="${tm_defines} TARGET_MLIB_ABI=3" 4380 ;; 4381 lp64) 4382 tm_defines="${tm_defines} TARGET_MLIB_ABI=4" 4383 ;; 4384 lp64f) 4385 tm_defines="${tm_defines} TARGET_MLIB_ABI=5" 4386 ;; 4387 lp64d) 4388 tm_defines="${tm_defines} TARGET_MLIB_ABI=6" 4389 ;; 4390 *) 4391 echo "unsupported --with-abi for --with-multilib" 4392 exit 1 4393 esac 4394 fi 4395 ;; 4396 4397 mips*-*-*) 4398 supported_defaults="abi arch arch_32 arch_64 float fpu nan fp_32 odd_spreg_32 tune tune_32 tune_64 divide llsc mips-plt synci lxc1-sxc1 madd4" 4399 4400 case ${with_float} in 4401 "" | soft | hard) 4402 # OK 4403 ;; 4404 *) 4405 echo "Unknown floating point type used in --with-float=$with_float" 1>&2 4406 exit 1 4407 ;; 4408 esac 4409 4410 case ${with_fpu} in 4411 "" | single | double) 4412 # OK 4413 ;; 4414 *) 4415 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2 4416 exit 1 4417 ;; 4418 esac 4419 4420 case ${with_nan} in 4421 "" | 2008 | legacy) 4422 # OK 4423 ;; 4424 *) 4425 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2 4426 exit 1 4427 ;; 4428 esac 4429 4430 case ${with_fp_32} in 4431 "" | 32 | xx | 64) 4432 # OK 4433 ;; 4434 *) 4435 echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2 4436 exit 1 4437 ;; 4438 esac 4439 4440 case ${with_odd_spreg_32} in 4441 yes) 4442 with_odd_spreg_32="odd-spreg" 4443 ;; 4444 no) 4445 with_odd_spreg_32="no-odd-spreg" 4446 ;; 4447 "") 4448 # OK 4449 ;; 4450 *) 4451 echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2 4452 exit 1 4453 ;; 4454 esac 4455 4456 case ${with_abi} in 4457 "" | 32 | o64 | n32 | 64 | eabi) 4458 # OK 4459 ;; 4460 *) 4461 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2 4462 exit 1 4463 ;; 4464 esac 4465 4466 case ${with_divide} in 4467 "" | breaks | traps) 4468 # OK 4469 ;; 4470 *) 4471 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2 4472 exit 1 4473 ;; 4474 esac 4475 4476 case ${with_llsc} in 4477 yes) 4478 with_llsc=llsc 4479 ;; 4480 no) 4481 with_llsc="no-llsc" 4482 ;; 4483 "") 4484 # OK 4485 ;; 4486 *) 4487 echo "Unknown llsc type used in --with-llsc" 1>&2 4488 exit 1 4489 ;; 4490 esac 4491 4492 case ${with_mips_plt} in 4493 yes) 4494 with_mips_plt=plt 4495 ;; 4496 no) 4497 with_mips_plt=no-plt 4498 ;; 4499 "") 4500 ;; 4501 *) 4502 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2 4503 exit 1 4504 ;; 4505 esac 4506 4507 case ${with_synci} in 4508 yes) 4509 with_synci=synci 4510 ;; 4511 no) 4512 with_synci=no-synci 4513 ;; 4514 "") 4515 ;; 4516 *) 4517 echo "Unknown synci type used in --with-synci" 1>&2 4518 exit 1 4519 ;; 4520 esac 4521 4522 case ${with_lxc1_sxc1} in 4523 yes) 4524 with_lxc1_sxc1=lxc1-sxc1 4525 ;; 4526 no) 4527 with_lxc1_sxc1=no-lxc1-sxc1 4528 ;; 4529 "") 4530 ;; 4531 *) 4532 echo "Unknown lxc1-sxc1 type used in --with-lxc1-sxc1" 1>&2 4533 exit 1 4534 ;; 4535 esac 4536 4537 case ${with_madd4} in 4538 yes) 4539 with_madd4=madd4 4540 ;; 4541 no) 4542 with_madd4=no-madd4 4543 ;; 4544 "") 4545 ;; 4546 *) 4547 echo "Unknown madd4 type used in --with-madd4" 1>&2 4548 exit 1 4549 ;; 4550 esac 4551 ;; 4552 4553 nds32*-*-*) 4554 supported_defaults="arch cpu nds32_lib float fpu_config" 4555 4556 # process --with-arch 4557 case "${with_arch}" in 4558 "" | v3 ) 4559 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0" 4560 ;; 4561 v2 | v2j | v3m) 4562 # OK 4563 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=0" 4564 ;; 4565 v3f) 4566 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=1" 4567 ;; 4568 v3s) 4569 tm_defines="${tm_defines} TARGET_ARCH_DEFAULT=2" 4570 4571 ;; 4572 *) 4573 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v2j v3 v3m v3f v3s" 1>&2 4574 exit 1 4575 ;; 4576 esac 4577 4578 case "${with_cpu}" in 4579 "") 4580 with_cpu=n9 4581 ;; 4582 n6 | n7 |n8 | e8 | s8 | n9 | n10 | d10 | n12 | n13 | n15) 4583 # OK 4584 ;; 4585 *) 4586 echo "Cannot accept --with-cpu=$with_cpu, available values are: n6 n7 n8 e8 s8 n9 n10 d10 n12 n13 n15" 1>&2 4587 exit 1 4588 ;; 4589 esac 4590 4591 # process --with-nds32-lib 4592 case "${with_nds32_lib}" in 4593 "") 4594 case ${target} in 4595 *-*-*uclibc*) 4596 with_nds32_lib=ulibc 4597 ;; 4598 *-*-linux*) 4599 with_nds32_lib=glibc 4600 ;; 4601 *) 4602 with_nds32_lib=newlib 4603 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1" 4604 ;; 4605 esac 4606 ;; 4607 newlib) 4608 # OK 4609 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1" 4610 ;; 4611 mculib) 4612 # OK 4613 # for the arch=v3f or arch=v3s under mculib toolchain, 4614 # we would like to set -fno-math-errno as default 4615 case "${with_arch}" in 4616 v3f | v3s) 4617 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1" 4618 ;; 4619 esac 4620 ;; 4621 glibc | uclibc) 4622 # OK 4623 ;; 4624 *) 4625 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2 4626 exit 1 4627 ;; 4628 esac 4629 4630 # process --with-float 4631 case "${with_float}" in 4632 "" | soft | hard) 4633 # OK 4634 ;; 4635 *) 4636 echo "Cannot accept --with-float=$with_float, available values are: soft hard" 1>&2 4637 exit 1 4638 ;; 4639 esac 4640 4641 # process --with-config-fpu 4642 case "${with_config_fpu}" in 4643 "" | 0 | 1 | 2 | 3) 4644 # OK 4645 ;; 4646 *) 4647 echo "Cannot accept --with-config-fpu=$with_config_fpu, available values from 0 to 7" 1>&2 4648 exit 1 4649 ;; 4650 esac 4651 4652 4653 ;; 4654 nios2*-*-*) 4655 supported_defaults="arch" 4656 case "$with_arch" in 4657 "" | r1 | r2) 4658 # OK 4659 ;; 4660 *) 4661 echo "Unknown arch used in --with-arch=$with_arch" 1>&2 4662 exit 1 4663 ;; 4664 esac 4665 ;; 4666 4667 powerpc*-*-* | rs6000-*-*) 4668 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64 advance_toolchain" 4669 4670 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do 4671 eval "val=\$with_$which" 4672 case ${val} in 4673 default32 | default64) 4674 case $which in 4675 cpu | tune) 4676 ;; 4677 *) 4678 echo "$val only valid for --with-cpu and --with-tune." 1>&2 4679 exit 1 4680 ;; 4681 esac 4682 with_which="with_$which" 4683 eval $with_which= 4684 ;; 4685 405cr) 4686 tm_defines="${tm_defines} CONFIG_PPC405CR" 4687 eval "with_$which=405" 4688 ;; 4689 "" | common | native \ 4690 | power[3456789] | power5+ | power6x \ 4691 | powerpc | powerpc64 | powerpc64le \ 4692 | rs64 \ 4693 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \ 4694 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \ 4695 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \ 4696 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \ 4697 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell) 4698 # OK 4699 ;; 4700 *) 4701 echo "Unknown cpu used in --with-$which=$val." 1>&2 4702 exit 1 4703 ;; 4704 esac 4705 done 4706 4707 case "$with_abi" in 4708 "" | elfv1 | elfv2 ) 4709 #OK 4710 ;; 4711 *) 4712 echo "Unknown ABI used in --with-abi=$with_abi" 4713 exit 1 4714 ;; 4715 esac 4716 4717 if test "x$with_advance_toolchain" != x; then 4718 if test -d "/opt/$with_advance_toolchain/." -a \ 4719 -d "/opt/$with_advance_toolchain/bin/." -a \ 4720 -d "/opt/$with_advance_toolchain/include/."; then 4721 4722 tm_file="$tm_file ./advance-toolchain.h" 4723 (at="/opt/$with_advance_toolchain" 4724 echo "/* Use Advance Toolchain $at */" 4725 echo 4726 echo "#undef LINK_OS_EXTRA_SPEC32" 4727 echo "#define LINK_OS_EXTRA_SPEC32" \ 4728 "\"%(link_os_new_dtags)" \ 4729 "-rpath $prefix/lib -rpath $at/lib\"" 4730 echo 4731 echo "#undef LINK_OS_EXTRA_SPEC64" 4732 echo "#define LINK_OS_EXTRA_SPEC64" \ 4733 "\"%(link_os_new_dtags)" \ 4734 "-rpath $prefix/lib64 -rpath $at/lib64\"" 4735 echo 4736 echo "#undef LINK_OS_NEW_DTAGS_SPEC" 4737 echo "#define LINK_OS_NEW_DTAGS_SPEC" \ 4738 "\"--enable-new-dtags\"" 4739 echo 4740 echo "#undef DYNAMIC_LINKER_PREFIX" 4741 echo "#define DYNAMIC_LINKER_PREFIX \"$at\"" 4742 echo 4743 echo "#undef MD_EXEC_PREFIX" 4744 echo "#define MD_EXEC_PREFIX \"$at/bin/\"" 4745 echo 4746 echo "#undef MD_STARTFILE_PREFIX" 4747 echo "#define MD_STARTFILE_PREFIX \"$prefix/lib/\"" 4748 echo 4749 echo "#undef MD_STARTFILE_PREFIX_1" 4750 echo "#define MD_STARTFILE_PREFIX_1 \"$at/lib/\"") \ 4751 > advance-toolchain.h 4752 else 4753 echo "Unknown advance-toolchain $with_advance_toolchain" 4754 exit 1 4755 fi 4756 fi 4757 4758 # Set up the default long double format if the user changed it. 4759 if test x$with_long_double_format = xieee; then 4760 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=1" 4761 4762 elif test x$with_long_double_format = xibm; then 4763 tm_defines="${tm_defines} TARGET_IEEEQUAD_DEFAULT=0" 4764 fi 4765 ;; 4766 4767 s390*-*-*) 4768 supported_defaults="arch mode tune" 4769 4770 for which in arch tune; do 4771 eval "val=\$with_$which" 4772 case ${val} in 4773 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 ) 4774 # OK 4775 ;; 4776 *) 4777 echo "Unknown cpu used in --with-$which=$val." 1>&2 4778 exit 1 4779 ;; 4780 esac 4781 done 4782 4783 case ${with_mode} in 4784 "" | esa | zarch) 4785 # OK 4786 ;; 4787 *) 4788 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2 4789 exit 1 4790 ;; 4791 esac 4792 ;; 4793 4794 sh[123456ble]*-*-* | sh-*-*) 4795 supported_defaults="cpu" 4796 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in 4797 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu ) 4798 # OK 4799 ;; 4800 m2a | m2a-single | m2a-single-only | m2a-nofpu) 4801 ;; 4802 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al) 4803 ;; 4804 *) 4805 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2 4806 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2 4807 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2 4808 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2 4809 exit 1 4810 ;; 4811 esac 4812 ;; 4813 sparc*-*-*) 4814 supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64" 4815 4816 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do 4817 eval "val=\$with_$which" 4818 case ${val} in 4819 "" | sparc | sparcv9 | sparc64 \ 4820 | v7 | cypress \ 4821 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \ 4822 | sparclite | f930 | f934 | sparclite86x \ 4823 | sparclet | tsc701 \ 4824 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \ 4825 | niagara3 | niagara4 | niagara7 | m8) 4826 # OK 4827 ;; 4828 *) 4829 echo "Unknown cpu used in --with-$which=$val" 1>&2 4830 exit 1 4831 ;; 4832 esac 4833 done 4834 4835 case ${with_float} in 4836 "" | soft | hard) 4837 # OK 4838 ;; 4839 *) 4840 echo "Unknown floating point type used in --with-float=$with_float" 1>&2 4841 exit 1 4842 ;; 4843 esac 4844 ;; 4845 4846 spu-*-*) 4847 supported_defaults="arch tune" 4848 4849 for which in arch tune; do 4850 eval "val=\$with_$which" 4851 case ${val} in 4852 "" | cell | celledp) 4853 # OK 4854 ;; 4855 *) 4856 echo "Unknown cpu used in --with-$which=$val." 1>&2 4857 exit 1 4858 ;; 4859 esac 4860 done 4861 ;; 4862 4863 tic6x-*-*) 4864 supported_defaults="arch" 4865 4866 case ${with_arch} in 4867 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x) 4868 # OK 4869 ;; 4870 *) 4871 echo "Unknown arch used in --with-arch=$with_arch." 1>&2 4872 exit 1 4873 ;; 4874 esac 4875 ;; 4876 4877 v850*-*-*) 4878 supported_defaults=cpu 4879 case ${with_cpu} in 4880 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5) 4881 # OK 4882 ;; 4883 *) 4884 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2 4885 exit 1 4886 ;; 4887 esac 4888 ;; 4889 visium-*-*) 4890 supported_defaults="cpu" 4891 case $with_cpu in 4892 "" | gr5 | gr6) 4893 ;; 4894 *) echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2 4895 exit 1 4896 ;; 4897 esac 4898 ;; 4899esac 4900 4901# Targets for which there is at least one VxWorks port should include 4902# vxworks-dummy.h to allow safe references to various TARGET_VXWORKS kinds 4903# of markers from other files in the port, including the vxworks*.h files to 4904# distinguish VxWorks variants such as VxWorks 7 or 64). 4905 4906case ${target} in 4907arm*-*-* | i[34567]86-*-* | mips*-*-* | powerpc*-*-* | sh*-*-* \ 4908| sparc*-*-* | x86_64-*-*) 4909 tm_file="vxworks-dummy.h ${tm_file}" 4910 ;; 4911esac 4912 4913# Set some miscellaneous flags for particular targets. 4914target_cpu_default2= 4915case ${target} in 4916 aarch64*-*-*) 4917 if test x"$target_cpu_cname" != x 4918 then 4919 target_cpu_default2=$target_cpu_cname 4920 fi 4921 ;; 4922 4923 arm*-*-*) 4924 if test x$with_cpu = x 4925 then 4926 echo "Don't know the target cpu" 1>&2 4927 exit 1 4928 else 4929 target_cpu_default2="\\\"$with_cpu\\\"" 4930 fi 4931 ;; 4932 4933 hppa*-*-*) 4934 if test x$gas = xyes 4935 then 4936 target_cpu_default2="MASK_GAS" 4937 fi 4938 ;; 4939 4940 fido*-*-* | m68k*-*-*) 4941 target_cpu_default2=$m68k_cpu_ident 4942 tmake_file="m68k/t-opts $tmake_file" 4943 if [ x"$m68k_arch_family" != x ]; then 4944 tmake_file="m68k/t-$m68k_arch_family $tmake_file" 4945 fi 4946 ;; 4947 4948 i[34567]86-*-darwin* | x86_64-*-darwin*) 4949 ;; 4950 i[34567]86-*-linux* | x86_64-*-linux*) 4951 extra_objs="${extra_objs} cet.o" 4952 tmake_file="$tmake_file i386/t-linux i386/t-cet" 4953 ;; 4954 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu) 4955 tmake_file="$tmake_file i386/t-kfreebsd" 4956 ;; 4957 i[34567]86-*-gnu*) 4958 tmake_file="$tmake_file i386/t-gnu" 4959 ;; 4960 i[34567]86-*-msdosdjgpp*) 4961 tmake_file="${tmake_file} i386/t-djgpp" 4962 ;; 4963 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*) 4964 ;; 4965 i[34567]86-*-cygwin* | x86_64-*-cygwin*) 4966 ;; 4967 i[34567]86-*-mingw* | x86_64-*-mingw*) 4968 ;; 4969 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*) 4970 ;; 4971 i[34567]86-*-freebsd*) 4972 ;; 4973 x86_64-*-freebsd*) 4974 tmake_file="${tmake_file} i386/t-freebsd64" 4975 ;; 4976 ia64*-*-linux*) 4977 ;; 4978 4979 mips*-*-*) 4980 if test x$gnu_ld = xyes 4981 then 4982 target_cpu_default2="MASK_SPLIT_ADDRESSES" 4983 fi 4984 case ${target} in 4985 mips*el-*-*) 4986 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines" 4987 ;; 4988 esac 4989 if test x$with_arch != x; then 4990 default_mips_arch=$with_arch 4991 fi 4992 if test x$with_abi != x; then 4993 default_mips_abi=$with_abi 4994 fi 4995 case ${default_mips_arch} in 4996 mips1) tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;; 4997 mips2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;; 4998 mips3) tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;; 4999 mips4) tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;; 5000 mips32) tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;; 5001 mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;; 5002 mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;; 5003 mips64) tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;; 5004 mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;; 5005 mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;; 5006 esac 5007 case ${default_mips_abi} in 5008 32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;; 5009 o64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;; 5010 n32) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;; 5011 64) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;; 5012 eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;; 5013 esac 5014 tmake_file="mips/t-mips $tmake_file" 5015 ;; 5016 5017 powerpc*-*-* | rs6000-*-*) 5018 # FIXME: The PowerPC port uses the value set at compile time, 5019 # although it's only cosmetic. 5020 if test "x$with_cpu" != x 5021 then 5022 target_cpu_default2="\\\"$with_cpu\\\"" 5023 fi 5024 out_file="${cpu_type}/${cpu_type}.c" 5025 c_target_objs="${c_target_objs} ${cpu_type}-c.o" 5026 cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o" 5027 d_target_objs="${d_target_objs} ${cpu_type}-d.o" 5028 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}" 5029 ;; 5030 5031 sh[123456ble]*-*-* | sh-*-*) 5032 c_target_objs="${c_target_objs} sh-c.o" 5033 cxx_target_objs="${cxx_target_objs} sh-c.o" 5034 ;; 5035 5036 sparc*-*-*) 5037 # Some standard aliases. 5038 case x$with_cpu in 5039 xsparc) 5040 with_cpu=v7 5041 ;; 5042 xsparcv9 | xsparc64) 5043 with_cpu=v9 5044 ;; 5045 esac 5046 5047 if test x$with_tune = x ; then 5048 case ${target} in 5049 *-leon-*) 5050 with_tune=leon 5051 ;; 5052 *-leon[3-9]*) 5053 with_tune=leon3 5054 ;; 5055 esac 5056 fi 5057 5058 # The SPARC port checks this value at compile-time. 5059 target_cpu_default2="TARGET_CPU_$with_cpu" 5060 ;; 5061 5062 v850*-*-*) 5063 case "x$with_cpu" in 5064 x) 5065 ;; 5066 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5) 5067 target_cpu_default2="TARGET_CPU_$with_cpu" 5068 ;; 5069 xv850es) 5070 target_cpu_default2="TARGET_CPU_v850e1" 5071 ;; 5072 esac 5073 ;; 5074 visium-*-*) 5075 target_cpu_default2="TARGET_CPU_$with_cpu" 5076 ;; 5077esac 5078 5079t= 5080all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan fp_32 odd_spreg_32 divide llsc mips-plt synci tls lxc1-sxc1 madd4" 5081for option in $all_defaults 5082do 5083 eval "val=\$with_"`echo $option | sed s/-/_/g` 5084 if test -n "$val"; then 5085 case " $supported_defaults " in 5086 *" $option "*) 5087 ;; 5088 *) 5089 echo "This target does not support --with-$option." 2>&1 5090 echo "Valid --with options are: $supported_defaults" 2>&1 5091 exit 1 5092 ;; 5093 esac 5094 5095 if test "x$t" = x 5096 then 5097 t="{ \"$option\", \"$val\" }" 5098 else 5099 t="${t}, { \"$option\", \"$val\" }" 5100 fi 5101 fi 5102done 5103 5104if test "x$t" = x 5105then 5106 configure_default_options="{ { NULL, NULL} }" 5107else 5108 configure_default_options="{ ${t} }" 5109fi 5110 5111if test "$target_cpu_default2" != "" 5112then 5113 if test "$target_cpu_default" != "" 5114 then 5115 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})" 5116 else 5117 target_cpu_default=$target_cpu_default2 5118 fi 5119fi 5120 5121case ${target} in 5122i[34567]86-*-* | x86_64-*-*) 5123 if test x$enable_as_accelerator = xyes; then 5124 extra_programs="mkoffload\$(exeext)" 5125 fi 5126 ;; 5127esac 5128