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