comparison gcc/config.gcc @ 145:1830386684a0

gcc-9.2.0
author anatofuz
date Thu, 13 Feb 2020 11:34:05 +0900
parents 84e7813d76e9
children
comparison
equal deleted inserted replaced
131:84e7813d76e9 145:1830386684a0
1 # GCC target-specific configuration file. 1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2018 Free Software Foundation, Inc. 2 # Copyright (C) 1997-2020 Free Software Foundation, Inc.
3 3
4 #This file is part of GCC. 4 #This file is part of GCC.
5 5
6 #GCC is free software; you can redistribute it and/or modify it under 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 7 #the terms of the GNU General Public License as published by the Free
83 # build-directory files by prefixing them with "./". 83 # build-directory files by prefixing them with "./".
84 # All other files should relative to $srcdir/config. 84 # All other files should relative to $srcdir/config.
85 # 85 #
86 # tm_p_file Location of file with declarations for functions 86 # tm_p_file Location of file with declarations for functions
87 # in $out_file. 87 # in $out_file.
88 #
89 # tm_d_file A list of headers with definitions of target hook
90 # macros for the D compiler.
88 # 91 #
89 # out_file The name of the machine description C support 92 # out_file The name of the machine description C support
90 # file, if different from "$cpu_type/$cpu_type.c". 93 # file, if different from "$cpu_type/$cpu_type.c".
91 # 94 #
92 # common_out_file The name of the source file for code shared between 95 # common_out_file The name of the source file for code shared between
137 # linked into the C compiler only. 140 # linked into the C compiler only.
138 # 141 #
139 # cxx_target_objs List of extra target-dependent objects that be 142 # cxx_target_objs List of extra target-dependent objects that be
140 # linked into the C++ compiler only. 143 # linked into the C++ compiler only.
141 # 144 #
145 # d_target_objs List of extra target-dependent objects that be
146 # linked into the D compiler only.
147 #
142 # fortran_target_objs List of extra target-dependent objects that be 148 # fortran_target_objs List of extra target-dependent objects that be
143 # linked into the fortran compiler only. 149 # linked into the fortran compiler only.
144 # 150 #
145 # target_gtfiles List of extra source files with type information. 151 # target_gtfiles List of extra source files with type information.
146 # 152 #
189 # target_has_targetcm Set to yes or no depending on whether the target 195 # target_has_targetcm Set to yes or no depending on whether the target
190 # has its own definition of targetcm. 196 # has its own definition of targetcm.
191 # 197 #
192 # target_has_targetm_common Set to yes or no depending on whether the 198 # target_has_targetm_common Set to yes or no depending on whether the
193 # target has its own definition of targetm_common. 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.
194 203
195 out_file= 204 out_file=
196 common_out_file= 205 common_out_file=
197 tmake_file= 206 tmake_file=
198 extra_headers= 207 extra_headers=
204 extra_objs= 213 extra_objs=
205 extra_gcc_objs= 214 extra_gcc_objs=
206 extra_options= 215 extra_options=
207 c_target_objs= 216 c_target_objs=
208 cxx_target_objs= 217 cxx_target_objs=
218 d_target_objs=
209 fortran_target_objs= 219 fortran_target_objs=
210 target_has_targetcm=no 220 target_has_targetcm=no
211 target_has_targetm_common=yes 221 target_has_targetm_common=yes
222 target_has_targetdm=no
212 tm_defines= 223 tm_defines=
213 xm_defines= 224 xm_defines=
214 # Set this to force installation and use of collect2. 225 # Set this to force installation and use of collect2.
215 use_collect2= 226 use_collect2=
216 # Set this to override the default target model. 227 # Set this to override the default target model.
234 xm_file= 245 xm_file=
235 md_file= 246 md_file=
236 247
237 # Obsolete configurations. 248 # Obsolete configurations.
238 case ${target} in 249 case ${target} in
239 *-*-solaris2.10* \ 250 tile*-*-* \
240 | powerpc*-*-*spe* \ 251 | crisv32-*-* \
241 | tile*-*-* \ 252 | cris-*-linux* \
242 ) 253 )
243 if test "x$enable_obsolete" != xyes; then 254 if test "x$enable_obsolete" != xyes; then
244 echo "*** Configuration ${target} is obsolete." >&2 255 echo "*** Configuration ${target} is obsolete." >&2
245 echo "*** Specify --enable-obsolete to build it anyway." >&2 256 echo "*** Specify --enable-obsolete to build it anyway." >&2
246 echo "*** Support will be REMOVED in the next major release of GCC," >&2 257 echo "*** Support will be REMOVED in the next major release of GCC," >&2
265 | i[34567]86-go32-* \ 276 | i[34567]86-go32-* \
266 | i[34567]86-*-go32* \ 277 | i[34567]86-*-go32* \
267 | m68k-*-uclinuxoldabi* \ 278 | m68k-*-uclinuxoldabi* \
268 | mips64orion*-*-rtems* \ 279 | mips64orion*-*-rtems* \
269 | pdp11-*-bsd \ 280 | pdp11-*-bsd \
281 | powerpc*-*-linux*paired* \
282 | powerpc*-*-*spe* \
270 | sparc-hal-solaris2* \ 283 | sparc-hal-solaris2* \
284 | spu*-*-* \
271 | thumb-*-* \ 285 | thumb-*-* \
272 | *-*-freebsd[12] | *-*-freebsd[1234].* \ 286 | *-*-freebsd[12] | *-*-freebsd[1234].* \
273 | *-*-freebsd*aout* \ 287 | *-*-freebsd*aout* \
274 | *-*-linux*aout* \ 288 | *-*-linux*aout* \
275 | *-*-linux*coff* \ 289 | *-*-linux*coff* \
278 | *-*-rtemsaout* \ 292 | *-*-rtemsaout* \
279 | *-*-rtemscoff* \ 293 | *-*-rtemscoff* \
280 | *-*-solaris2 \ 294 | *-*-solaris2 \
281 | *-*-solaris2.[0-9] \ 295 | *-*-solaris2.[0-9] \
282 | *-*-solaris2.[0-9].* \ 296 | *-*-solaris2.[0-9].* \
297 | *-*-solaris2.10* \
283 | *-*-sysv* \ 298 | *-*-sysv* \
284 | vax-*-vms* \ 299 | vax-*-vms* \
285 ) 300 )
286 echo "*** Configuration ${target} not supported" 1>&2 301 echo "*** Configuration ${target} not supported" 1>&2
287 exit 1 302 exit 1
300 tmake_file=m32c/t-m32c 315 tmake_file=m32c/t-m32c
301 target_has_targetm_common=no 316 target_has_targetm_common=no
302 ;; 317 ;;
303 aarch64*-*-*) 318 aarch64*-*-*)
304 cpu_type=aarch64 319 cpu_type=aarch64
305 extra_headers="arm_fp16.h arm_neon.h arm_acle.h" 320 extra_headers="arm_fp16.h arm_neon.h arm_bf16.h arm_acle.h arm_sve.h"
306 c_target_objs="aarch64-c.o" 321 c_target_objs="aarch64-c.o"
307 cxx_target_objs="aarch64-c.o" 322 cxx_target_objs="aarch64-c.o"
308 extra_objs="aarch64-builtins.o aarch-common.o cortex-a57-fma-steering.o aarch64-speculation.o falkor-tag-collision-avoidance.o" 323 d_target_objs="aarch64-d.o"
309 target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c" 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"
310 target_has_targetm_common=yes 326 target_has_targetm_common=yes
311 ;; 327 ;;
312 alpha*-*-*) 328 alpha*-*-*)
313 cpu_type=alpha 329 cpu_type=alpha
314 extra_options="${extra_options} g.opt" 330 extra_options="${extra_options} g.opt"
331 ;;
332 amdgcn*)
333 cpu_type=gcn
334 use_gcc_stdint=wrap
315 ;; 335 ;;
316 am33_2.0-*-linux*) 336 am33_2.0-*-linux*)
317 cpu_type=mn10300 337 cpu_type=mn10300
318 ;; 338 ;;
319 arc*-*-*) 339 arc*-*-*)
324 extra_headers="arc-simd.h" 344 extra_headers="arc-simd.h"
325 ;; 345 ;;
326 arm*-*-*) 346 arm*-*-*)
327 cpu_type=arm 347 cpu_type=arm
328 extra_objs="arm-builtins.o aarch-common.o" 348 extra_objs="arm-builtins.o aarch-common.o"
329 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h" 349 extra_headers="mmintrin.h arm_neon.h arm_acle.h arm_fp16.h arm_cmse.h arm_bf16.h"
330 target_type_format_char='%' 350 target_type_format_char='%'
331 c_target_objs="arm-c.o" 351 c_target_objs="arm-c.o"
332 cxx_target_objs="arm-c.o" 352 cxx_target_objs="arm-c.o"
353 d_target_objs="arm-d.o"
333 extra_options="${extra_options} arm/arm-tables.opt" 354 extra_options="${extra_options} arm/arm-tables.opt"
334 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c" 355 target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
335 ;; 356 ;;
336 avr-*-*) 357 avr-*-*)
337 cpu_type=avr 358 cpu_type=avr
338 c_target_objs="avr-c.o" 359 c_target_objs="avr-c.o"
339 cxx_target_objs="avr-c.o" 360 cxx_target_objs="avr-c.o"
340 ;; 361 ;;
341 bfin*-*) 362 bfin*-*)
342 cpu_type=bfin 363 cpu_type=bfin
364 ;;
365 bpf-*-*)
366 cpu_type=bpf
343 ;; 367 ;;
344 crisv32-*) 368 crisv32-*)
345 cpu_type=cris 369 cpu_type=cris
346 ;; 370 ;;
347 frv*) cpu_type=frv 371 frv*) cpu_type=frv
360 ;; 384 ;;
361 i[34567]86-*-*) 385 i[34567]86-*-*)
362 cpu_type=i386 386 cpu_type=i386
363 c_target_objs="i386-c.o" 387 c_target_objs="i386-c.o"
364 cxx_target_objs="i386-c.o" 388 cxx_target_objs="i386-c.o"
365 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.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"
366 extra_options="${extra_options} fused-madd.opt" 392 extra_options="${extra_options} fused-madd.opt"
367 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h 393 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
368 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h 394 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
369 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h 395 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
370 immintrin.h x86intrin.h avxintrin.h xopintrin.h 396 immintrin.h x86intrin.h avxintrin.h xopintrin.h
384 gfniintrin.h cet.h avx512vbmi2intrin.h 410 gfniintrin.h cet.h avx512vbmi2intrin.h
385 avx512vbmi2vlintrin.h avx512vnniintrin.h 411 avx512vbmi2vlintrin.h avx512vnniintrin.h
386 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h 412 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
387 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h 413 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
388 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h 414 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
389 waitpkgintrin.h cldemoteintrin.h" 415 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h avx512bf16intrin.h
416 enqcmdintrin.h avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h"
390 ;; 417 ;;
391 x86_64-*-*) 418 x86_64-*-*)
392 cpu_type=i386 419 cpu_type=i386
393 c_target_objs="i386-c.o" 420 c_target_objs="i386-c.o"
394 cxx_target_objs="i386-c.o" 421 cxx_target_objs="i386-c.o"
422 d_target_objs="i386-d.o"
395 extra_options="${extra_options} fused-madd.opt" 423 extra_options="${extra_options} fused-madd.opt"
396 extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o" 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"
397 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h 426 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
398 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h 427 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
399 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h 428 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
400 immintrin.h x86intrin.h avxintrin.h xopintrin.h 429 immintrin.h x86intrin.h avxintrin.h xopintrin.h
401 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h 430 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
414 gfniintrin.h cet.h avx512vbmi2intrin.h 443 gfniintrin.h cet.h avx512vbmi2intrin.h
415 avx512vbmi2vlintrin.h avx512vnniintrin.h 444 avx512vbmi2vlintrin.h avx512vnniintrin.h
416 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h 445 avx512vnnivlintrin.h vaesintrin.h vpclmulqdqintrin.h
417 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h 446 avx512vpopcntdqvlintrin.h avx512bitalgintrin.h
418 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h 447 pconfigintrin.h wbnoinvdintrin.h movdirintrin.h
419 waitpkgintrin.h cldemoteintrin.h" 448 waitpkgintrin.h cldemoteintrin.h avx512bf16vlintrin.h avx512bf16intrin.h
449 enqcmdintrin.h avx512vp2intersectintrin.h avx512vp2intersectvlintrin.h"
420 ;; 450 ;;
421 ia64-*-*) 451 ia64-*-*)
422 extra_headers=ia64intrin.h 452 extra_headers=ia64intrin.h
423 extra_options="${extra_options} g.opt fused-madd.opt" 453 extra_options="${extra_options} g.opt fused-madd.opt"
424 ;; 454 ;;
440 cpu_type=microblaze 470 cpu_type=microblaze
441 extra_options="${extra_options} g.opt" 471 extra_options="${extra_options} g.opt"
442 ;; 472 ;;
443 mips*-*-*) 473 mips*-*-*)
444 cpu_type=mips 474 cpu_type=mips
445 extra_headers="loongson.h msa.h" 475 d_target_objs="mips-d.o"
476 extra_headers="loongson.h loongson-mmiintrin.h msa.h"
446 extra_objs="frame-header-opt.o" 477 extra_objs="frame-header-opt.o"
447 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt" 478 extra_options="${extra_options} g.opt fused-madd.opt mips/mips-tables.opt"
448 ;; 479 ;;
449 nds32*) 480 nds32*)
450 cpu_type=nds32 481 cpu_type=nds32
466 extra_options="${extra_options} g.opt" 497 extra_options="${extra_options} g.opt"
467 ;; 498 ;;
468 nvptx-*-*) 499 nvptx-*-*)
469 cpu_type=nvptx 500 cpu_type=nvptx
470 ;; 501 ;;
471 powerpc*-*-*spe*) 502 or1k*-*-*)
472 cpu_type=powerpcspe 503 cpu_type=or1k
473 extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h"
474 case x$with_cpu in
475 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500)
476 cpu_is_64bit=yes
477 ;;
478 esac
479 extra_options="${extra_options} g.opt fused-madd.opt powerpcspe/powerpcspe-tables.opt"
480 ;; 504 ;;
481 powerpc*-*-*) 505 powerpc*-*-*)
482 cpu_type=rs6000 506 cpu_type=rs6000
483 extra_objs="rs6000-string.o rs6000-p8swap.o" 507 extra_objs="rs6000-string.o rs6000-p8swap.o rs6000-logue.o rs6000-call.o"
484 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h" 508 extra_headers="ppc-asm.h altivec.h htmintrin.h htmxlintrin.h"
485 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h" 509 extra_headers="${extra_headers} bmi2intrin.h bmiintrin.h"
486 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h" 510 extra_headers="${extra_headers} xmmintrin.h mm_malloc.h emmintrin.h"
487 extra_headers="${extra_headers} mmintrin.h x86intrin.h" 511 extra_headers="${extra_headers} mmintrin.h x86intrin.h"
488 extra_headers="${extra_headers} pmmintrin.h" 512 extra_headers="${extra_headers} pmmintrin.h tmmintrin.h smmintrin.h"
489 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h" 513 extra_headers="${extra_headers} ppu_intrinsics.h spu2vmx.h vec_types.h si2vmx.h"
490 extra_headers="${extra_headers} amo.h" 514 extra_headers="${extra_headers} amo.h"
491 case x$with_cpu in 515 case x$with_cpu in
492 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500) 516 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[3456789]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|xe6500|xfuture)
493 cpu_is_64bit=yes 517 cpu_is_64bit=yes
494 ;; 518 ;;
495 esac 519 esac
496 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt" 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 ;;
523 pru-*-*)
524 cpu_type=pru
497 ;; 525 ;;
498 riscv*) 526 riscv*)
499 cpu_type=riscv 527 cpu_type=riscv
500 extra_objs="riscv-builtins.o riscv-c.o" 528 extra_objs="riscv-builtins.o riscv-c.o riscv-sr.o"
529 d_target_objs="riscv-d.o"
501 ;; 530 ;;
502 rs6000*-*-*) 531 rs6000*-*-*)
503 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt" 532 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
504 extra_objs="rs6000-string.o rs6000-p8swap.o" 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"
505 ;; 535 ;;
506 sparc*-*-*) 536 sparc*-*-*)
507 cpu_type=sparc 537 cpu_type=sparc
508 c_target_objs="sparc-c.o" 538 c_target_objs="sparc-c.o"
509 cxx_target_objs="sparc-c.o" 539 cxx_target_objs="sparc-c.o"
540 d_target_objs="sparc-d.o"
510 extra_headers="visintrin.h" 541 extra_headers="visintrin.h"
511 ;;
512 spu*-*-*)
513 cpu_type=spu
514 ;; 542 ;;
515 s390*-*-*) 543 s390*-*-*)
516 cpu_type=s390 544 cpu_type=s390
545 d_target_objs="s390-d.o"
517 extra_options="${extra_options} fused-madd.opt" 546 extra_options="${extra_options} fused-madd.opt"
518 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h" 547 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
519 ;; 548 ;;
520 # Note the 'l'; we need to be able to match e.g. "shle" or "shl". 549 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
521 sh[123456789lbe]*-*-* | sh-*-*) 550 sh[123456789lbe]*-*-* | sh-*-*)
541 cpu_type=tilepro 570 cpu_type=tilepro
542 ;; 571 ;;
543 esac 572 esac
544 573
545 tm_file=${cpu_type}/${cpu_type}.h 574 tm_file=${cpu_type}/${cpu_type}.h
575 tm_d_file=${cpu_type}/${cpu_type}.h
546 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h 576 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
547 then 577 then
548 tm_p_file=${cpu_type}/${cpu_type}-protos.h 578 tm_p_file=${cpu_type}/${cpu_type}-protos.h
579 tm_d_file="${tm_d_file} ${cpu_type}/${cpu_type}-protos.h"
549 fi 580 fi
581
550 extra_modes= 582 extra_modes=
551 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def 583 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
552 then 584 then
553 extra_modes=${cpu_type}/${cpu_type}-modes.def 585 extra_modes=${cpu_type}/${cpu_type}-modes.def
554 fi 586 fi
582 i[34567]86-*-*) 614 i[34567]86-*-*)
583 if test "x$with_abi" != x; then 615 if test "x$with_abi" != x; then
584 echo "This target does not support --with-abi." 616 echo "This target does not support --with-abi."
585 exit 1 617 exit 1
586 fi 618 fi
587 if test "x$enable_cld" = xyes; then
588 tm_defines="${tm_defines} USE_IX86_CLD=1"
589 fi
590 if test "x$enable_frame_pointer" = xyes; then
591 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
592 fi
593 ;; 619 ;;
594 x86_64-*-*) 620 x86_64-*-*)
595 case ${with_abi} in 621 case ${with_abi} in
596 "") 622 "")
597 if test "x$with_multilib_list" = xmx32; then 623 if test "x$with_multilib_list" = xmx32; then
608 ;; 634 ;;
609 *) 635 *)
610 echo "Unknown ABI used in --with-abi=$with_abi" 636 echo "Unknown ABI used in --with-abi=$with_abi"
611 exit 1 637 exit 1
612 esac 638 esac
613 if test "x$enable_cld" = xyes; then
614 tm_defines="${tm_defines} USE_IX86_CLD=1"
615 fi
616 if test "x$enable_frame_pointer" = xyes; then
617 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
618 fi
619 ;; 639 ;;
620 arm*-*-*) 640 arm*-*-*)
621 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h" 641 tm_p_file="arm/arm-flags.h ${tm_p_file} arm/aarch-common-protos.h"
622 ;; 642 ;;
623 esac 643 esac
640 pentium4 pentium4m pentiumpro prescott lakemont" 660 pentium4 pentium4m pentiumpro prescott lakemont"
641 661
642 # 64-bit x86 processors supported by --with-arch=. Each processor 662 # 64-bit x86 processors supported by --with-arch=. Each processor
643 # MUST be separated by exactly one space. 663 # MUST be separated by exactly one space.
644 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \ 664 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
645 bdver3 bdver4 znver1 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \ 665 bdver3 bdver4 znver1 znver2 btver1 btver2 k8 k8-sse3 opteron \
646 core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \ 666 opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
647 sandybridge ivybridge haswell broadwell bonnell silvermont knl knm \ 667 slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
648 skylake-avx512 cannonlake icelake-client icelake-server skylake goldmont \ 668 silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
649 goldmont-plus tremont x86-64 native" 669 skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake x86-64 \
670 native"
650 671
651 # Additional x86 processors supported by --with-cpu=. Each processor 672 # Additional x86 processors supported by --with-cpu=. Each processor
652 # MUST be separated by exactly one space. 673 # MUST be separated by exactly one space.
653 x86_cpus="generic intel" 674 x86_cpus="generic intel"
654 675
655 # Common parts for widely ported systems. 676 # Common parts for widely ported systems.
656 case ${target} in 677 case ${target} in
657 *-*-darwin*) 678 *-*-darwin*)
658 tmake_file="t-darwin ${cpu_type}/t-darwin" 679 tmake_file="t-darwin "
659 tm_file="${tm_file} darwin.h" 680 tm_file="${tm_file} darwin.h"
660 case ${target} in 681 case ${target} in
661 *-*-darwin9*) 682 *-*-darwin9*)
662 tm_file="${tm_file} darwin9.h" 683 tm_file="${tm_file} darwin9.h"
663 ;; 684 ;;
668 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h" 689 tm_file="${tm_file} darwin9.h darwin10.h darwin12.h"
669 ;; 690 ;;
670 esac 691 esac
671 tm_file="${tm_file} ${cpu_type}/darwin.h" 692 tm_file="${tm_file} ${cpu_type}/darwin.h"
672 tm_p_file="${tm_p_file} darwin-protos.h" 693 tm_p_file="${tm_p_file} darwin-protos.h"
673 target_gtfiles="\$(srcdir)/config/darwin.c" 694 target_gtfiles="$target_gtfiles \$(srcdir)/config/darwin.c"
674 extra_options="${extra_options} darwin.opt" 695 extra_options="${extra_options} darwin.opt"
675 c_target_objs="${c_target_objs} darwin-c.o" 696 c_target_objs="${c_target_objs} darwin-c.o"
676 cxx_target_objs="${cxx_target_objs} darwin-c.o" 697 cxx_target_objs="${cxx_target_objs} darwin-c.o"
677 fortran_target_objs="darwin-f.o" 698 fortran_target_objs="darwin-f.o"
678 target_has_targetcm=yes 699 target_has_targetcm=yes
753 use_gcc_stdint=wrap 774 use_gcc_stdint=wrap
754 ;; 775 ;;
755 *-*-fuchsia*) 776 *-*-fuchsia*)
756 native_system_header_dir=/include 777 native_system_header_dir=/include
757 ;; 778 ;;
758 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) 779 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu | *-*-uclinuxfdpiceabi)
759 extra_options="$extra_options gnu-user.opt" 780 extra_options="$extra_options gnu-user.opt"
760 gas=yes 781 gas=yes
761 gnu_ld=yes 782 gnu_ld=yes
762 case ${enable_threads} in 783 case ${enable_threads} in
763 "" | yes | posix) thread_file='posix' ;; 784 "" | yes | posix) thread_file='posix' ;;
782 esac 803 esac
783 case $target in 804 case $target in
784 *-*-*android*) 805 *-*-*android*)
785 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC" 806 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
786 ;; 807 ;;
787 *-*-*uclibc*) 808 *-*-*uclibc* | *-*-uclinuxfdpiceabi)
788 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC" 809 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
789 ;; 810 ;;
790 *-*-*musl*) 811 *-*-*musl*)
791 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL" 812 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_MUSL"
792 ;; 813 ;;
808 tm_defines="$tm_defines ANDROID_DEFAULT=0" 829 tm_defines="$tm_defines ANDROID_DEFAULT=0"
809 ;; 830 ;;
810 esac 831 esac
811 c_target_objs="${c_target_objs} glibc-c.o" 832 c_target_objs="${c_target_objs} glibc-c.o"
812 cxx_target_objs="${cxx_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"
813 tmake_file="${tmake_file} t-glibc" 835 tmake_file="${tmake_file} t-glibc"
814 target_has_targetcm=yes 836 target_has_targetcm=yes
837 target_has_targetdm=yes
815 ;; 838 ;;
816 *-*-netbsd*) 839 *-*-netbsd*)
817 tm_p_file="${tm_p_file} netbsd-protos.h" 840 tm_p_file="${tm_p_file} netbsd-protos.h"
818 tmake_file="t-netbsd t-slibgcc" 841 tmake_file="t-netbsd t-slibgcc"
819 extra_objs="${extra_objs} netbsd.o" 842 extra_objs="${extra_objs} netbsd.o"
843 d_target_objs="${d_target_objs} netbsd-d.o"
820 gas=yes 844 gas=yes
821 gnu_ld=yes 845 gnu_ld=yes
822 use_gcc_stdint=wrap 846 use_gcc_stdint=wrap
823 case ${enable_threads} in 847 case ${enable_threads} in
824 "" | yes | posix) thread_file='posix' ;; 848 "" | yes | posix) thread_file='posix' ;;
825 esac 849 esac
826 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h" 850 nbsd_tm_file="netbsd.h netbsd-stdint.h netbsd-elf.h"
827 default_use_cxa_atexit=yes 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
828 ;; 858 ;;
829 *-*-openbsd*) 859 *-*-openbsd*)
830 tmake_file="t-openbsd" 860 tmake_file="t-openbsd"
831 case ${enable_threads} in 861 case ${enable_threads} in
832 yes) 862 yes)
891 fi 921 fi
892 tm_p_file="${tm_p_file} sol2-protos.h" 922 tm_p_file="${tm_p_file} sol2-protos.h"
893 tmake_file="${tmake_file} t-sol2 t-slibgcc" 923 tmake_file="${tmake_file} t-sol2 t-slibgcc"
894 c_target_objs="${c_target_objs} sol2-c.o" 924 c_target_objs="${c_target_objs} sol2-c.o"
895 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o" 925 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
926 d_target_objs="${d_target_objs} sol2-d.o"
896 extra_objs="${extra_objs} sol2.o sol2-stubs.o" 927 extra_objs="${extra_objs} sol2.o sol2-stubs.o"
897 extra_options="${extra_options} sol2.opt" 928 extra_options="${extra_options} sol2.opt"
898 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in 929 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
899 "":yes:* | yes:yes:* ) 930 "":yes:* | yes:yes:* )
900 thread_file=posix 931 thread_file=posix
901 ;; 932 ;;
902 esac 933 esac
934 target_has_targetdm=yes
903 ;; 935 ;;
904 *-*-*vms*) 936 *-*-*vms*)
905 extra_options="${extra_options} vms/vms.opt" 937 extra_options="${extra_options} vms/vms.opt"
906 xmake_file=vms/x-vms 938 xmake_file=vms/x-vms
907 tmake_file="vms/t-vms t-slibgcc" 939 tmake_file="vms/t-vms t-slibgcc"
921 fi 953 fi
922 ;; 954 ;;
923 *-*-vxworks*) 955 *-*-vxworks*)
924 tmake_file=t-vxworks 956 tmake_file=t-vxworks
925 xm_defines=POSIX 957 xm_defines=POSIX
958
926 extra_options="${extra_options} vxworks.opt" 959 extra_options="${extra_options} vxworks.opt"
927 extra_objs="$extra_objs vxworks.o" 960 extra_objs="$extra_objs vxworks.o"
928 use_gcc_stdint=provide 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
929 tm_file="${tm_file} vxworks-stdint.h" 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
930 case ${enable_threads} in 995 case ${enable_threads} in
931 no) ;; 996 no) ;;
932 "" | yes | vxworks) thread_file='vxworks' ;; 997 "" | yes | vxworks) thread_file='vxworks' ;;
933 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;; 998 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
934 esac 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
935 case $target in 1005 case $target in
936 *-*-vxworks7*) 1006 *-*-vxworks7*)
937 tm_defines="$tm_defines TARGET_VXWORKS7=1" 1007 tm_defines="$tm_defines TARGET_VXWORKS7=1"
938 ;; 1008 ;;
939 esac 1009 esac
940 case $target in 1010 case $target in
941 *64-*-vxworks*) 1011 *64-*-vxworks*)
942 tm_defines="$tm_defines TARGET_VXWORKS64=1" 1012 tm_defines="$tm_defines TARGET_VXWORKS64=1"
943 ;; 1013 ;;
944 esac 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
945 ;; 1027 ;;
946 *-*-elf|arc*-*-elf*) 1028 *-*-elf|arc*-*-elf*)
947 # Assume that newlib is being used and so __cxa_atexit is provided. 1029 # Assume that newlib is being used and so __cxa_atexit is provided.
948 default_use_cxa_atexit=yes 1030 default_use_cxa_atexit=yes
949 use_gcc_stdint=wrap 1031 use_gcc_stdint=wrap
951 esac 1033 esac
952 1034
953 case ${target} in 1035 case ${target} in
954 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) 1036 aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
955 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h" 1037 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
956 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h" 1038 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-elf-raw.h"
957 tmake_file="${tmake_file} aarch64/t-aarch64" 1039 tmake_file="${tmake_file} aarch64/t-aarch64"
958 case $target in 1040 case $target in
959 aarch64-*-elf*) 1041 aarch64-*-elf*)
960 use_gcc_stdint=wrap 1042 use_gcc_stdint=wrap
961 ;; 1043 ;;
988 done 1070 done
989 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'` 1071 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
990 ;; 1072 ;;
991 aarch64*-*-freebsd*) 1073 aarch64*-*-freebsd*)
992 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}" 1074 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file}"
993 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-freebsd.h" 1075 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
994 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd" 1076 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd"
1077 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1078 ;;
1079 aarch64*-*-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"
995 ;; 1084 ;;
996 aarch64*-*-linux*) 1085 aarch64*-*-linux*)
997 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h" 1086 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
998 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h" 1087 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-linux.h"
999 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux" 1088 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
1000 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1" 1089 tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
1001 case $target in 1090 case $target in
1002 aarch64_be-*) 1091 aarch64_be-*)
1003 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" 1092 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1020 exit 1 1109 exit 1
1021 esac 1110 esac
1022 done 1111 done
1023 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'` 1112 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1024 ;; 1113 ;;
1114 aarch64*-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 ;;
1025 alpha*-*-linux*) 1119 alpha*-*-linux*)
1026 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h" 1120 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
1027 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha" 1121 tmake_file="${tmake_file} alpha/t-linux alpha/t-alpha"
1028 extra_options="${extra_options} alpha/elf.opt" 1122 extra_options="${extra_options} alpha/elf.opt"
1029 ;; 1123 ;;
1083 *) echo "with_endian=${with_endian} not supported."; exit 1 ;; 1177 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
1084 esac 1178 esac
1085 case ${with_endian} in 1179 case ${with_endian} in
1086 big*) tm_file="arc/big.h ${tm_file}" 1180 big*) tm_file="arc/big.h ${tm_file}"
1087 esac 1181 esac
1088 ;; 1182 # Force .init_array support. The configure script cannot always
1089 arm-wrs-vxworks|arm-wrs-vxworks7) 1183 # automatically detect that GAS supports it, yet we require it.
1184 gcc_cv_initfini_array=yes
1185 ;;
1186 arm-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.
1090 extra_options="${extra_options} arm/vxworks.opt" 1191 extra_options="${extra_options} arm/vxworks.opt"
1091 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks" 1192 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks arm/t-bpabi"
1092 case $target in 1193 tm_file="elfos.h arm/elf.h arm/bpabi.h arm/aout.h ${tm_file}"
1093 *-vxworks7) 1194 tm_file="${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1094 # VxWorks7 on ARM adheres to the ARM Base Platform ABI 1195 target_cpu_cname="armv7-a"
1095 tmake_file="${tmake_file} arm/t-bpabi" 1196 need_64bit_hwint=yes
1096 tm_file="arm/bpabi.h ${tm_file}"
1097 # The BPABI long long divmod functions return a 128-bit value in
1098 # registers r0-r3.
1099 need_64bit_hwint=yes
1100 default_use_cxa_atexit=yes
1101 ;;
1102 *) ;;
1103 esac
1104 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1105 target_cpu_cname="arm8"
1106 ;; 1197 ;;
1107 arm*-*-freebsd*) # ARM FreeBSD EABI 1198 arm*-*-freebsd*) # ARM FreeBSD EABI
1108 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h" 1199 tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1109 case $target in 1200 case $target in
1110 arm*b-*-freebsd*) 1201 arm*b-*-freebsd*)
1129 ;; 1220 ;;
1130 esac 1221 esac
1131 with_tls=${with_tls:-gnu} 1222 with_tls=${with_tls:-gnu}
1132 ;; 1223 ;;
1133 arm*-*-netbsdelf*) 1224 arm*-*-netbsdelf*)
1134 tm_file="dbxelf.h elfos.h ${nbsd_tm_file} arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h" 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"
1135 extra_options="${extra_options} netbsd.opt netbsd-elf.opt" 1228 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1136 tmake_file="${tmake_file} arm/t-arm" 1229 case ${target} in
1137 target_cpu_cname="strongarm" 1230 arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
1138 ;; 1231 esac
1139 arm*-*-linux-*) # ARM GNU/Linux with ELF 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 ;;
1255 arm*-*-linux-* | arm*-*-uclinuxfdpiceabi)
1140 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" 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"
1141 extra_options="${extra_options} linux-android.opt" 1257 extra_options="${extra_options} linux-android.opt"
1142 case $target in 1258 case $target in
1143 arm*b-*-linux*) 1259 arm*b-*-linux*)
1144 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" 1260 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1145 ;; 1261 ;;
1146 esac 1262 esac
1147 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi" 1263 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1148 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h arm/arm.h" 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
1149 # Generation of floating-point instructions requires at least ARMv5te. 1270 # Generation of floating-point instructions requires at least ARMv5te.
1150 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then 1271 if [ "$with_float" = "hard" -o "$with_float" = "softfp" ] ; then
1151 target_cpu_cname="arm10e" 1272 target_cpu_cname="arm10e"
1152 else 1273 else
1153 target_cpu_cname="arm10tdmi" 1274 target_cpu_cname="arm10tdmi"
1215 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h" 1336 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1216 if test x${with_avrlibc} != xno; then 1337 if test x${with_avrlibc} != xno; then
1217 tm_file="${tm_file} ${cpu_type}/avrlibc.h" 1338 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1218 tm_defines="${tm_defines} WITH_AVRLIBC" 1339 tm_defines="${tm_defines} WITH_AVRLIBC"
1219 fi 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}"
1220 tmake_file="${tmake_file} avr/t-avr avr/t-multilib" 1463 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1221 use_gcc_stdint=wrap 1464 use_gcc_stdint=wrap
1222 extra_gcc_objs="driver-avr.o avr-devices.o" 1465 extra_gcc_objs="driver-avr.o avr-devices.o"
1223 extra_objs="avr-devices.o avr-log.o" 1466 extra_objs="avr-devices.o avr-log.o"
1224 ;; 1467 ;;
1244 bfin*-*) 1487 bfin*-*)
1245 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h" 1488 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1246 use_collect2=no 1489 use_collect2=no
1247 use_gcc_stdint=wrap 1490 use_gcc_stdint=wrap
1248 ;; 1491 ;;
1492 bpf-*-*)
1493 tmake_file="${tmake_file} bpf/t-bpf"
1494 use_collect2=no
1495 extra_headers="bpf-helpers.h"
1496 use_gcc_stdint=provide
1497 ;;
1249 cr16-*-elf) 1498 cr16-*-elf)
1250 tm_file="elfos.h ${tm_file} newlib-stdint.h" 1499 tm_file="elfos.h ${tm_file} newlib-stdint.h"
1251 tmake_file="${tmake_file} cr16/t-cr16 " 1500 tmake_file="${tmake_file} cr16/t-cr16 "
1252 use_collect2=no 1501 use_collect2=no
1253 ;; 1502 ;;
1324 fi 1573 fi
1325 1574
1326 case ${target} in 1575 case ${target} in
1327 csky-*-linux-gnu*) 1576 csky-*-linux-gnu*)
1328 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC" 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
1329 ;; 1581 ;;
1330 csky-*-linux-uclibc*) 1582 csky-*-linux-uclibc*)
1331 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC" 1583 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
1332 default_use_cxa_atexit=no 1584 default_use_cxa_atexit=no
1333 ;; 1585 ;;
1375 gas=yes 1627 gas=yes
1376 gnu_ld=yes 1628 gnu_ld=yes
1377 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 1629 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1378 tmake_file="${tmake_file} ft32/t-ft32" 1630 tmake_file="${tmake_file} ft32/t-ft32"
1379 ;; 1631 ;;
1632 amdgcn-*-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 ;;
1380 moxie-*-elf) 1654 moxie-*-elf)
1381 gas=yes 1655 gas=yes
1382 gnu_ld=yes 1656 gnu_ld=yes
1383 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 1657 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1384 tmake_file="${tmake_file} moxie/t-moxie" 1658 tmake_file="${tmake_file} moxie/t-moxie"
1410 hppa*64*-*-linux*) 1684 hppa*64*-*-linux*)
1411 target_cpu_default="MASK_PA_11|MASK_PA_20" 1685 target_cpu_default="MASK_PA_11|MASK_PA_20"
1412 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \ 1686 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1413 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \ 1687 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1414 pa/pa64-linux.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"
1415 gas=yes gnu_ld=yes 1691 gas=yes gnu_ld=yes
1416 ;; 1692 ;;
1417 hppa*-*-linux*) 1693 hppa*-*-linux*)
1418 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES" 1694 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS|MASK_CALLER_COPIES"
1419 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \ 1695 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1420 pa/pa32-regs.h pa/pa32-linux.h" 1696 pa/pa32-regs.h pa/pa32-linux.h"
1421 tmake_file="${tmake_file} pa/t-linux" 1697 tmake_file="${tmake_file} pa/t-pa pa/t-linux"
1698 d_target_objs="${d_target_objs} pa-d.o"
1422 ;; 1699 ;;
1423 hppa*-*-openbsd*) 1700 hppa*-*-openbsd*)
1424 target_cpu_default="MASK_PA_11" 1701 target_cpu_default="MASK_PA_11"
1425 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \ 1702 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1426 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h" 1703 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1427 extra_options="${extra_options} openbsd.opt" 1704 extra_options="${extra_options} openbsd.opt"
1705 tmake_file="pa/t-pa"
1706 d_target_objs="${d_target_objs} pa-d.o"
1428 gas=yes 1707 gas=yes
1429 gnu_ld=yes 1708 gnu_ld=yes
1709 ;;
1710 hppa*-*-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"
1430 ;; 1717 ;;
1431 hppa[12]*-*-hpux10*) 1718 hppa[12]*-*-hpux10*)
1432 case ${target} in 1719 case ${target} in
1433 hppa1.1-*-* | hppa2*-*-*) 1720 hppa1.1-*-* | hppa2*-*-*)
1434 target_cpu_default="MASK_PA_11" 1721 target_cpu_default="MASK_PA_11"
1443 extra_options="${extra_options} pa/pa-hpux1010.opt" 1730 extra_options="${extra_options} pa/pa-hpux1010.opt"
1444 ;; 1731 ;;
1445 esac 1732 esac
1446 use_gcc_stdint=provide 1733 use_gcc_stdint=provide
1447 tm_file="${tm_file} hpux-stdint.h" 1734 tm_file="${tm_file} hpux-stdint.h"
1448 tmake_file="t-slibgcc" 1735 tmake_file="pa/t-pa t-slibgcc"
1736 d_target_objs="${d_target_objs} pa-d.o"
1449 case ${enable_threads} in 1737 case ${enable_threads} in
1450 "") 1738 "")
1451 if test x$have_pthread_h = xyes ; then 1739 if test x$have_pthread_h = xyes ; then
1452 tmake_file="${tmake_file} pa/t-dce-thr" 1740 tmake_file="${tmake_file} pa/t-dce-thr"
1453 fi 1741 fi
1485 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h" 1773 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1486 ;; 1774 ;;
1487 esac 1775 esac
1488 extra_options="${extra_options} pa/pa-hpux.opt \ 1776 extra_options="${extra_options} pa/pa-hpux.opt \
1489 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt" 1777 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1490 tmake_file="t-slibgcc" 1778 tmake_file="pa/t-pa t-slibgcc"
1779 d_target_objs="${d_target_objs} pa-d.o"
1491 case x${enable_threads} in 1780 case x${enable_threads} in
1492 x | xyes | xposix ) 1781 x | xyes | xposix )
1493 thread_file=posix 1782 thread_file=posix
1494 ;; 1783 ;;
1495 esac 1784 esac
1523 *-*-hpux11.[3-9]*) 1812 *-*-hpux11.[3-9]*)
1524 tm_file="${tm_file} pa/pa-hpux1131.h" 1813 tm_file="${tm_file} pa/pa-hpux1131.h"
1525 extra_options="${extra_options} pa/pa-hpux1131.opt" 1814 extra_options="${extra_options} pa/pa-hpux1131.opt"
1526 ;; 1815 ;;
1527 esac 1816 esac
1528 tmake_file="t-slibgcc" 1817 tmake_file="pa/t-pa t-slibgcc"
1818 d_target_objs="${d_target_objs} pa-d.o"
1529 case x${enable_threads} in 1819 case x${enable_threads} in
1530 x | xyes | xposix ) 1820 x | xyes | xposix )
1531 thread_file=posix 1821 thread_file=posix
1532 ;; 1822 ;;
1533 esac 1823 esac
1546 if test "x$with_dwarf2" != x; then 1836 if test "x$with_dwarf2" != x; then
1547 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2 1837 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1548 dwarf2=no 1838 dwarf2=no
1549 fi 1839 fi
1550 ;; 1840 ;;
1841 i[34567]86-*-darwin1[89]*)
1842 echo "Error: 32bit target is not supported after Darwin17" 1>&2
1843 ;;
1551 i[34567]86-*-darwin*) 1844 i[34567]86-*-darwin*)
1552 need_64bit_isa=yes 1845 need_64bit_isa=yes
1553 # Baseline choice for a machine that allows m64 support. 1846 # Baseline choice for a machine that allows m64 support.
1554 with_cpu=${with_cpu:-core2} 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 ;;
1851 x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*)
1852 # Only 64b from now
1853 with_cpu=${with_cpu:-core2}
1555 tmake_file="${tmake_file} t-slibgcc" 1854 tmake_file="${tmake_file} t-slibgcc"
1556 ;; 1855 ;;
1557 x86_64-*-darwin*) 1856 x86_64-*-darwin*)
1558 with_cpu=${with_cpu:-core2} 1857 with_cpu=${with_cpu:-core2}
1559 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc" 1858 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
1560 tm_file="${tm_file} ${cpu_type}/darwin64.h" 1859 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
1561 ;; 1860 ;;
1562 i[34567]86-*-elfiamcu) 1861 i[34567]86-*-elfiamcu)
1563 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h" 1862 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/iamcu.h"
1564 ;; 1863 ;;
1565 i[34567]86-*-elf*) 1864 i[34567]86-*-elf*)
1736 ;; 2035 ;;
1737 i[34567]86-*-rtems*) 2036 i[34567]86-*-rtems*)
1738 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" 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"
1739 tmake_file="${tmake_file} i386/t-rtems" 2038 tmake_file="${tmake_file} i386/t-rtems"
1740 ;; 2039 ;;
1741 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*) 2040 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
1742 # Set default arch_32 to pentium4, tune_32 to generic like the other 2041 # Set default arch_32 to pentium4, tune_32 to generic like the other
1743 # i386 targets, although config.guess defaults to i386-pc-solaris2*. 2042 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1744 with_arch_32=${with_arch_32:-pentium4} 2043 with_arch_32=${with_arch_32:-pentium4}
1745 with_tune_32=${with_tune_32:-generic} 2044 with_tune_32=${with_tune_32:-generic}
1746 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}" 2045 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1785 ;; 2084 ;;
1786 i[34567]86-*-cygwin*) 2085 i[34567]86-*-cygwin*)
1787 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" 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"
1788 xm_file=i386/xm-cygwin.h 2087 xm_file=i386/xm-cygwin.h
1789 tmake_file="${tmake_file} i386/t-cygming t-slibgcc" 2088 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1790 target_gtfiles="\$(srcdir)/config/i386/winnt.c" 2089 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
1791 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt" 2090 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1792 extra_objs="${extra_objs} winnt.o winnt-stubs.o" 2091 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1793 c_target_objs="${c_target_objs} msformat-c.o" 2092 c_target_objs="${c_target_objs} msformat-c.o"
1794 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o" 2093 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1795 if test x$enable_threads = xyes; then 2094 if test x$enable_threads = xyes; then
1801 x86_64-*-cygwin*) 2100 x86_64-*-cygwin*)
1802 need_64bit_isa=yes 2101 need_64bit_isa=yes
1803 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" 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"
1804 xm_file=i386/xm-cygwin.h 2103 xm_file=i386/xm-cygwin.h
1805 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64" 2104 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1806 target_gtfiles="\$(srcdir)/config/i386/winnt.c" 2105 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
1807 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt" 2106 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1808 extra_objs="${extra_objs} winnt.o winnt-stubs.o" 2107 extra_objs="${extra_objs} winnt.o winnt-stubs.o"
1809 c_target_objs="${c_target_objs} msformat-c.o" 2108 c_target_objs="${c_target_objs} msformat-c.o"
1810 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o" 2109 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1811 if test x$enable_threads = xyes; then 2110 if test x$enable_threads = xyes; then
1869 i[34567]86-w64-*) 2168 i[34567]86-w64-*)
1870 tmake_file="${tmake_file} i386/t-mingw-w32" 2169 tmake_file="${tmake_file} i386/t-mingw-w32"
1871 ;; 2170 ;;
1872 esac 2171 esac
1873 native_system_header_dir=/mingw/include 2172 native_system_header_dir=/mingw/include
1874 target_gtfiles="\$(srcdir)/config/i386/winnt.c" 2173 target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.c"
1875 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt" 2174 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1876 case ${target} in 2175 case ${target} in
1877 *-w64-*) 2176 *-w64-*)
1878 extra_options="${extra_options} i386/mingw-w64.opt" 2177 extra_options="${extra_options} i386/mingw-w64.opt"
1879 ;; 2178 ;;
2398 tm_file="${tm_file} dbx.h" 2697 tm_file="${tm_file} dbx.h"
2399 fi 2698 fi
2400 use_collect2=no 2699 use_collect2=no
2401 use_gcc_stdint=wrap 2700 use_gcc_stdint=wrap
2402 ;; 2701 ;;
2403 msp430*-*-*) 2702 msp430-*-*)
2404 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 2703 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2405 c_target_objs="msp430-c.o" 2704 c_target_objs="msp430-c.o"
2406 cxx_target_objs="msp430-c.o" 2705 cxx_target_objs="msp430-c.o"
2407 tmake_file="${tmake_file} msp430/t-msp430" 2706 tmake_file="${tmake_file} msp430/t-msp430"
2408 extra_gcc_objs="driver-msp430.o" 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
2409 ;; 2727 ;;
2410 nds32*-*-*) 2728 nds32*-*-*)
2411 target_cpu_default="0" 2729 target_cpu_default="0"
2412 tm_defines="${tm_defines}" 2730 tm_defines="${tm_defines}"
2413 case ${target} in 2731 case ${target} in
2424 tmake_file="nds32/t-nds32 nds32/t-elf" 2742 tmake_file="nds32/t-nds32 nds32/t-elf"
2425 ;; 2743 ;;
2426 nds32*-*-linux*) 2744 nds32*-*-linux*)
2427 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h" 2745 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h nds32/linux.h nds32/nds32_intrinsic.h"
2428 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux" 2746 tmake_file="${tmake_file} nds32/t-nds32 nds32/t-linux"
2747 gcc_cv_initfini_array=yes
2429 ;; 2748 ;;
2430 esac 2749 esac
2431 2750
2432 # Handle --enable-default-relax setting. 2751 # Handle --enable-default-relax setting.
2433 if test x${enable_default_relax} = xyes; then 2752 if test x${enable_default_relax} = xyes; then
2462 if test x$enable_as_accelerator = xyes; then 2781 if test x$enable_as_accelerator = xyes; then
2463 extra_programs="${extra_programs} mkoffload\$(exeext)" 2782 extra_programs="${extra_programs} mkoffload\$(exeext)"
2464 tm_file="${tm_file} nvptx/offload.h" 2783 tm_file="${tm_file} nvptx/offload.h"
2465 fi 2784 fi
2466 ;; 2785 ;;
2786 or1k*-*-*)
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 ;;
2467 pdp11-*-*) 2830 pdp11-*-*)
2468 tm_file="${tm_file} newlib-stdint.h" 2831 tm_file="${tm_file} newlib-stdint.h"
2469 use_gcc_stdint=wrap 2832 use_gcc_stdint=wrap
2470 ;; 2833 ;;
2471 # port not yet contributed 2834 # port not yet contributed
2472 #powerpc-*-openbsd*) 2835 #powerpc-*-openbsd*)
2473 # tmake_file="${tmake_file} rs6000/t-fprules" 2836 # tmake_file="${tmake_file} rs6000/t-fprules"
2474 # extra_headers= 2837 # extra_headers=
2475 # ;; 2838 # ;;
2476 powerpc-*-darwin*) 2839 powerpc-*-darwin*)
2477 extra_options="${extra_options} rs6000/darwin.opt" 2840 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2478 case ${target} in 2841 case ${target} in
2479 *-darwin1[0-9]* | *-darwin[8-9]*) 2842 *-darwin1[0-9]* | *-darwin9*)
2480 tmake_file="${tmake_file} rs6000/t-darwin8" 2843 tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch"
2481 tm_file="${tm_file} rs6000/darwin8.h" 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"
2482 ;; 2850 ;;
2483 *-darwin7*) 2851 *-darwin7*)
2484 tm_file="${tm_file} rs6000/darwin7.h" 2852 tm_file="${tm_file} ${cpu_type}/darwin7.h"
2485 ;; 2853 ;;
2486 *-darwin[0-6]*) 2854 *-darwin[456]*)
2855 # Earlier - ingle arch, with 32b only
2856 # OS X 10.0, the first edition is Darwin4
2487 ;; 2857 ;;
2488 esac 2858 esac
2489 tmake_file="${tmake_file} t-slibgcc" 2859 tmake_file="${tmake_file} t-slibgcc"
2490 extra_headers=altivec.h
2491 ;; 2860 ;;
2492 powerpc64-*-darwin*) 2861 powerpc64-*-darwin*)
2493 extra_options="${extra_options} ${cpu_type}/darwin.opt" 2862 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2494 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc" 2863 tmake_file="${tmake_file} ${cpu_type}/t-darwin64-biarch t-slibgcc"
2495 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h" 2864 tm_file="${tm_file} ${cpu_type}/darwin64-biarch.h"
2496 extra_headers=altivec.h
2497 ;; 2865 ;;
2498 powerpc*-*-freebsd*) 2866 powerpc*-*-freebsd*)
2499 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h" 2867 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${fbsd_tm_file} rs6000/sysv4.h"
2500 extra_options="${extra_options} rs6000/sysv4.opt" 2868 extra_options="${extra_options} rs6000/sysv4.opt"
2501 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm" 2869 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2502 case ${target} in 2870 case ${target} in
2503 powerpc64*) 2871 powerpc64*)
2504 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h" 2872 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2505 tmake_file="${tmake_file} rs6000/t-freebsd64" 2873 tmake_file="${tmake_file} rs6000/t-freebsd64"
2506 extra_options="${extra_options} rs6000/linux64.opt" 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
2507 ;; 2878 ;;
2508 *) 2879 *)
2880 if test $fbsd_major -ge 13; then
2881 tm_file="rs6000/secureplt.h ${tm_file}"
2882 fi
2509 tm_file="${tm_file} rs6000/freebsd.h" 2883 tm_file="${tm_file} rs6000/freebsd.h"
2510 ;; 2884 ;;
2511 esac 2885 esac
2512 ;; 2886 ;;
2513 powerpc-*-netbsd*) 2887 powerpc-*-netbsd*)
2514 tm_file="${tm_file} dbxelf.h elfos.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h" 2888 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h ${nbsd_tm_file} freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2515 extra_options="${extra_options} netbsd.opt netbsd-elf.opt" 2889 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2516 tmake_file="${tmake_file} rs6000/t-netbsd" 2890 tmake_file="${tmake_file} rs6000/t-netbsd"
2517 extra_options="${extra_options} rs6000/sysv4.opt" 2891 extra_options="${extra_options} rs6000/sysv4.opt"
2518 ;; 2892 ;;
2519 powerpc-*-eabispe*)
2520 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h ${cpu_type}/sysv4.h ${cpu_type}/eabi.h ${cpu_type}/e500.h ${cpu_type}/eabispe.h"
2521 extra_options="${extra_options} ${cpu_type}/sysv4.opt"
2522 tmake_file="${cpu_type}/t-spe ${cpu_type}/t-ppccomm"
2523 use_gcc_stdint=wrap
2524 ;;
2525 powerpc-*-eabisimaltivec*) 2893 powerpc-*-eabisimaltivec*)
2526 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h rs6000/eabialtivec.h" 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"
2527 extra_options="${extra_options} rs6000/sysv4.opt" 2895 extra_options="${extra_options} rs6000/sysv4.opt"
2528 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm" 2896 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2529 use_gcc_stdint=wrap 2897 use_gcc_stdint=wrap
2530 ;; 2898 ;;
2531 powerpc-*-eabisim*) 2899 powerpc-*-eabisim*)
2532 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabisim.h" 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"
2533 extra_options="${extra_options} rs6000/sysv4.opt" 2901 extra_options="${extra_options} rs6000/sysv4.opt"
2534 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" 2902 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2535 use_gcc_stdint=wrap 2903 use_gcc_stdint=wrap
2536 ;; 2904 ;;
2537 powerpc-*-elf*) 2905 powerpc-*-elf*)
2538 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h" 2906 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2539 extra_options="${extra_options} rs6000/sysv4.opt" 2907 extra_options="${extra_options} rs6000/sysv4.opt"
2540 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" 2908 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2541 ;; 2909 ;;
2542 powerpc-*-eabialtivec*) 2910 powerpc-*-eabialtivec*)
2543 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/eabialtivec.h" 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"
2544 extra_options="${extra_options} rs6000/sysv4.opt" 2912 extra_options="${extra_options} rs6000/sysv4.opt"
2545 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm" 2913 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2546 use_gcc_stdint=wrap 2914 use_gcc_stdint=wrap
2547 ;; 2915 ;;
2548 powerpc-*-eabi*) 2916 powerpc-*-eabi*)
2549 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h" 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"
2550 extra_options="${extra_options} rs6000/sysv4.opt" 2918 extra_options="${extra_options} rs6000/sysv4.opt"
2551 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" 2919 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2552 use_gcc_stdint=wrap 2920 use_gcc_stdint=wrap
2553 ;; 2921 ;;
2554 powerpc-*-rtems*spe*)
2555 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h powerpcspe/sysv4.h powerpcspe/eabi.h powerpcspe/e500.h powerpcspe/rtems.h rtems.h"
2556 extra_options="${extra_options} powerpcspe/sysv4.opt"
2557 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-rtems powerpcspe/t-ppccomm"
2558 ;;
2559 powerpc-*-rtems*) 2922 powerpc-*-rtems*)
2560 tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/rtems.h rtems.h" 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"
2561 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt" 2924 extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2562 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm" 2925 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2563 ;; 2926 ;;
2564 powerpc*-*-linux*spe*)
2565 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h powerpcspe/sysv4.h"
2566 extra_options="${extra_options} powerpcspe/sysv4.opt"
2567 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm"
2568 extra_objs="$extra_objs powerpcspe-linux.o"
2569 maybe_biarch=
2570 tm_file="${tm_file} powerpcspe/linux.h glibc-stdint.h"
2571 tmake_file="${tmake_file} powerpcspe/t-ppcos powerpcspe/t-linux"
2572 tm_file="${tm_file} powerpcspe/linuxspe.h powerpcspe/e500.h"
2573 ;;
2574 powerpc*-*-linux*) 2927 powerpc*-*-linux*)
2575 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h" 2928 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h freebsd-spec.h rs6000/sysv4.h"
2576 extra_options="${extra_options} rs6000/sysv4.opt" 2929 extra_options="${extra_options} rs6000/sysv4.opt"
2577 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm" 2930 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2578 extra_objs="$extra_objs rs6000-linux.o" 2931 extra_objs="$extra_objs rs6000-linux.o"
2579 case ${target} in 2932 case ${target} in
2580 powerpc*le-*-*) 2933 powerpc*le-*-*)
2585 esac 2938 esac
2586 maybe_biarch=${cpu_is_64bit} 2939 maybe_biarch=${cpu_is_64bit}
2587 case ${enable_targets} in 2940 case ${enable_targets} in
2588 *powerpc64*) maybe_biarch=yes ;; 2941 *powerpc64*) maybe_biarch=yes ;;
2589 all) maybe_biarch=yes ;; 2942 all) maybe_biarch=yes ;;
2590 esac
2591 case ${target} in
2592 powerpc64*-*-linux*spe* | powerpc*-*-linux*paired*)
2593 echo "*** Configuration ${target} not supported" 1>&2
2594 exit 1
2595 ;;
2596 powerpc*-*-linux*spe*)
2597 maybe_biarch=
2598 ;;
2599 esac 2943 esac
2600 case ${target}:${enable_targets}:${maybe_biarch} in 2944 case ${target}:${enable_targets}:${maybe_biarch} in
2601 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \ 2945 powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2602 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \ 2946 | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2603 | powerpcle-*:*powerpc64le*:yes) 2947 | powerpcle-*:*powerpc64le*:yes)
2635 powerpc*-*-linux*ppc476*) 2979 powerpc*-*-linux*ppc476*)
2636 tm_file="${tm_file} rs6000/476.h" 2980 tm_file="${tm_file} rs6000/476.h"
2637 extra_options="${extra_options} rs6000/476.opt" ;; 2981 extra_options="${extra_options} rs6000/476.opt" ;;
2638 powerpc*-*-linux*altivec*) 2982 powerpc*-*-linux*altivec*)
2639 tm_file="${tm_file} rs6000/linuxaltivec.h" ;; 2983 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2640 powerpc*-*-linux*spe*)
2641 tm_file="${tm_file} ${cpu_type}/linuxspe.h ${cpu_type}/e500.h" ;;
2642 esac 2984 esac
2643 case ${target} in 2985 case ${target} in
2644 *-linux*-musl*) 2986 *-linux*-musl*)
2645 enable_secureplt=yes ;; 2987 enable_secureplt=yes ;;
2646 esac 2988 esac
2647 if test x${enable_secureplt} = xyes; then 2989 if test x${enable_secureplt} = xyes; then
2648 tm_file="rs6000/secureplt.h ${tm_file}" 2990 tm_file="rs6000/secureplt.h ${tm_file}"
2649 fi 2991 fi
2650 ;; 2992 ;;
2651 powerpc-wrs-vxworks*spe)
2652 tm_file="${tm_file} elfos.h freebsd-spec.h powerpcspe/sysv4.h"
2653 tmake_file="${tmake_file} powerpcspe/t-fprules powerpcspe/t-ppccomm powerpcspe/t-vxworks"
2654 extra_options="${extra_options} powerpcspe/sysv4.opt"
2655 extra_headers=ppc-asm.h
2656 tm_file="${tm_file} vx-common.h vxworks.h powerpcspe/vxworks.h powerpcspe/e500.h"
2657 ;;
2658 powerpc-wrs-vxworks*) 2993 powerpc-wrs-vxworks*)
2659 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h" 2994 tm_file="${tm_file} elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2660 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks" 2995 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2661 extra_options="${extra_options} rs6000/sysv4.opt" 2996 extra_options="${extra_options} rs6000/sysv4.opt"
2662 extra_headers=ppc-asm.h 2997 extra_headers="${extra_headers} ppc-asm.h"
2663 case ${target} in 2998 case ${target} in
2664 *-vxworksmils*) 2999 *-vxworksmils*)
2665 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h" 3000 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/vxworksmils.h"
2666 tmake_file="${tmake_file} rs6000/t-vxworksmils" 3001 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2667 ;; 3002 ;;
2674 ;; 3009 ;;
2675 esac 3010 esac
2676 ;; 3011 ;;
2677 powerpc-*-lynxos*) 3012 powerpc-*-lynxos*)
2678 xm_defines=POSIX 3013 xm_defines=POSIX
2679 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h" 3014 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2680 tmake_file="t-lynx rs6000/t-lynx" 3015 tmake_file="t-lynx rs6000/t-lynx"
2681 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt" 3016 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2682 thread_file=lynx 3017 thread_file=lynx
2683 gnu_ld=yes 3018 gnu_ld=yes
2684 gas=yes 3019 gas=yes
2685 ;; 3020 ;;
2686 powerpcle-*-elf*) 3021 powerpcle-*-elf*)
2687 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h" 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"
2688 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" 3023 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2689 extra_options="${extra_options} rs6000/sysv4.opt" 3024 extra_options="${extra_options} rs6000/sysv4.opt"
2690 ;; 3025 ;;
2691 powerpcle-*-eabisim*) 3026 powerpcle-*-eabisim*)
2692 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/eabisim.h" 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"
2693 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" 3028 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2694 extra_options="${extra_options} rs6000/sysv4.opt" 3029 extra_options="${extra_options} rs6000/sysv4.opt"
2695 use_gcc_stdint=wrap 3030 use_gcc_stdint=wrap
2696 ;; 3031 ;;
2697 powerpcle-*-eabi*) 3032 powerpcle-*-eabi*)
2698 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h" 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"
2699 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm" 3034 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2700 extra_options="${extra_options} rs6000/sysv4.opt" 3035 extra_options="${extra_options} rs6000/sysv4.opt"
3036 use_gcc_stdint=wrap
3037 ;;
3038 pru*-*-*)
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"
2701 use_gcc_stdint=wrap 3042 use_gcc_stdint=wrap
2702 ;; 3043 ;;
2703 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*) 3044 rs6000-ibm-aix6.* | powerpc-ibm-aix6.*)
2704 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h" 3045 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2705 tmake_file="rs6000/t-aix52 t-slibgcc" 3046 tmake_file="rs6000/t-aix52 t-slibgcc"
2706 extra_options="${extra_options} rs6000/aix64.opt" 3047 extra_options="${extra_options} rs6000/aix64.opt"
2707 use_collect2=yes 3048 use_collect2=yes
2708 thread_file='aix' 3049 thread_file='aix'
2709 use_gcc_stdint=wrap 3050 use_gcc_stdint=wrap
2710 extra_headers=altivec.h
2711 default_use_cxa_atexit=yes 3051 default_use_cxa_atexit=yes
2712 ;; 3052 ;;
2713 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*) 3053 rs6000-ibm-aix7.1.* | powerpc-ibm-aix7.1.*)
2714 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h" 3054 tm_file="${tm_file} rs6000/aix.h rs6000/aix71.h rs6000/xcoff.h rs6000/aix-stdint.h"
2715 tmake_file="rs6000/t-aix52 t-slibgcc" 3055 tmake_file="rs6000/t-aix52 t-slibgcc"
2716 extra_options="${extra_options} rs6000/aix64.opt" 3056 extra_options="${extra_options} rs6000/aix64.opt"
2717 use_collect2=yes 3057 use_collect2=yes
2718 thread_file='aix' 3058 thread_file='aix'
2719 use_gcc_stdint=wrap 3059 use_gcc_stdint=wrap
2720 extra_headers="altivec.h amo.h"
2721 default_use_cxa_atexit=yes 3060 default_use_cxa_atexit=yes
2722 ;; 3061 ;;
2723 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*) 3062 rs6000-ibm-aix[789].* | powerpc-ibm-aix[789].*)
2724 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h" 3063 tm_file="${tm_file} rs6000/aix.h rs6000/aix72.h rs6000/xcoff.h rs6000/aix-stdint.h"
2725 tmake_file="rs6000/t-aix52 t-slibgcc" 3064 tmake_file="rs6000/t-aix52 t-slibgcc"
2726 extra_options="${extra_options} rs6000/aix64.opt" 3065 extra_options="${extra_options} rs6000/aix64.opt"
2727 use_collect2=yes 3066 use_collect2=yes
2728 thread_file='aix' 3067 thread_file='aix'
2729 use_gcc_stdint=wrap 3068 use_gcc_stdint=wrap
2730 extra_headers="altivec.h amo.h"
2731 default_use_cxa_atexit=yes 3069 default_use_cxa_atexit=yes
2732 ;; 3070 ;;
2733 rl78-*-elf*) 3071 rl78-*-elf*)
2734 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 3072 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2735 target_has_targetm_common=no 3073 target_has_targetm_common=no
2738 tmake_file="${tmake_file} rl78/t-rl78" 3076 tmake_file="${tmake_file} rl78/t-rl78"
2739 ;; 3077 ;;
2740 rx-*-elf*) 3078 rx-*-elf*)
2741 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}" 3079 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2742 tmake_file="${tmake_file} rx/t-rx" 3080 tmake_file="${tmake_file} rx/t-rx"
3081 extra_options="${extra_options} rx/elf.opt"
3082 ;;
3083 rx-*-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"
2743 ;; 3086 ;;
2744 s390-*-linux*) 3087 s390-*-linux*)
2745 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h" 3088 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2746 c_target_objs="${c_target_objs} s390-c.o" 3089 c_target_objs="${c_target_objs} s390-c.o"
2747 cxx_target_objs="${cxx_target_objs} s390-c.o" 3090 cxx_target_objs="${cxx_target_objs} s390-c.o"
3028 extra_options="${extra_options}" 3371 extra_options="${extra_options}"
3029 gas=yes gnu_ld=yes 3372 gas=yes gnu_ld=yes
3030 with_cpu=ultrasparc 3373 with_cpu=ultrasparc
3031 tmake_file="${tmake_file} sparc/t-sparc" 3374 tmake_file="${tmake_file} sparc/t-sparc"
3032 ;; 3375 ;;
3033 spu-*-elf*)
3034 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
3035 tmake_file="spu/t-spu-elf"
3036 native_system_header_dir=/include
3037 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
3038 extra_modes=spu/spu-modes.def
3039 c_target_objs="${c_target_objs} spu-c.o"
3040 cxx_target_objs="${cxx_target_objs} spu-c.o"
3041 ;;
3042 tic6x-*-elf) 3376 tic6x-*-elf)
3043 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h" 3377 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
3044 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h" 3378 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
3045 tmake_file="c6x/t-c6x c6x/t-c6x-elf" 3379 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
3046 use_collect2=no 3380 use_collect2=no
3135 ;; 3469 ;;
3136 xstormy16-*-elf) 3470 xstormy16-*-elf)
3137 # For historical reasons, the target files omit the 'x'. 3471 # For historical reasons, the target files omit the 'x'.
3138 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h" 3472 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
3139 tm_p_file=stormy16/stormy16-protos.h 3473 tm_p_file=stormy16/stormy16-protos.h
3474 tm_d_file="elfos.h stormy16/stormy16.h"
3140 md_file=stormy16/stormy16.md 3475 md_file=stormy16/stormy16.md
3141 out_file=stormy16/stormy16.c 3476 out_file=stormy16/stormy16.c
3142 extra_options=stormy16/stormy16.opt 3477 extra_options=stormy16/stormy16.opt
3143 tmake_file="stormy16/t-stormy16" 3478 tmake_file="stormy16/t-stormy16"
3144 ;; 3479 ;;
3228 if [ "$target_has_targetm_common" = "yes" ]; then 3563 if [ "$target_has_targetm_common" = "yes" ]; then
3229 common_out_file="$cpu_type/$cpu_type-common.c" 3564 common_out_file="$cpu_type/$cpu_type-common.c"
3230 else 3565 else
3231 common_out_file="default-common.c" 3566 common_out_file="default-common.c"
3232 fi 3567 fi
3568 fi
3569
3570 if [ "$target_has_targetdm" = "no" ]; then
3571 d_target_objs="$d_target_objs default-d.o"
3233 fi 3572 fi
3234 3573
3235 # Support for --with-cpu and related options (and a few unrelated options, 3574 # Support for --with-cpu and related options (and a few unrelated options,
3236 # too). 3575 # too).
3237 case ${with_cpu} in 3576 case ${with_cpu} in
3306 case ${target_noncanonical} in 3645 case ${target_noncanonical} in
3307 znver1-*) 3646 znver1-*)
3308 arch=znver1 3647 arch=znver1
3309 cpu=znver1 3648 cpu=znver1
3310 ;; 3649 ;;
3650 znver2-*)
3651 arch=znver2
3652 cpu=znver2
3653 ;;
3311 bdver4-*) 3654 bdver4-*)
3312 arch=bdver4 3655 arch=bdver4
3313 cpu=bdver4 3656 cpu=bdver4
3314 ;; 3657 ;;
3315 bdver3-*) 3658 bdver3-*)
3422 x86_64-*-*) 3765 x86_64-*-*)
3423 case ${target_noncanonical} in 3766 case ${target_noncanonical} in
3424 znver1-*) 3767 znver1-*)
3425 arch=znver1 3768 arch=znver1
3426 cpu=znver1 3769 cpu=znver1
3770 ;;
3771 znver2-*)
3772 arch=znver2
3773 cpu=znver2
3427 ;; 3774 ;;
3428 bdver4-*) 3775 bdver4-*)
3429 arch=bdver4 3776 arch=bdver4
3430 cpu=bdver4 3777 cpu=bdver4
3431 ;; 3778 ;;
3528 "" | "m68k") 3875 "" | "m68k")
3529 with_cpu=m${default_m68k_cpu} 3876 with_cpu=m${default_m68k_cpu}
3530 ;; 3877 ;;
3531 esac 3878 esac
3532 ;; 3879 ;;
3533 powerpc*-*-*spe*)
3534 # For SPE, start with 8540, then upgrade to 8548 if
3535 # --enable-e500-double was requested explicitly or if we were
3536 # configured for e500v2.
3537 with_cpu=8540
3538 if test x$enable_e500_double = xyes; then
3539 with_cpu=8548
3540 fi
3541 case ${target_noncanonical} in
3542 e500v2*)
3543 with_cpu=8548
3544 ;;
3545 esac
3546 ;;
3547 sparc*-*-*) 3880 sparc*-*-*)
3548 case ${target} in 3881 case ${target} in
3549 *-leon-*) 3882 *-leon-*)
3550 with_cpu=leon 3883 with_cpu=leon
3551 ;; 3884 ;;
3709 fi 4042 fi
3710 4043
3711 # Infer a default setting for --with-llsc. 4044 # Infer a default setting for --with-llsc.
3712 if test x$with_llsc = x; then 4045 if test x$with_llsc = x; then
3713 case ${target} in 4046 case ${target} in
4047 mips*-*-linux*)
4048 # The kernel emulates LL and SC where necessary.
4049 with_llsc=yes
4050 ;;
3714 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*) 4051 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3715 # The R5900 doesn't support LL(D) and SC(D). 4052 # The R5900 doesn't support LL(D) and SC(D).
3716 with_llsc=no 4053 with_llsc=no
3717 ;;
3718 mips*-*-linux*)
3719 # The kernel emulates LL and SC where necessary.
3720 with_llsc=yes
3721 ;; 4054 ;;
3722 esac 4055 esac
3723 fi 4056 fi
3724 4057
3725 # Validate and mark as valid any --with options supported 4058 # Validate and mark as valid any --with options supported
3770 ${srcdir}/config/aarch64/$def | \ 4103 ${srcdir}/config/aarch64/$def | \
3771 sed -e 's/^[^,]*,[ ]*//' | \ 4104 sed -e 's/^[^,]*,[ ]*//' | \
3772 sed -e 's/,.*$//'` 4105 sed -e 's/,.*$//'`
3773 fi 4106 fi
3774 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
3775 while [ x"$ext_val" != x ] 4123 while [ x"$ext_val" != x ]
3776 do 4124 do
3777 ext_val=`echo $ext_val | sed -e 's/\+//'` 4125 ext_val=`echo $ext_val | sed -e 's/\+//'`
3778 ext=`echo $ext_val | sed -e 's/\+.*//'` 4126 ext=`echo $ext_val | sed -e 's/\+.*//'`
3779 base_ext=`echo $ext | sed -e 's/^no//'` 4127 base_ext=`echo $ext | sed -e 's/^no//'`
4128 opt_line=`echo -e "$options_parsed" | \
4129 grep "^\"$base_ext\""`
3780 4130
3781 if [ x"$base_ext" = x ] \ 4131 if [ x"$base_ext" = x ] \
3782 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \ 4132 || [[ -n $opt_line ]]; then
3783 ${srcdir}/config/aarch64/aarch64-option-extensions.def \ 4133
3784 > /dev/null; then 4134 # These regexp extract the elements based on
3785 4135 # their group match index in the regexp.
3786 ext_canon=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \ 4136 ext_canon=`echo -e "$opt_line" | \
3787 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \ 4137 sed -e "s/$sed_patt/\2/"`
3788 sed -e 's/^[^,]*,[ ]*//' | \ 4138 ext_on=`echo -e "$opt_line" | \
3789 sed -e 's/,.*$//'` 4139 sed -e "s/$sed_patt/\3/"`
3790 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \ 4140 ext_off=`echo -e "$opt_line" | \
3791 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \ 4141 sed -e "s/$sed_patt/\4/"`
3792 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3793 sed -e 's/,.*$//' | \
3794 sed -e 's/).*$//'`
3795 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3796 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3797 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*[^,]*,[ ]*//' | \
3798 sed -e 's/,.*$//' | \
3799 sed -e 's/).*$//'`
3800
3801 4142
3802 if [ $ext = $base_ext ]; then 4143 if [ $ext = $base_ext ]; then
3803 # Adding extension 4144 # Adding extension
3804 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")" 4145 ext_mask="("$ext_mask") | ("$ext_on" | "$ext_canon")"
3805 else 4146 else
3895 ;; 4236 ;;
3896 esac 4237 esac
3897 4238
3898 # see if --with-fpu matches any of the supported FPUs 4239 # see if --with-fpu matches any of the supported FPUs
3899 if [ x"$with_fpu" != x ] ; then 4240 if [ x"$with_fpu" != x ] ; then
4241 val=$with_fpu
3900 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \ 4242 fpu=`awk -f ${srcdir}/config/arm/parsecpu.awk \
3901 -v cmd="chkfpu $with_fpu" \ 4243 -v cmd="chkfpu $val" \
3902 ${srcdir}/config/arm/arm-cpus.in` 4244 ${srcdir}/config/arm/arm-cpus.in`
3903 if [ "$fpu" = "error"] 4245 if [ "$fpu" = "error" ]
3904 then 4246 then
3905 echo "Unknown target in --with-$which=$val" 1>&2 4247 echo "Unknown target in --with-fpu=$val" 1>&2
3906 exit 1 4248 exit 1
3907 fi 4249 fi
3908 fi 4250 fi
3909 4251
3910 case "$with_abi" in 4252 case "$with_abi" in
3950 exit 1 4292 exit 1
3951 fi 4293 fi
3952 4294
3953 # Add extra multilibs 4295 # Add extra multilibs
3954 if test "x$with_multilib_list" != x; then 4296 if test "x$with_multilib_list" != x; then
4297 ml=
3955 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'` 4298 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3956 if test "x${arm_multilibs}" != xdefault ; then 4299 if test "x${arm_multilibs}" != xdefault ; then
3957 for arm_multilib in ${arm_multilibs}; do 4300 for arm_multilib in ${arm_multilibs}; do
3958 case ${arm_multilib} in 4301 case ${arm_multilib} in
3959 aprofile|rmprofile) 4302 aprofile|rmprofile)
3960 tmake_profile_file="arm/t-multilib" 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
3961 ;; 4313 ;;
3962 *) 4314 *)
3963 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2 4315 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3964 exit 1 4316 exit 1
3965 ;; 4317 ;;
3977 || test "x$with_float" != x \ 4329 || test "x$with_float" != x \
3978 || test "x$with_fpu" != x \ 4330 || test "x$with_fpu" != x \
3979 || test "x$with_mode" != x ; then 4331 || test "x$with_mode" != x ; then
3980 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2 4332 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=${with_multilib_list}" 1>&2
3981 exit 1 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
3982 fi 4337 fi
3983 # But pass the default value for float-abi 4338 # But pass the default value for float-abi
3984 # through to the multilib selector 4339 # through to the multilib selector
3985 with_float="soft" 4340 with_float="soft"
3986 tmake_file="${tmake_file} ${tmake_profile_file}" 4341 tmake_file="${tmake_file} ${tmake_profile_file}"
4039 exit 1 4394 exit 1
4040 fi 4395 fi
4041 with_cpu="mcpu=$with_cpu" 4396 with_cpu="mcpu=$with_cpu"
4042 ;; 4397 ;;
4043 esac 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
4044 ;; 4417 ;;
4045 4418
4046 hppa*-*-*) 4419 hppa*-*-*)
4047 supported_defaults="arch schedule" 4420 supported_defaults="arch schedule"
4048 4421
4119 esac 4492 esac
4120 done 4493 done
4121 ;; 4494 ;;
4122 4495
4123 riscv*-*-*) 4496 riscv*-*-*)
4124 supported_defaults="abi arch tune" 4497 supported_defaults="abi arch tune riscv_attribute"
4125 4498
4126 case "${target}" in 4499 case "${target}" in
4127 riscv-* | riscv32*) xlen=32 ;; 4500 riscv-* | riscv32*) xlen=32 ;;
4128 riscv64*) xlen=64 ;; 4501 riscv64*) xlen=64 ;;
4129 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;; 4502 *) echo "Unsupported RISC-V target ${target}" 1>&2; exit 1 ;;
4130 esac 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
4131 4528
4132 # Infer arch from --with-arch, --target, and --with-abi. 4529 # Infer arch from --with-arch, --target, and --with-abi.
4133 case "${with_arch}" in 4530 case "${with_arch}" in
4134 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*) 4531 rv32e* | rv32i* | rv32g* | rv64i* | rv64g*)
4135 # OK. 4532 # OK.
4433 esac 4830 esac
4434 4831
4435 # process --with-nds32-lib 4832 # process --with-nds32-lib
4436 case "${with_nds32_lib}" in 4833 case "${with_nds32_lib}" in
4437 "") 4834 "")
4438 # the default library is newlib 4835 case ${target} in
4439 with_nds32_lib=newlib 4836 *-*-*uclibc*)
4440 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1" 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
4441 ;; 4847 ;;
4442 newlib) 4848 newlib)
4443 # OK 4849 # OK
4444 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1" 4850 tm_defines="${tm_defines} TARGET_DEFAULT_CTOR_DTOR=1"
4445 ;; 4851 ;;
4451 v3f | v3s) 4857 v3f | v3s)
4452 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1" 4858 tm_defines="${tm_defines} TARGET_DEFAULT_NO_MATH_ERRNO=1"
4453 ;; 4859 ;;
4454 esac 4860 esac
4455 ;; 4861 ;;
4456 glibc) 4862 glibc | uclibc)
4457 # OK 4863 # OK
4458 tm_defines="${tm_defines} TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0"
4459 ;;
4460 uclibc)
4461 ;; 4864 ;;
4462 *) 4865 *)
4463 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2 4866 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib glibc uclibc" 1>&2
4464 exit 1 4867 exit 1
4465 ;; 4868 ;;
4562 echo "/* Use Advance Toolchain $at */" 4965 echo "/* Use Advance Toolchain $at */"
4563 echo 4966 echo
4564 echo "#undef LINK_OS_EXTRA_SPEC32" 4967 echo "#undef LINK_OS_EXTRA_SPEC32"
4565 echo "#define LINK_OS_EXTRA_SPEC32" \ 4968 echo "#define LINK_OS_EXTRA_SPEC32" \
4566 "\"%(link_os_new_dtags)" \ 4969 "\"%(link_os_new_dtags)" \
4567 "-rpath $prefix/lib -rpath $at/lib" \ 4970 "-rpath $prefix/lib -rpath $at/lib\""
4568 "-L $prefix/lib -L $at/lib\""
4569 echo 4971 echo
4570 echo "#undef LINK_OS_EXTRA_SPEC64" 4972 echo "#undef LINK_OS_EXTRA_SPEC64"
4571 echo "#define LINK_OS_EXTRA_SPEC64" \ 4973 echo "#define LINK_OS_EXTRA_SPEC64" \
4572 "\"%(link_os_new_dtags)" \ 4974 "\"%(link_os_new_dtags)" \
4573 "-rpath $prefix/lib64 -rpath $at/lib64" \ 4975 "-rpath $prefix/lib64 -rpath $at/lib64\""
4574 "-L $prefix/lib64 -L $at/lib64\""
4575 echo 4976 echo
4576 echo "#undef LINK_OS_NEW_DTAGS_SPEC" 4977 echo "#undef LINK_OS_NEW_DTAGS_SPEC"
4577 echo "#define LINK_OS_NEW_DTAGS_SPEC" \ 4978 echo "#define LINK_OS_NEW_DTAGS_SPEC" \
4578 "\"--enable-new-dtags\"" 4979 "\"--enable-new-dtags\""
4579 echo 4980 echo
4582 echo 4983 echo
4583 echo "#undef MD_EXEC_PREFIX" 4984 echo "#undef MD_EXEC_PREFIX"
4584 echo "#define MD_EXEC_PREFIX \"$at/bin/\"" 4985 echo "#define MD_EXEC_PREFIX \"$at/bin/\""
4585 echo 4986 echo
4586 echo "#undef MD_STARTFILE_PREFIX" 4987 echo "#undef MD_STARTFILE_PREFIX"
4587 echo "#define MD_STARTFILE_PREFIX \"$at/lib/\"") \ 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/\"") \
4588 > advance-toolchain.h 4992 > advance-toolchain.h
4589 else 4993 else
4590 echo "Unknown advance-toolchain $with_advance_toolchain" 4994 echo "Unknown advance-toolchain $with_advance_toolchain"
4591 exit 1 4995 exit 1
4592 fi 4996 fi
4605 supported_defaults="arch mode tune" 5009 supported_defaults="arch mode tune"
4606 5010
4607 for which in arch tune; do 5011 for which in arch tune; do
4608 eval "val=\$with_$which" 5012 eval "val=\$with_$which"
4609 case ${val} in 5013 case ${val} in
4610 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12) 5014 "" | native | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13 | z14 | z15 | arch5 | arch6 | arch7 | arch8 | arch9 | arch10 | arch11 | arch12 | arch13 )
4611 # OK 5015 # OK
4612 ;; 5016 ;;
4613 *) 5017 *)
4614 echo "Unknown cpu used in --with-$which=$val." 1>&2 5018 echo "Unknown cpu used in --with-$which=$val." 1>&2
4615 exit 1 5019 exit 1
4678 exit 1 5082 exit 1
4679 ;; 5083 ;;
4680 esac 5084 esac
4681 ;; 5085 ;;
4682 5086
4683 spu-*-*)
4684 supported_defaults="arch tune"
4685
4686 for which in arch tune; do
4687 eval "val=\$with_$which"
4688 case ${val} in
4689 "" | cell | celledp)
4690 # OK
4691 ;;
4692 *)
4693 echo "Unknown cpu used in --with-$which=$val." 1>&2
4694 exit 1
4695 ;;
4696 esac
4697 done
4698 ;;
4699
4700 tic6x-*-*) 5087 tic6x-*-*)
4701 supported_defaults="arch" 5088 supported_defaults="arch"
4702 5089
4703 case ${with_arch} in 5090 case ${with_arch} in
4704 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x) 5091 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4795 tmake_file="$tmake_file i386/t-gnu" 5182 tmake_file="$tmake_file i386/t-gnu"
4796 ;; 5183 ;;
4797 i[34567]86-*-msdosdjgpp*) 5184 i[34567]86-*-msdosdjgpp*)
4798 tmake_file="${tmake_file} i386/t-djgpp" 5185 tmake_file="${tmake_file} i386/t-djgpp"
4799 ;; 5186 ;;
4800 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*) 5187 i[34567]86-*-solaris2* | x86_64-*-solaris2*)
4801 ;; 5188 ;;
4802 i[34567]86-*-cygwin* | x86_64-*-cygwin*) 5189 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4803 ;; 5190 ;;
4804 i[34567]86-*-mingw* | x86_64-*-mingw*) 5191 i[34567]86-*-mingw* | x86_64-*-mingw*)
4805 ;; 5192 ;;
4806 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*) 5193 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4807 ;; 5194 ;;
4808 i[34567]86-*-freebsd* | x86_64-*-freebsd*) 5195 i[34567]86-*-freebsd*)
5196 ;;
5197 x86_64-*-freebsd*)
5198 tmake_file="${tmake_file} i386/t-freebsd64"
4809 ;; 5199 ;;
4810 ia64*-*-linux*) 5200 ia64*-*-linux*)
4811 ;; 5201 ;;
4812 5202
4813 mips*-*-*) 5203 mips*-*-*)
4856 target_cpu_default2="\\\"$with_cpu\\\"" 5246 target_cpu_default2="\\\"$with_cpu\\\""
4857 fi 5247 fi
4858 out_file="${cpu_type}/${cpu_type}.c" 5248 out_file="${cpu_type}/${cpu_type}.c"
4859 c_target_objs="${c_target_objs} ${cpu_type}-c.o" 5249 c_target_objs="${c_target_objs} ${cpu_type}-c.o"
4860 cxx_target_objs="${cxx_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"
4861 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}" 5252 tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}"
4862 ;; 5253 ;;
4863 5254
4864 sh[123456ble]*-*-* | sh-*-*) 5255 sh[123456ble]*-*-* | sh-*-*)
4865 c_target_objs="${c_target_objs} sh-c.o" 5256 c_target_objs="${c_target_objs} sh-c.o"