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