1# GCC target-specific configuration file.
2# Copyright (C) 1997-2015 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# Currently there are no obsolete targets.
240 nothing				\
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_neon.h arm_acle.h"
305	extra_objs="aarch64-builtins.o aarch-common.o"
306	target_gtfiles="\$(srcdir)/config/aarch64/aarch64-builtins.c"
307	target_has_targetm_common=yes
308	;;
309alpha*-*-*)
310	cpu_type=alpha
311	extra_options="${extra_options} g.opt"
312	;;
313am33_2.0-*-linux*)
314	cpu_type=mn10300
315	;;
316arc*-*-*)
317	cpu_type=arc
318	;;
319arm*-*-*)
320	cpu_type=arm
321	extra_objs="arm-builtins.o aarch-common.o"
322	extra_headers="mmintrin.h arm_neon.h arm_acle.h"
323	target_type_format_char='%'
324	c_target_objs="arm-c.o"
325	cxx_target_objs="arm-c.o"
326	extra_options="${extra_options} arm/arm-tables.opt"
327	target_gtfiles="\$(srcdir)/config/arm/arm-builtins.c"
328	;;
329avr-*-*)
330	cpu_type=avr
331	c_target_objs="avr-c.o"
332	cxx_target_objs="avr-c.o"
333	;;
334bfin*-*)
335	cpu_type=bfin
336	;;
337crisv32-*)
338	cpu_type=cris
339	;;
340frv*)	cpu_type=frv
341	extra_options="${extra_options} g.opt"
342	;;
343moxie*)	cpu_type=moxie
344	target_has_targetm_common=no
345	;;
346fido-*-*)
347	cpu_type=m68k
348	extra_headers=math-68881.h
349	extra_options="${extra_options} m68k/m68k-tables.opt"
350        ;;
351i[34567]86-*-*)
352	cpu_type=i386
353	c_target_objs="i386-c.o"
354	cxx_target_objs="i386-c.o"
355	extra_options="${extra_options} fused-madd.opt"
356	extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
357		       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
358		       nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
359		       immintrin.h x86intrin.h avxintrin.h xopintrin.h
360		       ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
361		       lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
362		       avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
363		       rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
364		       adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
365		       avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
366		       shaintrin.h clflushoptintrin.h xsavecintrin.h
367		       xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
368		       avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
369		       avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
370		       avx512vbmivlintrin.h clwbintrin.h pcommitintrin.h mwaitxintrin.h"
371	;;
372x86_64-*-*)
373	cpu_type=i386
374	c_target_objs="i386-c.o"
375	cxx_target_objs="i386-c.o"
376	extra_options="${extra_options} fused-madd.opt"
377	extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
378		       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
379		       nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
380		       immintrin.h x86intrin.h avxintrin.h xopintrin.h
381		       ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
382		       lzcntintrin.h bmiintrin.h tbmintrin.h bmi2intrin.h
383		       avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
384		       rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
385		       adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
386		       avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
387		       shaintrin.h clflushoptintrin.h xsavecintrin.h
388		       xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
389		       avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h
390		       avx512ifmaintrin.h avx512ifmavlintrin.h avx512vbmiintrin.h
391		       avx512vbmivlintrin.h clwbintrin.h pcommitintrin.h mwaitxintrin.h"
392	;;
393ia64-*-*)
394	extra_headers=ia64intrin.h
395	extra_options="${extra_options} g.opt fused-madd.opt"
396	;;
397hppa*-*-*)
398	cpu_type=pa
399	;;
400lm32*)
401	extra_options="${extra_options} g.opt"
402	;;
403m32r*-*-*)
404        cpu_type=m32r
405	extra_options="${extra_options} g.opt"
406        ;;
407m68k-*-*)
408	extra_headers=math-68881.h
409	extra_options="${extra_options} m68k/m68k-tables.opt"
410	;;
411microblaze*-*-*)
412        cpu_type=microblaze
413	extra_options="${extra_options} g.opt"
414        ;;
415mips*-*-*)
416	cpu_type=mips
417	extra_headers="loongson.h"
418	extra_options="${extra_options} g.opt mips/mips-tables.opt"
419	;;
420nds32*)
421	cpu_type=nds32
422	extra_headers="nds32_intrinsic.h"
423	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"
424	;;
425nios2-*-*)
426	cpu_type=nios2
427	extra_options="${extra_options} g.opt"
428	;;
429nvptx-*-*)
430	cpu_type=nvptx
431	;;
432powerpc*-*-*)
433	cpu_type=rs6000
434	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"
435	case x$with_cpu in
436	    xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500)
437		cpu_is_64bit=yes
438		;;
439	esac
440	extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
441	;;
442rs6000*-*-*)
443	extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
444	;;
445sparc*-*-*)
446	cpu_type=sparc
447	c_target_objs="sparc-c.o"
448	cxx_target_objs="sparc-c.o"
449	extra_headers="visintrin.h"
450	;;
451spu*-*-*)
452	cpu_type=spu
453	;;
454s390*-*-*)
455	cpu_type=s390
456	extra_options="${extra_options} fused-madd.opt"
457	extra_headers="s390intrin.h htmintrin.h htmxlintrin.h vecintrin.h"
458	;;
459# Note the 'l'; we need to be able to match e.g. "shle" or "shl".
460sh[123456789lbe]*-*-* | sh-*-*)
461	cpu_type=sh
462	extra_options="${extra_options} fused-madd.opt"
463	extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
464	;;
465v850*-*-*)
466	cpu_type=v850
467	;;
468tic6x-*-*)
469	cpu_type=c6x
470	extra_headers="c6x_intrinsics.h"
471	extra_options="${extra_options} c6x/c6x-tables.opt"
472	;;
473xtensa*-*-*)
474	extra_options="${extra_options} fused-madd.opt"
475	;;
476tilegx*-*-*)
477	cpu_type=tilegx
478	;;
479tilepro*-*-*)
480	cpu_type=tilepro
481	;;
482esac
483
484tm_file=${cpu_type}/${cpu_type}.h
485if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
486then
487	tm_p_file=${cpu_type}/${cpu_type}-protos.h
488fi
489extra_modes=
490if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
491then
492	extra_modes=${cpu_type}/${cpu_type}-modes.def
493fi
494if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
495then
496	extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
497fi
498
499case ${target} in
500aarch64*-*-*)
501	tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
502	case ${with_abi} in
503	"")
504		if test "x$with_multilib_list" = xilp32; then
505			tm_file="aarch64/biarchilp32.h ${tm_file}"
506		else
507			tm_file="aarch64/biarchlp64.h ${tm_file}"
508		fi
509		;;
510	ilp32)
511		tm_file="aarch64/biarchilp32.h ${tm_file}"
512		;;
513	lp64)
514		tm_file="aarch64/biarchlp64.h ${tm_file}"
515		;;
516	*)
517		echo "Unknown ABI used in --with-abi=$with_abi"
518		exit 1
519	esac
520	;;
521i[34567]86-*-*)
522	if test "x$with_abi" != x; then
523		echo "This target does not support --with-abi."
524		exit 1
525	fi
526	if test "x$enable_cld" = xyes; then
527		tm_defines="${tm_defines} USE_IX86_CLD=1"
528	fi
529	if test "x$enable_frame_pointer" = xyes; then
530		tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
531	fi
532	tm_file="vxworks-dummy.h ${tm_file}"
533	;;
534x86_64-*-*)
535	case ${with_abi} in
536	"")
537		if test "x$with_multilib_list" = xmx32; then
538			tm_file="i386/biarchx32.h ${tm_file}"
539		else
540			tm_file="i386/biarch64.h ${tm_file}"
541		fi
542		;;
543	64 | m64)
544		tm_file="i386/biarch64.h ${tm_file}"
545		;;
546	x32 | mx32)
547		tm_file="i386/biarchx32.h ${tm_file}"
548		;;
549	*)
550		echo "Unknown ABI used in --with-abi=$with_abi"
551		exit 1
552	esac
553	if test "x$enable_cld" = xyes; then
554		tm_defines="${tm_defines} USE_IX86_CLD=1"
555	fi
556	if test "x$enable_frame_pointer" = xyes; then
557		tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
558	fi
559	tm_file="vxworks-dummy.h ${tm_file}"
560	;;
561arm*-*-*)
562	tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
563	tm_file="vxworks-dummy.h ${tm_file}"
564	;;
565mips*-*-* | sh*-*-* | sparc*-*-*)
566	tm_file="vxworks-dummy.h ${tm_file}"
567	;;
568esac
569
570# On a.out targets, we need to use collect2.
571case ${target} in
572*-*-*aout*)
573	use_collect2=yes
574	;;
575esac
576
577# Common C libraries.
578tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
579
580# 32-bit x86 processors supported by --with-arch=.  Each processor
581# MUST be separated by exactly one space.
582x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
583athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
584i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
585pentium4 pentium4m pentiumpro prescott"
586
587# 64-bit x86 processors supported by --with-arch=.  Each processor
588# MUST be separated by exactly one space.
589x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
590bdver3 bdver4 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
591core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
592sandybridge ivybridge haswell broadwell bonnell silvermont knl x86-64 \
593native"
594
595# Additional x86 processors supported by --with-cpu=.  Each processor
596# MUST be separated by exactly one space.
597x86_cpus="generic intel"
598
599# Common parts for widely ported systems.
600case ${target} in
601*-*-darwin*)
602  tmake_file="t-darwin ${cpu_type}/t-darwin"
603  tm_file="${tm_file} darwin.h"
604  case ${target} in
605  *-*-darwin9*)
606    tm_file="${tm_file} darwin9.h"
607    ;;
608  *-*-darwin[12][0-9]*)
609    tm_file="${tm_file} darwin9.h darwin10.h"
610    ;;
611  esac
612  tm_file="${tm_file} ${cpu_type}/darwin.h"
613  tm_p_file="${tm_p_file} darwin-protos.h"
614  target_gtfiles="\$(srcdir)/config/darwin.c"
615  extra_options="${extra_options} darwin.opt"
616  c_target_objs="${c_target_objs} darwin-c.o"
617  cxx_target_objs="${cxx_target_objs} darwin-c.o"
618  fortran_target_objs="darwin-f.o"
619  target_has_targetcm=yes
620  extra_objs="darwin.o"
621  extra_gcc_objs="darwin-driver.o"
622  default_use_cxa_atexit=yes
623  use_gcc_stdint=wrap
624  case ${enable_threads} in
625    "" | yes | posix) thread_file='posix' ;;
626  esac
627  ;;
628*-*-dragonfly*)
629  gas=yes
630  gnu_ld=yes
631  tmake_file="t-slibgcc"
632  case ${enable_threads} in
633    "" | yes | posix)
634      thread_file='posix'
635      ;;
636    no | single)
637      # Let these non-posix thread selections fall through if requested
638      ;;
639    *)
640      echo 'Unknown thread configuration for DragonFly BSD'
641      exit 1
642      ;;
643  esac
644  extra_options="$extra_options rpath.opt dragonfly.opt"
645  default_use_cxa_atexit=yes
646  use_gcc_stdint=wrap
647  ;;
648*-*-freebsd*)
649  # This is the generic ELF configuration of FreeBSD.  Later
650  # machine-specific sections may refine and add to this
651  # configuration.
652  #
653  # Due to tm_file entry ordering issues that vary between cpu
654  # architectures, we only define fbsd_tm_file to allow the
655  # machine-specific section to dictate the final order of all
656  # entries of tm_file with the minor exception that components
657  # of the tm_file set here will always be of the form:
658  #
659  # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
660  #
661  # The machine-specific section should not tamper with this
662  # ordering but may order all other entries of tm_file as it
663  # pleases around the provided core setting.
664  gas=yes
665  gnu_ld=yes
666  fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
667  tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
668  tmake_file="t-slibgcc"
669  case ${enable_threads} in
670    no)
671      fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
672      ;;
673    "" | yes | posix)
674      thread_file='posix'
675      ;;
676    *)
677      echo 'Unknown thread configuration for FreeBSD'
678      exit 1
679      ;;
680  esac
681  fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
682  extra_options="$extra_options rpath.opt freebsd.opt"
683  case ${target} in
684    *-*-freebsd[345].*)
685      :;;
686    *)
687      default_use_cxa_atexit=yes;;
688  esac
689  use_gcc_stdint=wrap
690  ;;
691*-*-haiku*)
692  # This is the generic ELF configuration of Haiku.  Later
693  # machine-specific sections may refine and add to this
694  # configuration.
695  #
696  gas=yes
697  gnu_ld=yes
698  tmake_file="t-slibgcc"
699  case ${enable_threads} in
700    "" | yes | posix) thread_file='posix' ;;
701  esac
702  default_use_cxa_atexit=yes
703  ;;
704*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
705  extra_options="$extra_options gnu-user.opt"
706  gas=yes
707  gnu_ld=yes
708  case ${enable_threads} in
709    "" | yes | posix) thread_file='posix' ;;
710  esac
711  tmake_file="t-slibgcc"
712  case $target in
713    *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu)
714      :;;
715    *-*-gnu*)
716      native_system_header_dir=/include
717      ;;
718  esac
719  # Linux C libraries selection switch: glibc / uclibc / bionic.
720  # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
721  case $target in
722    *linux*)
723      tm_p_file="${tm_p_file} linux-protos.h"
724      tmake_file="${tmake_file} t-linux"
725      extra_objs="${extra_objs} linux.o"
726      extra_options="${extra_options} linux.opt"
727      ;;
728  esac
729  case $target in
730    *-*-*android*)
731      tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
732      ;;
733    *-*-*uclibc*)
734      tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
735      ;;
736    *)
737      tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
738      ;;
739  esac
740  # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
741  # is provided.
742  default_use_cxa_atexit=yes
743  use_gcc_tgmath=no
744  use_gcc_stdint=wrap
745  # Enable compilation for Android by default for *android* targets.
746  case $target in
747    *-*-*android*)
748      tm_defines="$tm_defines ANDROID_DEFAULT=1"
749      ;;
750    *)
751      tm_defines="$tm_defines ANDROID_DEFAULT=0"
752      ;;
753  esac
754  c_target_objs="${c_target_objs} glibc-c.o"
755  cxx_target_objs="${cxx_target_objs} glibc-c.o"
756  tmake_file="${tmake_file} t-glibc"
757  target_has_targetcm=yes
758  ;;
759*-*-netbsd*)
760  tmake_file="t-slibgcc"
761  gas=yes
762  gnu_ld=yes
763
764  # NetBSD 2.0 and later get POSIX threads enabled by default.
765  # Allow them to be explicitly enabled on any other version.
766  case ${enable_threads} in
767    "")
768      case ${target} in
769        *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
770          thread_file='posix'
771          tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
772          ;;
773      esac
774      ;;
775    yes | posix)
776      thread_file='posix'
777      tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
778      ;;
779  esac
780
781  # NetBSD 2.0 and later provide __cxa_atexit(), which we use by
782  # default (unless overridden by --disable-__cxa_atexit).
783  case ${target} in
784    *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
785      default_use_cxa_atexit=yes
786      ;;
787  esac
788  ;;
789*-*-openbsd*)
790  tmake_file="t-openbsd"
791  case ${enable_threads} in
792    yes)
793      thread_file='posix'
794      ;;
795  esac
796  case ${target} in
797    *-*-openbsd2.*|*-*-openbsd3.[012])
798      tm_defines="${tm_defines} HAS_LIBC_R=1" ;;
799  esac
800  case ${target} in
801    *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
802      default_use_cxa_atexit=yes
803      ;;
804  esac
805  ;;
806*-*-rtems*)
807  case ${enable_threads} in
808    "" | yes | rtems) thread_file='rtems' ;;
809    posix) thread_file='posix' ;;
810    no) ;;
811    *)
812      echo 'Unknown thread configuration for RTEMS'
813      exit 1
814      ;;
815  esac
816  tmake_file="${tmake_file} t-rtems"
817  extra_options="${extra_options} rtems.opt"
818  default_use_cxa_atexit=yes
819  use_gcc_stdint=wrap
820  ;;
821*-*-uclinux*)
822  extra_options="$extra_options gnu-user.opt"
823  use_gcc_stdint=wrap
824  tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
825  ;;
826*-*-rdos*)
827  use_gcc_stdint=wrap
828  ;;
829*-*-solaris2*)
830  # i?86-*-solaris2* needs to insert headers between cpu default and
831  # Solaris 2 specific ones.
832  sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
833  sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
834  sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
835  case ${target} in
836    *-*-solaris2.1[2-9]*)
837      # __cxa_atexit was introduced in Solaris 12.
838      default_use_cxa_atexit=yes
839      ;;
840  esac
841  use_gcc_stdint=wrap
842  if test x$gnu_ld = xyes; then
843    tm_file="usegld.h ${tm_file}"
844  fi
845  if test x$gas = xyes; then
846    tm_file="usegas.h ${tm_file}"
847  fi
848  tm_p_file="${tm_p_file} sol2-protos.h"
849  tmake_file="${tmake_file} t-sol2 t-slibgcc"
850  c_target_objs="${c_target_objs} sol2-c.o"
851  cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
852  extra_objs="sol2.o sol2-stubs.o"
853  extra_options="${extra_options} sol2.opt"
854  case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
855    "":yes:* | yes:yes:* )
856      thread_file=posix
857      ;;
858  esac
859  ;;
860*-*-*vms*)
861  extra_options="${extra_options} vms/vms.opt"
862  xmake_file=vms/x-vms
863  tmake_file="vms/t-vms t-slibgcc"
864  extra_objs="vms.o"
865  target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
866  tm_p_file="${tm_p_file} vms/vms-protos.h"
867  xm_file="vms/xm-vms.h"
868  c_target_objs="vms-c.o"
869  cxx_target_objs="vms-c.o"
870  fortran_target_objs="vms-f.o"
871  use_gcc_stdint=provide
872  tm_file="${tm_file} vms/vms-stdint.h"
873  if test x$gnu_ld != xyes; then
874    # Build wrappers for native case.
875    extra_programs="ld\$(exeext) ar\$(exeext)"
876    tmake_file="$tmake_file vms/t-vmsnative"
877  fi
878  ;;
879*-*-vxworks*)
880  tmake_file=t-vxworks
881  xm_defines=POSIX
882  extra_options="${extra_options} vxworks.opt"
883  extra_objs="$extra_objs vxworks.o"
884  case ${enable_threads} in
885    no) ;;
886    "" | yes | vxworks) thread_file='vxworks' ;;
887    *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
888  esac
889  ;;
890*-*-elf|arc*-*-elf*)
891  # Assume that newlib is being used and so __cxa_atexit is provided.
892  default_use_cxa_atexit=yes
893  use_gcc_stdint=wrap
894  ;;
895esac
896
897case ${target} in
898aarch64*-*-elf)
899	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
900	tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
901	tmake_file="${tmake_file} aarch64/t-aarch64"
902	use_gcc_stdint=wrap
903	case $target in
904	aarch64_be-*)
905		tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
906		;;
907	esac
908	aarch64_multilibs="${with_multilib_list}"
909	if test "$aarch64_multilibs" = "default"; then
910		aarch64_multilibs="lp64,ilp32"
911	fi
912	aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
913	for aarch64_multilib in ${aarch64_multilibs}; do
914		case ${aarch64_multilib} in
915		ilp32 | lp64 )
916			TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
917			;;
918		*)
919			echo "--with-multilib-list=${aarch64_multilib} not supported."
920			exit 1
921		esac
922	done
923	TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
924	;;
925aarch64*-*-linux*)
926	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
927	tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
928	tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
929	case $target in
930	aarch64_be-*)
931		tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
932		;;
933	esac
934	aarch64_multilibs="${with_multilib_list}"
935	if test "$aarch64_multilibs" = "default"; then
936		# TODO: turn on ILP32 multilib build after its support is mature.
937		# aarch64_multilibs="lp64,ilp32"
938		aarch64_multilibs="lp64"
939	fi
940	aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
941	for aarch64_multilib in ${aarch64_multilibs}; do
942		case ${aarch64_multilib} in
943		ilp32 | lp64 )
944			TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
945			;;
946		*)
947			echo "--with-multilib-list=${aarch64_multilib} not supported."
948			exit 1
949		esac
950	done
951	TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
952	;;
953alpha*-*-linux*)
954	tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
955	tmake_file="${tmake_file} alpha/t-linux"
956	extra_options="${extra_options} alpha/elf.opt"
957	;;
958alpha*-*-freebsd*)
959	tm_file="elfos.h ${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
960	extra_options="${extra_options} alpha/elf.opt"
961	;;
962alpha*-*-netbsd*)
963	tm_file="elfos.h ${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
964	extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
965		       alpha/elf.opt"
966	;;
967alpha*-*-openbsd*)
968	tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
969	tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
970	extra_options="${extra_options} openbsd.opt alpha/elf.opt"
971	# default x-alpha is only appropriate for dec-osf.
972	;;
973alpha*-dec-*vms*)
974	tm_file="${tm_file} vms/vms.h alpha/vms.h"
975	tmake_file="${tmake_file} alpha/t-vms"
976	;;
977arc*-*-elf*)
978	extra_headers="arc-simd.h"
979	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
980	tmake_file="arc/t-arc-newlib arc/t-arc"
981	case x"${with_cpu}" in
982	  xarc600|xarc601|xarc700)
983		target_cpu_default="TARGET_CPU_$with_cpu"
984		;;
985	esac
986	if test x${with_endian} = x; then
987		case ${target} in
988		arc*be-*-* | arc*eb-*-*)	with_endian=big ;;
989		*)				with_endian=little ;;
990		esac
991	fi
992	case ${with_endian} in
993	big|little)		;;
994	*)	echo "with_endian=${with_endian} not supported."; exit 1 ;;
995	esac
996	case ${with_endian} in
997	big*)	tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
998	esac
999	;;
1000arc*-*-linux-uclibc*)
1001	extra_headers="arc-simd.h"
1002	tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file}"
1003	tmake_file="${tmake_file} arc/t-arc-uClibc arc/t-arc"
1004	tm_defines="${tm_defines} TARGET_SDATA_DEFAULT=0"
1005	tm_defines="${tm_defines} TARGET_MMEDIUM_CALLS_DEFAULT=1"
1006	case x"${with_cpu}" in
1007	  xarc600|xarc601|xarc700)
1008		target_cpu_default="TARGET_CPU_$with_cpu"
1009		;;
1010	esac
1011	if test x${with_endian} = x; then
1012		case ${target} in
1013		arc*be-*-* | arc*eb-*-*)	with_endian=big ;;
1014		*)				with_endian=little ;;
1015		esac
1016	fi
1017	case ${with_endian} in
1018	big|little)		;;
1019	*)	echo "with_endian=${with_endian} not supported."; exit 1 ;;
1020	esac
1021	case ${with_endian} in
1022	big*)	tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
1023	esac
1024        ;;
1025arm-wrs-vxworks)
1026	tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1027	extra_options="${extra_options} arm/vxworks.opt"
1028	tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1029	;;
1030arm*-*-freebsd*)                # ARM FreeBSD EABI
1031	tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h"
1032	case $target in
1033	arm*b-*-freebsd*)
1034	    tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1035	    ;;
1036	esac
1037	tmake_file="${tmake_file} arm/t-arm arm/t-bpabi"
1038	tm_file="${tm_file} arm/bpabi.h arm/freebsd.h arm/aout.h arm/arm.h"
1039	case $target in
1040	armv6*-*-freebsd*)
1041	    tm_defines="${tm_defines} TARGET_FREEBSD_ARMv6=1"
1042	    ;;
1043	esac
1044	case $target in
1045	arm*hf-*-freebsd*)
1046	    tm_defines="${tm_defines} TARGET_FREEBSD_ARM_HARD_FLOAT=1"
1047	    ;;
1048	esac
1049	with_tls=${with_tls:-gnu}
1050	;;
1051arm*-*-netbsdelf*)
1052	tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1053	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1054	tmake_file="${tmake_file} arm/t-arm"
1055	;;
1056arm*-*-haiku*)
1057	tmake_file="${tmake_file} t-haiku arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-haiku"
1058	tm_file="dbxelf.h elfos.h haiku.h arm/elf.h arm/bpabi.h arm/haiku.h haiku-stdint.h"
1059	# The BPABI long long divmod functions return a 128-bit value in
1060	# registers r0-r3.  Correctly modeling that requires the use of
1061	# TImode.
1062	need_64bit_hwint=yes
1063	default_use_cxa_atexit=yes
1064	tm_file="${tm_file} arm/aout.h arm/arm.h"
1065	;;
1066arm*-*-linux-*)			# ARM GNU/Linux with ELF
1067	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"
1068	extra_options="${extra_options} linux-android.opt"
1069	case $target in
1070	arm*b-*-linux*)
1071	    tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1072	    ;;
1073	esac
1074	tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1075	tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1076	# Define multilib configuration for arm-linux-androideabi.
1077	case ${target} in
1078	*-androideabi)
1079	    tmake_file="$tmake_file arm/t-linux-androideabi"
1080	    ;;
1081	esac
1082	# The EABI requires the use of __cxa_atexit.
1083	default_use_cxa_atexit=yes
1084	with_tls=${with_tls:-gnu}
1085	;;
1086arm*-*-uclinux*eabi*)		# ARM ucLinux
1087	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1088	tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1089	tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1090	# The EABI requires the use of __cxa_atexit.
1091	default_use_cxa_atexit=yes
1092	;;
1093arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
1094	case ${target} in
1095	arm*eb-*-eabi*)
1096	  tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1097	esac
1098	default_use_cxa_atexit=yes
1099	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1100	tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1101	case ${target} in
1102	arm*-*-eabi*)
1103	  tm_file="$tm_file newlib-stdint.h"
1104	  tmake_file="${tmake_file} arm/t-bpabi"
1105	  use_gcc_stdint=wrap
1106	  ;;
1107	arm*-*-rtems*)
1108	  tm_file="${tm_file} rtems.h arm/rtems.h newlib-stdint.h"
1109	  tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems"
1110	  ;;
1111	arm*-*-symbianelf*)
1112	  tm_file="${tm_file} arm/symbian.h"
1113	  # We do not include t-bpabi for Symbian OS because the system
1114	  # provides its own implementation of the BPABI functions.
1115	  tmake_file="${tmake_file} arm/t-symbian"
1116	  ;;
1117	esac
1118	tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1119	;;
1120avr-*-rtems*)
1121	tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
1122	tm_defines="${tm_defines} WITH_RTEMS"
1123	tmake_file="${tmake_file} avr/t-avr avr/t-multilib avr/t-rtems"
1124	extra_gcc_objs="driver-avr.o avr-devices.o"
1125	extra_objs="avr-devices.o avr-log.o"
1126	;;
1127avr-*-*)
1128	tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h avr/specs.h dbxelf.h avr/avr-stdint.h"
1129	if test x${with_avrlibc} != xno; then
1130	    tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1131	    tm_defines="${tm_defines} WITH_AVRLIBC"
1132	fi
1133	tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1134	use_gcc_stdint=wrap
1135	extra_gcc_objs="driver-avr.o avr-devices.o"
1136	extra_objs="avr-devices.o avr-log.o"
1137	;;
1138bfin*-elf*)
1139	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1140	tmake_file=bfin/t-bfin-elf
1141	use_collect2=no
1142	;;
1143bfin*-uclinux*)
1144	tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1145	tmake_file=bfin/t-bfin-uclinux
1146	use_collect2=no
1147	;;
1148bfin*-linux-uclibc*)
1149	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"
1150	tmake_file="bfin/t-bfin-linux t-slibgcc t-linux"
1151	use_collect2=no
1152	;;
1153bfin*-rtems*)
1154	tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1155	tmake_file="${tmake_file} bfin/t-rtems"
1156	;;
1157bfin*-*)
1158	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1159	use_collect2=no
1160	use_gcc_stdint=wrap
1161	;;
1162cr16-*-elf)
1163        tm_file="elfos.h ${tm_file}"
1164        tmake_file="${tmake_file} cr16/t-cr16 "
1165        use_collect2=no
1166        ;;
1167crisv32-*-elf | crisv32-*-none)
1168	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1169	tmake_file="cris/t-cris"
1170	target_cpu_default=32
1171	gas=yes
1172	extra_options="${extra_options} cris/elf.opt"
1173	use_gcc_stdint=wrap
1174	;;
1175cris-*-elf | cris-*-none)
1176	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1177	tmake_file="cris/t-cris cris/t-elfmulti"
1178	gas=yes
1179	extra_options="${extra_options} cris/elf.opt"
1180	use_gcc_stdint=wrap
1181	;;
1182crisv32-*-linux* | cris-*-linux*)
1183	tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1184	tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1185	extra_options="${extra_options} cris/linux.opt"
1186	case $target in
1187	  cris-*-*)
1188		target_cpu_default=10
1189		;;
1190	  crisv32-*-*)
1191		target_cpu_default=32
1192		;;
1193	esac
1194	;;
1195epiphany-*-elf )
1196	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1197	tmake_file="epiphany/t-epiphany"
1198	extra_options="${extra_options} fused-madd.opt"
1199	extra_objs="$extra_objs mode-switch-use.o resolve-sw-modes.o"
1200	tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1201	extra_headers="epiphany_intrinsics.h"
1202	;;
1203fr30-*-elf)
1204	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1205	;;
1206frv-*-elf)
1207	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1208	tmake_file=frv/t-frv
1209	;;
1210frv-*-*linux*)
1211	tm_file="dbxelf.h elfos.h ${tm_file} \
1212	         gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1213	tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1214	;;
1215moxie-*-elf)
1216	gas=yes
1217	gnu_ld=yes
1218	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1219	tmake_file="${tmake_file} moxie/t-moxie"
1220	;;
1221moxie-*-uclinux*)
1222	gas=yes
1223	gnu_ld=yes
1224	tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1225	tmake_file="${tmake_file} moxie/t-moxie"
1226	;;
1227moxie-*-rtems*)
1228	tmake_file="${tmake_file} moxie/t-moxie"
1229	tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1230	;;
1231moxie-*-moxiebox*)
1232	gas=yes
1233	gnu_ld=yes
1234	tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1235	tmake_file="${tmake_file} moxie/t-moxiebox"
1236	;;
1237h8300-*-rtems*)
1238	tmake_file="${tmake_file} h8300/t-h8300 h8300/t-rtems"
1239	tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
1240	;;
1241h8300-*-elf*)
1242	tmake_file="h8300/t-h8300"
1243	tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1244	;;
1245hppa*64*-*-linux*)
1246	target_cpu_default="MASK_PA_11|MASK_PA_20"
1247	tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1248		 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1249		 pa/pa64-linux.h"
1250	gas=yes gnu_ld=yes
1251	;;
1252hppa*-*-linux*)
1253	target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1254	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1255		 pa/pa32-regs.h pa/pa32-linux.h"
1256	tmake_file="${tmake_file} pa/t-linux"
1257	;;
1258hppa*-*-openbsd*)
1259	target_cpu_default="MASK_PA_11"
1260	tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1261		 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1262	extra_options="${extra_options} openbsd.opt"
1263	gas=yes
1264	gnu_ld=yes
1265	;;
1266hppa[12]*-*-hpux10*)
1267	case ${target} in
1268	hppa1.1-*-* | hppa2*-*-*)
1269		target_cpu_default="MASK_PA_11"
1270		;;
1271	esac
1272	tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1273		 pa/pa-hpux.h pa/pa-hpux10.h"
1274	extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1275	case ${target} in
1276	*-*-hpux10.[1-9]*)
1277		tm_file="${tm_file} pa/pa-hpux1010.h"
1278		extra_options="${extra_options} pa/pa-hpux1010.opt"
1279		;;
1280	esac
1281	use_gcc_stdint=provide
1282	tm_file="${tm_file} hpux-stdint.h"
1283	tmake_file="t-slibgcc"
1284	case ${enable_threads} in
1285	  "")
1286	    if test x$have_pthread_h = xyes ; then
1287	      tmake_file="${tmake_file} pa/t-dce-thr"
1288	    fi
1289	    ;;
1290	  yes | dce)
1291	    tmake_file="${tmake_file} pa/t-dce-thr"
1292	    ;;
1293	esac
1294	use_collect2=yes
1295	gas=yes
1296	if test "x$with_dwarf2" != x; then
1297		echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1298		dwarf2=no
1299	fi
1300	;;
1301hppa*64*-*-hpux11*)
1302	target_cpu_default="MASK_PA_11|MASK_PA_20"
1303	if test x$gnu_ld = xyes
1304	then
1305		target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1306	fi
1307	tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1308		 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1309		 pa/pa-hpux11.h"
1310	case ${target} in
1311	*-*-hpux11.[12]*)
1312		tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1313		extra_options="${extra_options} pa/pa-hpux1111.opt"
1314		;;
1315	*-*-hpux11.[3-9]*)
1316		tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1317		extra_options="${extra_options} pa/pa-hpux1131.opt"
1318		;;
1319	*)
1320		tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1321		;;
1322	esac
1323	extra_options="${extra_options} pa/pa-hpux.opt \
1324		       pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1325	tmake_file="t-slibgcc"
1326	case x${enable_threads} in
1327	x | xyes | xposix )
1328		thread_file=posix
1329		;;
1330	esac
1331	gas=yes
1332	case ${target} in
1333	  *-*-hpux11.[01]*)
1334		use_gcc_stdint=provide
1335		tm_file="${tm_file} hpux-stdint.h"
1336		;;
1337	  *-*-hpux11.[23]*)
1338		use_gcc_stdint=wrap
1339		tm_file="${tm_file} hpux-stdint.h"
1340		;;
1341	esac
1342	;;
1343hppa[12]*-*-hpux11*)
1344	case ${target} in
1345	hppa1.1-*-* | hppa2*-*-*)
1346		target_cpu_default="MASK_PA_11"
1347		;;
1348	esac
1349	tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1350		 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1351	extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1352		       hpux11.opt"
1353	case ${target} in
1354	*-*-hpux11.[12]*)
1355		tm_file="${tm_file} pa/pa-hpux1111.h"
1356		extra_options="${extra_options} pa/pa-hpux1111.opt"
1357		;;
1358	*-*-hpux11.[3-9]*)
1359		tm_file="${tm_file} pa/pa-hpux1131.h"
1360		extra_options="${extra_options} pa/pa-hpux1131.opt"
1361		;;
1362	esac
1363	tmake_file="t-slibgcc"
1364	case x${enable_threads} in
1365	x | xyes | xposix )
1366		thread_file=posix
1367		;;
1368	esac
1369	use_collect2=yes
1370	gas=yes
1371	case ${target} in
1372	  *-*-hpux11.[01]*)
1373		use_gcc_stdint=provide
1374		tm_file="${tm_file} hpux-stdint.h"
1375		;;
1376	  *-*-hpux11.[23]*)
1377		use_gcc_stdint=wrap
1378		tm_file="${tm_file} hpux-stdint.h"
1379		;;
1380	esac
1381	if test "x$with_dwarf2" != x; then
1382		echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1383		dwarf2=no
1384	fi
1385	;;
1386i[34567]86-*-darwin*)
1387	need_64bit_isa=yes
1388	# Baseline choice for a machine that allows m64 support.
1389	with_cpu=${with_cpu:-core2}
1390	tmake_file="${tmake_file} t-slibgcc"
1391	;;
1392x86_64-*-darwin*)
1393	with_cpu=${with_cpu:-core2}
1394	tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1395	tm_file="${tm_file} ${cpu_type}/darwin64.h"
1396	;;
1397i[34567]86-*-elf*)
1398	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1399	;;
1400x86_64-*-elf*)
1401	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1402	;;
1403i[34567]86-*-rdos*)
1404    tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1405    ;;
1406x86_64-*-rdos*)
1407    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"
1408    tmake_file="i386/t-i386elf t-svr4"
1409    ;;
1410i[34567]86-*-dragonfly*)
1411	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1412	tmake_file="${tmake_file} i386/t-crtstuff"
1413	;;
1414x86_64-*-dragonfly*)
1415	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"
1416	tmake_file="${tmake_file} i386/t-crtstuff"
1417	;;
1418i[34567]86-*-freebsd*)
1419	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1420	;;
1421x86_64-*-freebsd*)
1422	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"
1423	;;
1424i[34567]86-*-haiku*)
1425	tmake_file="${tmake_file} t-haiku i386/t-crtpic"
1426	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h haiku.h i386/haiku.h haiku-stdint.h"
1427	;;
1428x86_64-*-haiku*)
1429	tmake_file="${tmake_file} t-haiku i386/t-haiku64"
1430	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h haiku.h i386/haiku64.h haiku-stdint.h"
1431	;;
1432i[34567]86-*-netbsdelf*)
1433	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
1434	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1435	;;
1436x86_64-*-netbsd*)
1437	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
1438	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1439	;;
1440i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
1441	tm_file="i386/i386.h i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h openbsd-oldgas.h openbsd.h i386/openbsd.h"
1442	extra_options="${extra_options} openbsd.opt"
1443	# needed to unconfuse gdb
1444	tmake_file="${tmake_file} t-openbsd i386/t-openbsd"
1445	# we need collect2 until our bug is fixed...
1446	use_collect2=yes
1447	;;
1448i[34567]86-*-openbsd*)
1449	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1450	tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1451	extra_options="${extra_options} openbsd.opt"
1452	gas=yes
1453	gnu_ld=yes
1454	;;
1455x86_64-*-openbsd*)
1456	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1457	tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1458	extra_options="${extra_options} openbsd.opt"
1459	gas=yes
1460	gnu_ld=yes
1461	;;
1462i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1463			# Intel 80386's running GNU/*
1464			# with ELF format using glibc 2
1465	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1466	case ${target} in
1467	i[34567]86-*-linux*)
1468		tm_file="${tm_file} linux.h linux-android.h"
1469		extra_options="${extra_options} linux-android.opt"
1470		# Assume modern glibc if not targeting Android nor uclibc.
1471		case ${target} in
1472		*-*-*android*|*-*-*uclibc*)
1473		  ;;
1474		*)
1475		  default_gnu_indirect_function=yes
1476		  ;;
1477		esac
1478		if test x$enable_targets = xall; then
1479			tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1480			tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1481			tmake_file="${tmake_file} i386/t-linux64"
1482			x86_multilibs="${with_multilib_list}"
1483			if test "$x86_multilibs" = "default"; then
1484				x86_multilibs="m64,m32"
1485			fi
1486			x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1487			for x86_multilib in ${x86_multilibs}; do
1488				case ${x86_multilib} in
1489				m32 | m64 | mx32)
1490					TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1491					;;
1492				*)
1493					echo "--with-multilib-list=${x86_with_multilib} not supported."
1494					exit 1
1495				esac
1496			done
1497			TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1498			need_64bit_isa=yes
1499			if test x$with_cpu = x; then
1500				if test x$with_cpu_64 = x; then
1501					with_cpu_64=generic
1502				fi
1503			else
1504				case " $x86_cpus $x86_archs $x86_64_archs " in
1505				*" $with_cpu "*)
1506					;;
1507				*)
1508					echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1509					echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1510					exit 1
1511					;;
1512				esac
1513			fi
1514		else
1515			tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1516		fi
1517		;;
1518	i[34567]86-*-knetbsd*-gnu)
1519		tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h"
1520		;;
1521	i[34567]86-*-kfreebsd*-gnu)
1522		tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1523		;;
1524	i[34567]86-*-kopensolaris*-gnu)
1525		tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1526		;;
1527	i[34567]86-*-gnu*)
1528		tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1529		;;
1530	esac
1531	;;
1532x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
1533	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1534		 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1535	case ${target} in
1536	x86_64-*-linux*)
1537		tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1538		extra_options="${extra_options} linux-android.opt"
1539		# Assume modern glibc if not targeting Android nor uclibc.
1540		case ${target} in
1541		*-*-*android*|*-*-*uclibc*)
1542		  ;;
1543		*)
1544		  default_gnu_indirect_function=yes
1545		  ;;
1546		esac
1547	  	;;
1548	x86_64-*-kfreebsd*-gnu)
1549		tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1550		;;
1551	x86_64-*-knetbsd*-gnu)
1552		tm_file="${tm_file} knetbsd-gnu.h"
1553		;;
1554	esac
1555	tmake_file="${tmake_file} i386/t-linux64"
1556	x86_multilibs="${with_multilib_list}"
1557	if test "$x86_multilibs" = "default"; then
1558		case ${with_abi} in
1559		x32 | mx32)
1560			x86_multilibs="mx32"
1561			;;
1562		*)
1563			x86_multilibs="m64,m32"
1564			;;
1565		esac
1566	fi
1567	x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1568	for x86_multilib in ${x86_multilibs}; do
1569		case ${x86_multilib} in
1570		m32 | m64 | mx32)
1571			TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1572			;;
1573		*)
1574			echo "--with-multilib-list=${x86_with_multilib} not supported."
1575			exit 1
1576		esac
1577	done
1578	TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1579	;;
1580i[34567]86-pc-msdosdjgpp*)
1581	xm_file=i386/xm-djgpp.h
1582	tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1583	native_system_header_dir=/dev/env/DJDIR/include
1584	extra_options="${extra_options} i386/djgpp.opt"
1585	gnu_ld=yes
1586	gas=yes
1587	use_gcc_stdint=wrap
1588	;;
1589i[34567]86-*-lynxos*)
1590	xm_defines=POSIX
1591	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1592	tmake_file="${tmake_file} t-lynx"
1593	extra_options="${extra_options} lynx.opt"
1594	thread_file=lynx
1595	gnu_ld=yes
1596	gas=yes
1597	;;
1598i[34567]86-*-nto-qnx*)
1599	tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1600	extra_options="${extra_options} i386/nto.opt"
1601	gnu_ld=yes
1602	gas=yes
1603	;;
1604i[34567]86-*-rtems*)
1605	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"
1606	tmake_file="${tmake_file} i386/t-rtems"
1607	;;
1608i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1609	# Set default arch_32 to pentium4, tune_32 to generic like the other
1610	# i386 targets, although config.guess defaults to i386-pc-solaris2*.
1611	with_arch_32=${with_arch_32:-pentium4}
1612	with_tune_32=${with_tune_32:-generic}
1613	tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1614	tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1615	tmake_file="$tmake_file i386/t-sol2"
1616	need_64bit_isa=yes
1617	if test x$with_cpu = x; then
1618		if test x$with_cpu_64 = x; then
1619			with_cpu_64=generic
1620		fi
1621	else
1622		case " $x86_cpus $x86_archs $x86_64_archs " in
1623		*" $with_cpu "*)
1624			;;
1625		*)
1626			echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1627			echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1628			exit 1
1629			;;
1630		esac
1631	fi
1632	;;
1633i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
1634	tm_file="${tm_file} i386/unix.h i386/att.h elfos.h vx-common.h"
1635	case ${target} in
1636	  *-vxworksae*)
1637	    tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1638	    tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1639	    ;;
1640	  *)
1641	    tm_file="${tm_file} vxworks.h i386/vxworks.h"
1642	    tmake_file="${tmake_file} i386/t-vxworks"
1643	    ;;
1644	esac
1645	;;
1646i[34567]86-*-cygwin*)
1647	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"
1648	xm_file=i386/xm-cygwin.h
1649	tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1650	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1651	extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1652	extra_objs="winnt.o winnt-stubs.o"
1653	c_target_objs="${c_target_objs} msformat-c.o"
1654	cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1655	if test x$enable_threads = xyes; then
1656		thread_file='posix'
1657	fi
1658	default_use_cxa_atexit=yes
1659	use_gcc_stdint=wrap
1660	;;
1661x86_64-*-cygwin*)
1662	need_64bit_isa=yes
1663	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"
1664	xm_file=i386/xm-cygwin.h
1665	tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1666	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1667	extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1668	extra_objs="winnt.o winnt-stubs.o"
1669	c_target_objs="${c_target_objs} msformat-c.o"
1670	cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1671	if test x$enable_threads = xyes; then
1672		thread_file='posix'
1673	fi
1674	default_use_cxa_atexit=yes
1675	use_gcc_stdint=wrap
1676	tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1677	;;
1678i[34567]86-*-mingw* | x86_64-*-mingw*)
1679	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1680	xm_file=i386/xm-mingw32.h
1681	c_target_objs="${c_target_objs} winnt-c.o"
1682	cxx_target_objs="${cxx_target_objs} winnt-c.o"
1683	target_has_targetcm="yes"
1684	case ${target} in
1685		x86_64-*-* | *-w64-*)
1686			need_64bit_isa=yes
1687			;;
1688		*)
1689			;;
1690	esac
1691	if test x$enable_threads = xposix ; then
1692		tm_file="${tm_file} i386/mingw-pthread.h"
1693	fi
1694	tm_file="${tm_file} i386/mingw32.h"
1695	# This makes the logic if mingw's or the w64 feature set has to be used
1696	case ${target} in
1697		*-w64-*)
1698			user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1699			user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1700			tm_file="${tm_file} i386/mingw-w64.h"
1701			if test x$enable_targets = xall; then
1702				tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1703				if test x$with_cpu = x; then
1704					if test x$with_cpu_64 = x; then
1705						with_cpu_64=generic
1706					fi
1707				else
1708					case " $x86_cpus $x86_archs $x86_64_archs " in
1709					*" $with_cpu "*)
1710						;;
1711					*)
1712						echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1713						echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1714						exit 1
1715						;;
1716					esac
1717				fi
1718			fi
1719			;;
1720		*)
1721			;;
1722	esac
1723	tm_file="${tm_file} i386/mingw-stdint.h"
1724	tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1725        case ${target} in
1726               x86_64-w64-*)
1727               		tmake_file="${tmake_file} i386/t-mingw-w64"
1728			;;
1729	       i[34567]86-w64-*)
1730			tmake_file="${tmake_file} i386/t-mingw-w32"
1731			;;
1732	esac
1733        native_system_header_dir=/mingw/include
1734	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1735	extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1736	case ${target} in
1737		*-w64-*)
1738			extra_options="${extra_options} i386/mingw-w64.opt"
1739			;;
1740		*)
1741			;;
1742	esac
1743	extra_objs="winnt.o winnt-stubs.o"
1744	c_target_objs="${c_target_objs} msformat-c.o"
1745	cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1746	gas=yes
1747	gnu_ld=yes
1748	default_use_cxa_atexit=yes
1749	use_gcc_stdint=wrap
1750	case ${enable_threads} in
1751	  "" | yes | win32)
1752	    thread_file='win32'
1753	    ;;
1754	  posix)
1755	    thread_file='posix'
1756	    ;;
1757	esac
1758	case ${target} in
1759 		*mingw32crt*)
1760 			tm_file="${tm_file} i386/crtdll.h"
1761 			;;
1762		*mingw32msv* | *mingw*)
1763			;;
1764	esac
1765	;;
1766i[34567]86-*-interix[3-9]*)
1767	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h"
1768	tmake_file="${tmake_file} i386/t-interix"
1769	extra_options="${extra_options} rpath.opt i386/interix.opt"
1770	extra_objs="winnt.o winnt-stubs.o"
1771	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1772	if test x$enable_threads = xyes ; then
1773		thread_file='posix'
1774	fi
1775	if test x$stabs = xyes ; then
1776		tm_file="${tm_file} dbxcoff.h"
1777	fi
1778	;;
1779ia64*-*-elf*)
1780	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1781	tmake_file="ia64/t-ia64"
1782	target_cpu_default="0"
1783	if test x$gas = xyes
1784	then
1785		target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1786	fi
1787	if test x$gnu_ld = xyes
1788	then
1789		target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1790	fi
1791	;;
1792ia64*-*-freebsd*)
1793	tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1794	target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1795	tmake_file="${tmake_file} ia64/t-ia64"
1796	;;
1797ia64*-*-linux*)
1798	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1799	tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1800	target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1801	;;
1802ia64*-*-hpux*)
1803	tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1804	tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1805	target_cpu_default="MASK_GNU_AS"
1806	case x$enable_threads in
1807	x | xyes | xposix )
1808		thread_file=posix
1809		;;
1810	esac
1811	use_collect2=no
1812	c_target_objs="ia64-c.o"
1813	cxx_target_objs="ia64-c.o"
1814	extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1815	use_gcc_stdint=wrap
1816	tm_file="${tm_file} hpux-stdint.h"
1817	case ${target} in
1818	*-*-hpux11.3*)
1819		tm_file="${tm_file} ia64/hpux-unix2003.h"
1820		;;
1821	esac
1822	;;
1823ia64-hp-*vms*)
1824	tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1825	tmake_file="${tmake_file} ia64/t-ia64"
1826	target_cpu_default="0"
1827	if test x$gas = xyes
1828	then
1829		target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1830	fi
1831	extra_options="${extra_options} ia64/vms.opt"
1832	;;
1833iq2000*-*-elf*)
1834        tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1835        out_file=iq2000/iq2000.c
1836        md_file=iq2000/iq2000.md
1837        ;;
1838lm32-*-elf*)
1839        tm_file="dbxelf.h elfos.h ${tm_file}"
1840	tmake_file="${tmake_file} lm32/t-lm32"
1841        ;;
1842lm32-*-rtems*)
1843	tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1844	tmake_file="${tmake_file} lm32/t-lm32"
1845	tmake_file="${tmake_file} lm32/t-rtems"
1846         ;;
1847lm32-*-uclinux*)
1848        tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1849	tmake_file="${tmake_file} lm32/t-lm32"
1850        ;;
1851m32r-*-elf*)
1852	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1853 	;;
1854m32rle-*-elf*)
1855	tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1856	;;
1857m32r-*-rtems*)
1858	tm_file="dbxelf.h elfos.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h"
1859	tmake_file="${tmake_file} m32r/t-m32r"
1860 	;;
1861m32r-*-linux*)
1862	tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1863	tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1864	gnu_ld=yes
1865	if test x$enable_threads = xyes; then
1866		thread_file='posix'
1867	fi
1868 	;;
1869m32rle-*-linux*)
1870	tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1871	tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1872	gnu_ld=yes
1873	if test x$enable_threads = xyes; then
1874		thread_file='posix'
1875	fi
1876	;;
1877m68k-*-elf* | fido-*-elf*)
1878	case ${target} in
1879	fido-*-elf*)
1880		# Check that $with_cpu makes sense.
1881		case $with_cpu in
1882		"" | "fidoa")
1883			;;
1884		*)
1885			echo "Cannot accept --with-cpu=$with_cpu"
1886			exit 1
1887			;;
1888		esac
1889		with_cpu=fidoa
1890		;;
1891	*)
1892		default_m68k_cpu=68020
1893		default_cf_cpu=5206
1894		;;
1895	esac
1896	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"
1897	tm_defines="${tm_defines} MOTOROLA=1"
1898	tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1899	# Add multilibs for targets other than fido.
1900	case ${target} in
1901	fido-*-elf*)
1902		;;
1903	*)
1904		tmake_file="$tmake_file m68k/t-mlibs"
1905		;;
1906	esac
1907	;;
1908m68k*-*-netbsdelf*)
1909	default_m68k_cpu=68020
1910	default_cf_cpu=5475
1911	tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
1912	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1913	tm_defines="${tm_defines} MOTOROLA=1"
1914	;;
1915m68k*-*-openbsd*)
1916	default_m68k_cpu=68020
1917	default_cf_cpu=5475
1918	# needed to unconfuse gdb
1919	tm_defines="${tm_defines} OBSD_OLD_GAS"
1920	tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1921	extra_options="${extra_options} openbsd.opt"
1922	tmake_file="t-openbsd m68k/t-openbsd"
1923	# we need collect2 until our bug is fixed...
1924	use_collect2=yes
1925	;;
1926m68k-*-uclinux*)		# Motorola m68k/ColdFire running uClinux
1927				# with uClibc, using the new GNU/Linux-style
1928				# ABI.
1929	default_m68k_cpu=68020
1930	default_cf_cpu=5206
1931	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"
1932	extra_options="${extra_options} m68k/uclinux.opt"
1933 	tm_defines="${tm_defines} MOTOROLA=1"
1934	tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1935	;;
1936m68k-*-linux*)			# Motorola m68k's running GNU/Linux
1937				# with ELF format using glibc 2
1938				# aka the GNU/Linux C library 6.
1939	default_m68k_cpu=68020
1940	default_cf_cpu=5475
1941	with_arch=${with_arch:-m68k}
1942	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
1943	extra_options="${extra_options} m68k/ieee.opt"
1944	tm_defines="${tm_defines} MOTOROLA=1"
1945	tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
1946	;;
1947m68k-*-rtems*)
1948	default_m68k_cpu=68020
1949	default_cf_cpu=5206
1950	tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
1951	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"
1952	tm_defines="${tm_defines} MOTOROLA=1"
1953	;;
1954m68k-*-haiku*)
1955	default_m68k_cpu=68020
1956	default_cf_cpu=5206
1957	tmake_file="${tmake_file} m68k/t-m68kbare m68k/t-crtstuff t-haiku" #??
1958	tm_file="${tm_file} dbxelf.h elfos.h haiku.h m68k/haiku.h"
1959	tm_defines="${tm_defines} MOTOROLA=1"
1960	;;
1961mcore-*-elf)
1962	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1963	tmake_file=mcore/t-mcore
1964	inhibit_libc=true
1965	;;
1966mep-*-*)
1967	tm_file="dbxelf.h elfos.h ${tm_file}"
1968	tmake_file=mep/t-mep
1969	c_target_objs="mep-pragma.o"
1970	cxx_target_objs="mep-pragma.o"
1971	if test -d "${srcdir}/../newlib/libc/include" &&
1972	   test "x$with_headers" = x; then
1973		with_headers=yes
1974	fi
1975	use_gcc_stdint=wrap
1976	;;
1977microblaze*-linux*)
1978	case $target in
1979		microblazeel-*)
1980			tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1981			;;
1982		microblaze-*)
1983			tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1984			;;
1985	esac
1986	tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
1987	tm_file="${tm_file} glibc-stdint.h"
1988	c_target_objs="${c_target_objs} microblaze-c.o"
1989	cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1990	tmake_file="${tmake_file} microblaze/t-microblaze"
1991	tmake_file="${tmake_file} microblaze/t-microblaze-linux"
1992	;;
1993microblaze*-*-rtems*)
1994	case $target in
1995		microblazeel-*)
1996			tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1997			;;
1998		microblaze-*)
1999			tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2000			;;
2001	esac
2002	tm_file="${tm_file} dbxelf.h"
2003	tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
2004	c_target_objs="${c_target_objs} microblaze-c.o"
2005	cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2006	tmake_file="${tmake_file} microblaze/t-microblaze"
2007	tmake_file="${tmake_file} microblaze/t-rtems"
2008        ;;
2009microblaze*-*-elf)
2010	case $target in
2011		microblazeel-*)
2012			tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
2013			;;
2014		microblaze-*)
2015			tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
2016			;;
2017	esac
2018	tm_file="${tm_file} dbxelf.h newlib-stdint.h"
2019	c_target_objs="${c_target_objs} microblaze-c.o"
2020	cxx_target_objs="${cxx_target_objs} microblaze-c.o"
2021	tmake_file="${tmake_file} microblaze/t-microblaze"
2022        ;;
2023mips*-*-netbsd*)			# NetBSD/mips, either endian.
2024	target_cpu_default="MASK_ABICALLS"
2025	tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
2026	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2027	;;
2028mips*-img-linux*)
2029	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"
2030	extra_options="${extra_options} linux-android.opt"
2031	tmake_file="${tmake_file} mips/t-img-linux"
2032	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2033	gnu_ld=yes
2034	gas=yes
2035	;;
2036mips*-mti-linux*)
2037	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"
2038	extra_options="${extra_options} linux-android.opt"
2039	tmake_file="${tmake_file} mips/t-mti-linux"
2040	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2041	gnu_ld=yes
2042	gas=yes
2043	;;
2044mipsel-*-haiku*)
2045	target_cpu_default="MASK_ABICALLS"
2046	tm_file="elfos.h ${tm_file} haiku.h mips/haiku.h"
2047	tmake_file="${tmake_file} mips/t-elf t-haiku"
2048	;;
2049mips*-*-linux*)				# Linux MIPS, either endian.
2050	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"
2051	extra_options="${extra_options} linux-android.opt"
2052	case ${target} in
2053		mipsisa32r6*)
2054			default_mips_arch=mips32r6
2055			;;
2056		mipsisa32r2*)
2057			default_mips_arch=mips32r2
2058			;;
2059		mipsisa32*)
2060			default_mips_arch=mips32
2061			;;
2062		mips64el-st-linux-gnu)
2063			default_mips_abi=n32
2064			tm_file="${tm_file} mips/st.h"
2065			tmake_file="${tmake_file} mips/t-st"
2066			enable_mips_multilibs="yes"
2067			;;
2068		mips64octeon*-*-linux*)
2069			default_mips_abi=n32
2070			tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
2071			target_cpu_default=MASK_SOFT_FLOAT_ABI
2072			enable_mips_multilibs="yes"
2073			;;
2074		mipsisa64r6*-*-linux*)
2075			default_mips_abi=n32
2076			default_mips_arch=mips64r6
2077			enable_mips_multilibs="yes"
2078			;;
2079		mipsisa64r2*-*-linux*)
2080			default_mips_abi=n32
2081			default_mips_arch=mips64r2
2082			enable_mips_multilibs="yes"
2083			;;
2084		mips64*-*-linux* | mipsisa64*-*-linux*)
2085			default_mips_abi=n32
2086			enable_mips_multilibs="yes"
2087			;;
2088	esac
2089	if test x$enable_targets = xall; then
2090		enable_mips_multilibs="yes"
2091	fi
2092	if test x$enable_mips_multilibs = xyes; then
2093		tmake_file="${tmake_file} mips/t-linux64"
2094	fi
2095	;;
2096mips*-mti-elf*)
2097	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2098	tmake_file="mips/t-mti-elf"
2099	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2100	;;
2101mips*-img-elf*)
2102	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
2103	tmake_file="mips/t-img-elf"
2104	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2105	;;
2106mips*-sde-elf*)
2107	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
2108	tmake_file="mips/t-sde"
2109	extra_options="${extra_options} mips/sde.opt"
2110	case "${with_newlib}" in
2111	  yes)
2112	    # newlib / libgloss.
2113	    ;;
2114	  *)
2115	    # MIPS toolkit libraries.
2116	    tm_file="$tm_file mips/sdemtk.h"
2117	    tmake_file="$tmake_file mips/t-sdemtk"
2118	    case ${enable_threads} in
2119	      "" | yes | mipssde)
2120		thread_file='mipssde'
2121		;;
2122	    esac
2123	    ;;
2124	esac
2125	case ${target} in
2126	  mipsisa32r6*)
2127	    tm_defines="MIPS_ISA_DEFAULT=37 MIPS_ABI_DEFAULT=ABI_32"
2128	    ;;
2129	  mipsisa32r2*)
2130	    tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2131	    ;;
2132	  mipsisa32*)
2133	    tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2134	    ;;
2135	  mipsisa64r6*)
2136	    tm_defines="MIPS_ISA_DEFAULT=69 MIPS_ABI_DEFAULT=ABI_N32"
2137	    ;;
2138	  mipsisa64r2*)
2139	    tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2140	    ;;
2141	  mipsisa64*)
2142	    tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2143	    ;;
2144	esac
2145	;;
2146mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2147mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2148mipsisa32r6-*-elf* | mipsisa32r6el-*-elf* | \
2149mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2150mipsisa64r2-*-elf* | mipsisa64r2el-*-elf* | \
2151mipsisa64r6-*-elf* | mipsisa64r6el-*-elf*)
2152	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2153	tmake_file="mips/t-isa3264"
2154	case ${target} in
2155	  mipsisa32r6*)
2156	    tm_defines="${tm_defines} MIPS_ISA_DEFAULT=37"
2157	    ;;
2158	  mipsisa32r2*)
2159	    tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2160	    ;;
2161	  mipsisa32*)
2162	    tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2163	    ;;
2164	  mipsisa64r6*)
2165	    tm_defines="${tm_defines} MIPS_ISA_DEFAULT=69"
2166	    ;;
2167	  mipsisa64r2*)
2168	    tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2169	    ;;
2170	  mipsisa64*)
2171	    tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2172	    ;;
2173	esac
2174	case ${target} in
2175	  mipsisa32*-*-elfoabi*)
2176	    tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2177	    tm_file="${tm_file} mips/elfoabi.h"
2178	    ;;
2179	  mipsisa64*-*-elfoabi*)
2180	    tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2181	    tm_file="${tm_file} mips/elfoabi.h"
2182	    ;;
2183	  *-*-elf*)
2184	    tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2185	    ;;
2186	esac
2187	;;
2188mipsisa64sr71k-*-elf*)
2189        tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2190        tmake_file=mips/t-sr71k
2191	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2192        ;;
2193mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2194	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2195	tmake_file="mips/t-elf mips/t-sb1"
2196	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2197	;;
2198mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2199	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2200	tmake_file="mips/t-elf"
2201	;;
2202mips64r5900-*-elf* | mips64r5900el-*-elf*)
2203	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2204	tmake_file="mips/t-elf"
2205	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2206	;;
2207mips64-*-elf* | mips64el-*-elf*)
2208	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2209	tmake_file="mips/t-elf"
2210	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2211	;;
2212mips64vr-*-elf* | mips64vrel-*-elf*)
2213        tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2214        tmake_file=mips/t-vr
2215	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2216        ;;
2217mips64orion-*-elf* | mips64orionel-*-elf*)
2218	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2219	tmake_file="mips/t-elf"
2220	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2221	;;
2222mips*-*-rtems*)
2223	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2224	tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2225	;;
2226mips-wrs-vxworks)
2227	tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2228	tmake_file="${tmake_file} mips/t-vxworks"
2229	;;
2230mipstx39-*-elf* | mipstx39el-*-elf*)
2231	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2232	tmake_file="mips/t-r3900"
2233	;;
2234mmix-knuth-mmixware)
2235	tm_file="${tm_file} newlib-stdint.h"
2236	use_gcc_stdint=wrap
2237	;;
2238mn10300-*-*)
2239	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2240	if test x$stabs = xyes
2241	then
2242		tm_file="${tm_file} dbx.h"
2243	fi
2244	use_collect2=no
2245	use_gcc_stdint=wrap
2246	;;
2247msp430*-*-*)
2248	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2249	c_target_objs="msp430-c.o"
2250	cxx_target_objs="msp430-c.o"
2251	tmake_file="${tmake_file} msp430/t-msp430"
2252	;;
2253nds32le-*-*)
2254	target_cpu_default="0"
2255	tm_defines="${tm_defines}"
2256	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2257	tmake_file="nds32/t-nds32 nds32/t-mlibs"
2258	;;
2259nds32be-*-*)
2260	target_cpu_default="0|MASK_BIG_ENDIAN"
2261	tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2262	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2263	tmake_file="nds32/t-nds32 nds32/t-mlibs"
2264	;;
2265nios2-*-*)
2266	tm_file="elfos.h ${tm_file}"
2267        tmake_file="${tmake_file} nios2/t-nios2"
2268        case ${target} in
2269        nios2-*-linux*)
2270                tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2271                ;;
2272	nios2-*-elf*)
2273		tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2274		extra_options="${extra_options} nios2/elf.opt"
2275		;;
2276	nios2-*-rtems*)
2277		tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2278		tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2279		;;
2280        esac
2281	;;
2282nvptx-*)
2283	tm_file="${tm_file} newlib-stdint.h"
2284	tmake_file="nvptx/t-nvptx"
2285	if test x$enable_as_accelerator = xyes; then
2286		extra_programs="${extra_programs} mkoffload\$(exeext)"
2287		tm_file="${tm_file} nvptx/offload.h"
2288	fi
2289	;;
2290pdp11-*-*)
2291	tm_file="${tm_file} newlib-stdint.h"
2292	use_gcc_stdint=wrap
2293	;;
2294# port not yet contributed
2295#powerpc-*-openbsd*)
2296#	tmake_file="${tmake_file} rs6000/t-fprules"
2297#	extra_headers=
2298#	;;
2299powerpc-*-darwin*)
2300	extra_options="${extra_options} rs6000/darwin.opt"
2301	case ${target} in
2302	  *-darwin1[0-9]* | *-darwin[8-9]*)
2303	    tmake_file="${tmake_file} rs6000/t-darwin8"
2304	    tm_file="${tm_file} rs6000/darwin8.h"
2305	    ;;
2306	  *-darwin7*)
2307	    tm_file="${tm_file} rs6000/darwin7.h"
2308	    ;;
2309	  *-darwin[0-6]*)
2310	    ;;
2311	esac
2312	tmake_file="${tmake_file} t-slibgcc"
2313	extra_headers=altivec.h
2314	;;
2315powerpc64-*-darwin*)
2316	extra_options="${extra_options} ${cpu_type}/darwin.opt"
2317	tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2318	tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2319	extra_headers=altivec.h
2320	;;
2321powerpc*-*-freebsd*)
2322	tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2323	extra_options="${extra_options} rs6000/sysv4.opt"
2324	tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2325	case ${target} in
2326	     powerpc64*)
2327	    	tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2328		tmake_file="${tmake_file} rs6000/t-freebsd64"
2329		extra_options="${extra_options} rs6000/linux64.opt"
2330		;;
2331	     *)
2332	        tm_file="${tm_file} rs6000/freebsd.h"
2333		;;
2334	esac
2335	;;
2336powerpc-*-netbsd*)
2337	tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2338	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2339	tmake_file="${tmake_file} rs6000/t-netbsd"
2340	extra_options="${extra_options} rs6000/sysv4.opt"
2341	;;
2342powerpc-*-eabispe*)
2343	tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabispe.h"
2344	extra_options="${extra_options} rs6000/sysv4.opt"
2345	tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2346	use_gcc_stdint=wrap
2347	;;
2348powerpc-*-eabisimaltivec*)
2349	tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h rs6000/eabialtivec.h"
2350	extra_options="${extra_options} rs6000/sysv4.opt"
2351	tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2352	use_gcc_stdint=wrap
2353	;;
2354powerpc-*-eabisim*)
2355	tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h"
2356	extra_options="${extra_options} rs6000/sysv4.opt"
2357	tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2358	use_gcc_stdint=wrap
2359	;;
2360powerpc-*-elf*)
2361	tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2362	extra_options="${extra_options} rs6000/sysv4.opt"
2363	tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2364	;;
2365powerpc-*-eabialtivec*)
2366	tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabialtivec.h"
2367	extra_options="${extra_options} rs6000/sysv4.opt"
2368	tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2369	use_gcc_stdint=wrap
2370	;;
2371powerpc-xilinx-eabi*)
2372	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"
2373	extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2374	tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2375	use_gcc_stdint=wrap
2376	;;
2377powerpc-*-eabi*)
2378	tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h"
2379	extra_options="${extra_options} rs6000/sysv4.opt"
2380	tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2381	use_gcc_stdint=wrap
2382	;;
2383powerpc-*-haiku*)
2384	tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppcos rs6000/t-ppccomm t-haiku"
2385	tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h haiku.h rs6000/haiku.h"
2386	extra_options="${extra_options} rs6000/sysv4.opt"
2387	;;
2388powerpc-*-rtems*)
2389	tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h"
2390	extra_options="${extra_options} rs6000/sysv4.opt"
2391	tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2392	;;
2393powerpc*-*-linux*)
2394	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2395	extra_options="${extra_options} rs6000/sysv4.opt"
2396	tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm"
2397	extra_objs="$extra_objs rs6000-linux.o"
2398	case ${target} in
2399	    powerpc*le-*-*)
2400		tm_file="${tm_file} rs6000/sysv4le.h" ;;
2401	esac
2402	case ${target}:${with_cpu} in
2403	    powerpc64*: | powerpc64*:native) cpu_is_64bit=yes ;;
2404	esac
2405	maybe_biarch=${cpu_is_64bit}
2406	case ${enable_targets} in
2407	    *powerpc64*) maybe_biarch=yes ;;
2408	    all) maybe_biarch=yes ;;
2409	esac
2410	case ${target} in
2411	    powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2412		echo "*** Configuration ${target} not supported" 1>&2
2413		exit 1
2414		;;
2415	    powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2416		maybe_biarch=
2417		;;
2418	esac
2419	case ${target}:${enable_targets}:${maybe_biarch} in
2420	    powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:yes \
2421	    | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \
2422	    | powerpcle-*:*powerpc64le*:yes)
2423		if test x$cpu_is_64bit = xyes; then
2424		    tm_file="${tm_file} rs6000/default64.h"
2425		fi
2426		tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2427		tmake_file="$tmake_file rs6000/t-linux64"
2428		case ${target} in
2429		    powerpc*le-*-*)
2430			tmake_file="$tmake_file rs6000/t-linux64le"
2431			case ${enable_targets} in
2432			    all | *powerpc64-* | *powerpc-*)
2433				tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2434			esac ;;
2435		    *)
2436			case ${enable_targets} in
2437			    all | *powerpc64le-* | *powerpcle-*)
2438				tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2439			esac ;;
2440		esac
2441		extra_options="${extra_options} rs6000/linux64.opt"
2442		;;
2443	    powerpc64*)
2444		tm_file="${tm_file} rs6000/default64.h rs6000/linux64.h glibc-stdint.h"
2445		extra_options="${extra_options} rs6000/linux64.opt"
2446		tmake_file="${tmake_file} rs6000/t-linux"
2447		;;
2448	    *)
2449		tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2450		tmake_file="${tmake_file} rs6000/t-ppcos rs6000/t-linux"
2451		;;
2452	esac
2453	case ${target} in
2454	    powerpc*-*-linux*ppc476*)
2455		tm_file="${tm_file} rs6000/476.h"
2456		extra_options="${extra_options} rs6000/476.opt" ;;
2457	    powerpc*-*-linux*altivec*)
2458		tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2459	    powerpc*-*-linux*spe*)
2460		tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2461	    powerpc*-*-linux*paired*)
2462		tm_file="${tm_file} rs6000/750cl.h" ;;
2463	esac
2464	if test x${enable_secureplt} = xyes; then
2465		tm_file="rs6000/secureplt.h ${tm_file}"
2466	fi
2467	;;
2468powerpc-wrs-vxworks|powerpc-wrs-vxworksae|powerpc-wrs-vxworksmils)
2469	tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2470	tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2471	extra_options="${extra_options} rs6000/sysv4.opt"
2472	extra_headers=ppc-asm.h
2473	case ${target} in
2474          *-vxworksmils*)
2475            tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksmils.h"
2476            tmake_file="${tmake_file} rs6000/t-vxworksmils"
2477            ;;
2478	  *-vxworksae*)
2479	    tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2480	    tmake_file="${tmake_file} rs6000/t-vxworksae"
2481	    ;;
2482	  *-vxworks*)
2483	    tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2484	    ;;
2485	esac
2486	;;
2487powerpc-*-lynxos*)
2488	xm_defines=POSIX
2489	tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2490	tmake_file="t-lynx rs6000/t-lynx"
2491	extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2492	thread_file=lynx
2493	gnu_ld=yes
2494	gas=yes
2495	;;
2496powerpcle-*-elf*)
2497	tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2498	tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2499	extra_options="${extra_options} rs6000/sysv4.opt"
2500	;;
2501powerpcle-*-eabisim*)
2502	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/e500.h rs6000/eabisim.h"
2503	tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2504	extra_options="${extra_options} rs6000/sysv4.opt"
2505	use_gcc_stdint=wrap
2506	;;
2507powerpcle-*-eabi*)
2508	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/e500.h"
2509	tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2510	extra_options="${extra_options} rs6000/sysv4.opt"
2511	use_gcc_stdint=wrap
2512	;;
2513rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2514	tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2515	tmake_file="rs6000/t-aix43 t-slibgcc"
2516	extra_options="${extra_options} rs6000/aix64.opt"
2517	use_collect2=yes
2518	thread_file='aix'
2519	use_gcc_stdint=provide
2520	extra_headers=
2521	;;
2522rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2523	tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2524	extra_options="${extra_options} rs6000/aix64.opt"
2525	tmake_file="rs6000/t-aix43 t-slibgcc"
2526	use_collect2=yes
2527	thread_file='aix'
2528	use_gcc_stdint=wrap
2529	extra_headers=
2530	;;
2531rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2532	tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2533	tmake_file="rs6000/t-aix52 t-slibgcc"
2534	extra_options="${extra_options} rs6000/aix64.opt"
2535	use_collect2=yes
2536	thread_file='aix'
2537	use_gcc_stdint=wrap
2538	extra_headers=
2539	;;
2540rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2541	tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2542	tmake_file="rs6000/t-aix52 t-slibgcc"
2543	extra_options="${extra_options} rs6000/aix64.opt"
2544	use_collect2=yes
2545	thread_file='aix'
2546	use_gcc_stdint=wrap
2547	extra_headers=altivec.h
2548	;;
2549rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2550	tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2551	tmake_file="rs6000/t-aix52 t-slibgcc"
2552	extra_options="${extra_options} rs6000/aix64.opt"
2553	use_collect2=yes
2554	thread_file='aix'
2555	use_gcc_stdint=wrap
2556	extra_headers=altivec.h
2557	;;
2558rl78-*-elf*)
2559	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2560	target_has_targetm_common=no
2561	c_target_objs="rl78-c.o"
2562	cxx_target_objs="rl78-c.o"
2563	tmake_file="${tmake_file} rl78/t-rl78"
2564	;;
2565rx-*-elf*)
2566	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2567	tmake_file="${tmake_file} rx/t-rx"
2568	;;
2569s390-*-linux*)
2570	default_gnu_indirect_function=yes
2571	tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2572	c_target_objs="${c_target_objs} s390-c.o"
2573	cxx_target_objs="${cxx_target_objs} s390-c.o"
2574	if test x$enable_targets = xall; then
2575		tmake_file="${tmake_file} s390/t-linux64"
2576	fi
2577	tmake_file="${tmake_file} s390/t-s390"
2578	;;
2579s390x-*-linux*)
2580	default_gnu_indirect_function=yes
2581	tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2582	tm_p_file="linux-protos.h s390/s390-protos.h"
2583	c_target_objs="${c_target_objs} s390-c.o"
2584	cxx_target_objs="${cxx_target_objs} s390-c.o"
2585	md_file=s390/s390.md
2586	extra_modes=s390/s390-modes.def
2587	out_file=s390/s390.c
2588	tmake_file="${tmake_file} s390/t-linux64 s390/t-s390"
2589	;;
2590s390x-ibm-tpf*)
2591	tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2592	tm_p_file=s390/s390-protos.h
2593	c_target_objs="${c_target_objs} s390-c.o"
2594	cxx_target_objs="${cxx_target_objs} s390-c.o"
2595	md_file=s390/s390.md
2596	extra_modes=s390/s390-modes.def
2597	out_file=s390/s390.c
2598	thread_file='tpf'
2599	extra_options="${extra_options} s390/tpf.opt"
2600	tmake_file="${tmake_file} s390/t-s390"
2601	;;
2602sh-*-elf* | sh[12346l]*-*-elf* | \
2603  sh-*-linux* | sh[2346lbe]*-*-linux* | \
2604  sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2605  sh64-*-netbsd* | sh64l*-*-netbsd*)
2606	tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2607	if test x${with_endian} = x; then
2608		case ${target} in
2609		sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2610		shbe-*-* | sheb-*-*)		   with_endian=big,little ;;
2611		sh[1234]l* | sh[34]*-*-linux*)	   with_endian=little ;;
2612		shl* | sh64l* | sh*-*-linux* | \
2613		  sh5l* | sh-superh-elf)	   with_endian=little,big ;;
2614		sh[1234]*-*-*)			   with_endian=big ;;
2615		*)				   with_endian=big,little ;;
2616		esac
2617	fi
2618	# TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2619	#  First word : the default endian.
2620	#  Second word: the secondary endian (optional).
2621	case ${with_endian} in
2622	big)		TM_ENDIAN_CONFIG=mb ;;
2623	little)		TM_ENDIAN_CONFIG=ml ;;
2624	big,little)	TM_ENDIAN_CONFIG="mb ml" ;;
2625	little,big)	TM_ENDIAN_CONFIG="ml mb" ;;
2626	*)	echo "with_endian=${with_endian} not supported."; exit 1 ;;
2627	esac
2628	case ${with_endian} in
2629	little*)	tm_file="sh/little.h ${tm_file}" ;;
2630	esac
2631	tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2632	case ${target} in
2633	sh*-*-linux*)	tmake_file="${tmake_file} sh/t-linux"
2634			tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2635	sh*-*-netbsd*)
2636			tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h"
2637			extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2638
2639			;;
2640	sh*-superh-elf)	if test x$with_libgloss != xno; then
2641                                with_libgloss=yes
2642                                tm_file="${tm_file} sh/newlib.h"
2643                        fi
2644			tm_file="${tm_file} sh/embed-elf.h"
2645			tm_file="${tm_file} sh/superh.h"
2646			extra_options="${extra_options} sh/superh.opt" ;;
2647	*)		if test x$with_newlib = xyes \
2648			   && test x$with_libgloss = xyes; then
2649				tm_file="${tm_file} sh/newlib.h"
2650			fi
2651			tm_file="${tm_file} sh/embed-elf.h" ;;
2652	esac
2653	case ${target} in
2654	sh5*-*-netbsd*)
2655		# SHmedia, 32-bit ABI
2656		tmake_file="${tmake_file} sh/t-sh64"
2657		;;
2658	sh64*-netbsd*)
2659		# SHmedia, 64-bit ABI
2660		tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5-64"
2661		;;
2662	*-*-netbsd)
2663		;;
2664	sh64*-*-linux*)
2665		tmake_file="${tmake_file} sh/t-sh64"
2666		tm_file="${tm_file} sh/sh64.h"
2667		extra_headers="shmedia.h ushmedia.h sshmedia.h"
2668		;;
2669	sh64*)
2670		tmake_file="${tmake_file} sh/t-sh64"
2671		tm_file="${tm_file} sh/sh64.h"
2672		if test x$with_newlib = xyes; then
2673			tm_file="${tm_file} newlib-stdint.h"
2674		fi
2675		extra_headers="shmedia.h ushmedia.h sshmedia.h"
2676		;;
2677	*-*-elf*)
2678		tm_file="${tm_file} newlib-stdint.h"
2679		;;
2680	esac
2681	# sed el/eb endian suffixes away to avoid confusion with sh[23]e
2682	case `echo ${target} | sed 's/e[lb]-/-/'` in
2683	sh64*-*-netbsd*)	sh_cpu_target=sh5-64media ;;
2684	sh64* | sh5*-*-netbsd*)	sh_cpu_target=sh5-32media ;;
2685	sh4a_single_only*)	sh_cpu_target=sh4a-single-only ;;
2686	sh4a_single*)		sh_cpu_target=sh4a-single ;;
2687	sh4a_nofpu*)		sh_cpu_target=sh4a-nofpu ;;
2688	sh4al)			sh_cpu_target=sh4al ;;
2689	sh4a*)			sh_cpu_target=sh4a ;;
2690	sh4_single_only*)	sh_cpu_target=sh4-single-only ;;
2691	sh4_single*)		sh_cpu_target=sh4-single ;;
2692	sh4_nofpu*)		sh_cpu_target=sh4-nofpu ;;
2693	sh4* | sh-superh-*)	sh_cpu_target=sh4 ;;
2694	sh3e*)			sh_cpu_target=sh3e ;;
2695	sh*-*-netbsd* | sh3*)	sh_cpu_target=sh3 ;;
2696	sh2a_single_only*)	sh_cpu_target=sh2a-single-only ;;
2697	sh2a_single*)		sh_cpu_target=sh2a-single ;;
2698	sh2a_nofpu*)		sh_cpu_target=sh2a-nofpu ;;
2699	sh2a*)			sh_cpu_target=sh2a ;;
2700	sh2e*)			sh_cpu_target=sh2e ;;
2701	sh2*)			sh_cpu_target=sh2 ;;
2702	*)			sh_cpu_target=sh1 ;;
2703	esac
2704	# did the user say --without-fp ?
2705	if test x$with_fp = xno; then
2706		case ${sh_cpu_target} in
2707		sh5-*media)	sh_cpu_target=${sh_cpu_target}-nofpu ;;
2708		sh4al | sh1)	;;
2709		sh4a* )		sh_cpu_target=sh4a-nofpu ;;
2710		sh4*)		sh_cpu_target=sh4-nofpu ;;
2711		sh3*)		sh_cpu_target=sh3 ;;
2712		sh2a*)		sh_cpu_target=sh2a-nofpu ;;
2713		sh2*)		sh_cpu_target=sh2 ;;
2714		*)	echo --without-fp not available for $target: ignored
2715		esac
2716		tm_defines="$tm_defines STRICT_NOFPU=1"
2717	fi
2718	sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2719	case $sh_cpu_default in
2720	sh5-64media-nofpu | sh5-64media | \
2721	  sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2722	  sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2723	  sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2724	  sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2725	  sh3e | sh3 | sh2e | sh2 | sh1) ;;
2726	"")	sh_cpu_default=${sh_cpu_target} ;;
2727	*)	echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2728	esac
2729	sh_multilibs=${with_multilib_list}
2730	if test "$sh_multilibs" = "default" ; then
2731		case ${target} in
2732		sh64-superh-linux* | \
2733		sh[1234]*)	sh_multilibs=${sh_cpu_target} ;;
2734		sh64* | sh5*)	sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2735		sh-superh-*)	sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2736		sh*-*-linux*)	sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2737		sh*-*-netbsd*)	sh_multilibs=m3,m3e,m4 ;;
2738		*) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2739		esac
2740		if test x$with_fp = xno; then
2741			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`"
2742		fi
2743	fi
2744	target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2745	tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2746	tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2747	sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2748	for sh_multilib in ${sh_multilibs}; do
2749		case ${sh_multilib} in
2750		m1 | m2 | m2e | m3 | m3e | \
2751		m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2752		m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2753		m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2754		m5-64media | m5-64media-nofpu | \
2755		m5-32media | m5-32media-nofpu | \
2756		m5-compact | m5-compact-nofpu)
2757			# TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2758			# It is passed to MULTIILIB_OPTIONS verbatim.
2759			TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2760			tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2761			;;
2762		\!*)	# TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2763			# It is passed the MULTILIB_EXCEPTIONS verbatim.
2764			TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2765		*)
2766			echo "with_multilib_list=${sh_multilib} not supported."
2767			exit 1
2768			;;
2769		esac
2770	done
2771	TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2772	if test x${enable_incomplete_targets} = xyes ; then
2773		tm_defines="$tm_defines SUPPORT_SH1=1 SUPPORT_SH2E=1 SUPPORT_SH4=1 SUPPORT_SH4_SINGLE=1 SUPPORT_SH2A=1 SUPPORT_SH2A_SINGLE=1 SUPPORT_SH5_32MEDIA=1 SUPPORT_SH5_32MEDIA_NOFPU=1 SUPPORT_SH5_64MEDIA=1 SUPPORT_SH5_64MEDIA_NOFPU=1"
2774	fi
2775	tm_file="$tm_file ./sysroot-suffix.h"
2776	tmake_file="$tmake_file t-sysroot-suffix"
2777	;;
2778sh-*-rtems*)
2779	tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2780	tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2781	;;
2782sh-wrs-vxworks)
2783	tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2784	tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2785	;;
2786sparc-*-elf*)
2787	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2788	case ${target} in
2789	    *-leon-*)
2790		tmake_file="sparc/t-sparc sparc/t-leon"
2791		;;
2792	    *-leon[3-9]*)
2793		tmake_file="sparc/t-sparc sparc/t-leon3"
2794		;;
2795	    *)
2796		tmake_file="sparc/t-sparc sparc/t-elf"
2797		;;
2798	esac
2799	;;
2800sparc-*-rtems*)
2801	tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2802	tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems"
2803	;;
2804sparc-*-linux*)
2805	tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2806	extra_options="${extra_options} sparc/long-double-switch.opt"
2807	case ${target} in
2808	    *-leon-*)
2809		tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2810		;;
2811	    *-leon[3-9]*)
2812		tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2813		;;
2814	    *)
2815		tmake_file="${tmake_file} sparc/t-sparc"
2816		;;
2817	esac
2818	if test x$enable_targets = xall; then
2819		tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2820		tmake_file="${tmake_file} sparc/t-linux64"
2821	else
2822		tm_file="${tm_file} sparc/linux.h"
2823		tmake_file="${tmake_file} sparc/t-linux"
2824	fi
2825	;;
2826sparc-*-netbsdelf*)
2827	tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2828	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2829	extra_options="${extra_options} sparc/long-double-switch.opt"
2830	tmake_file="${tmake_file} sparc/t-sparc"
2831	;;
2832sparc*-*-solaris2*)
2833	tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2834	case ${target} in
2835	    sparc64-*-* | sparcv9-*-*)
2836		tm_file="sparc/default-64.h ${tm_file}"
2837		;;
2838	    *)
2839		test x$with_cpu != x || with_cpu=v9
2840		;;
2841	esac
2842	tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2843	;;
2844sparc-wrs-vxworks)
2845	tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2846	tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2847	;;
2848sparc64-*-elf*)
2849	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2850	extra_options="${extra_options}"
2851	tmake_file="${tmake_file} sparc/t-sparc"
2852	;;
2853sparc64-*-rtems*)
2854	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2855	extra_options="${extra_options}"
2856	tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2857	;;
2858sparc64-*-linux*)
2859	tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default-64.h sparc/linux64.h sparc/tso.h"
2860	extra_options="${extra_options} sparc/long-double-switch.opt"
2861	tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2862	;;
2863sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2864	tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2865	extra_options="${extra_options} sparc/long-double-switch.opt"
2866	case "x$with_cpu" in
2867		xultrasparc) ;;
2868		x) with_cpu=ultrasparc ;;
2869		*) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2870	esac
2871	tmake_file="${tmake_file} sparc/t-sparc"
2872	;;
2873sparc64-*-netbsd*)
2874	tm_file="sparc/biarch64.h ${tm_file}"
2875	tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2876	extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2877	extra_options="${extra_options} sparc/long-double-switch.opt"
2878	tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2879	;;
2880sparc64-*-openbsd*)
2881	tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2882	tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2883	extra_options="${extra_options} openbsd.opt"
2884	extra_options="${extra_options}"
2885	gas=yes gnu_ld=yes
2886	with_cpu=ultrasparc
2887	tmake_file="${tmake_file} sparc/t-sparc"
2888	;;
2889spu-*-elf*)
2890	tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2891	tmake_file="spu/t-spu-elf"
2892        native_system_header_dir=/include
2893	extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2894	extra_modes=spu/spu-modes.def
2895	c_target_objs="${c_target_objs} spu-c.o"
2896	cxx_target_objs="${cxx_target_objs} spu-c.o"
2897	;;
2898tic6x-*-elf)
2899	tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2900	tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2901	tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2902	use_collect2=no
2903	;;
2904tic6x-*-uclinux)
2905	tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2906	tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2907	tm_file="${tm_file} ./sysroot-suffix.h"
2908	tmake_file="t-sysroot-suffix t-slibgcc"
2909	tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2910	use_collect2=no
2911	;;
2912tilegx*-*-linux*)
2913	tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2914        tmake_file="${tmake_file} tilegx/t-tilegx"
2915	extra_objs="${extra_objs} mul-tables.o"
2916	c_target_objs="${c_target_objs} tilegx-c.o"
2917	cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2918	extra_headers="feedback.h"
2919	case $target in
2920	tilegxbe-*)
2921		tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2922 		;;
2923	esac
2924	;;
2925tilepro*-*-linux*)
2926	tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2927        tmake_file="${tmake_file} tilepro/t-tilepro"
2928	extra_objs="${extra_objs} mul-tables.o"
2929	c_target_objs="${c_target_objs} tilepro-c.o"
2930	cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2931	extra_headers="feedback.h"
2932	;;
2933v850-*-rtems*)
2934	target_cpu_default="TARGET_CPU_generic"
2935	tm_file="dbxelf.h elfos.h v850/v850.h"
2936	tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2937	tmake_file="${tmake_file} v850/t-v850"
2938	tmake_file="${tmake_file} v850/t-rtems"
2939	use_collect2=no
2940	c_target_objs="v850-c.o"
2941	cxx_target_objs="v850-c.o"
2942	;;
2943v850*-*-*)
2944	case ${target} in
2945	v850e3v5-*-*)
2946		target_cpu_default="TARGET_CPU_v850e3v5"
2947		;;
2948	v850e2v3-*-*)
2949		target_cpu_default="TARGET_CPU_v850e2v3"
2950		;;
2951	v850e2-*-*)
2952		target_cpu_default="TARGET_CPU_v850e2"
2953		;;
2954	v850e1-*-* | v850es-*-*)
2955		target_cpu_default="TARGET_CPU_v850e1"
2956		;;
2957	v850e-*-*)
2958		target_cpu_default="TARGET_CPU_v850e"
2959		;;
2960	v850-*-*)
2961		target_cpu_default="TARGET_CPU_generic"
2962		;;
2963	esac
2964	tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
2965	if test x$stabs = xyes
2966	then
2967		tm_file="${tm_file} dbx.h"
2968	fi
2969	use_collect2=no
2970	c_target_objs="v850-c.o"
2971	cxx_target_objs="v850-c.o"
2972	use_gcc_stdint=wrap
2973	;;
2974vax-*-linux*)
2975	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
2976	extra_options="${extra_options} vax/elf.opt"
2977	;;
2978vax-*-netbsdelf*)
2979	tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2980	extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
2981	;;
2982vax-*-openbsd*)
2983	tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h"
2984	extra_options="${extra_options} openbsd.opt"
2985	use_collect2=yes
2986	;;
2987visium-*-elf*)
2988	tm_file="dbxelf.h elfos.h ${tm_file} visium/elf.h newlib-stdint.h"
2989	tmake_file="visium/t-visium visium/t-crtstuff"
2990	;;
2991xstormy16-*-elf)
2992	# For historical reasons, the target files omit the 'x'.
2993	tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
2994	tm_p_file=stormy16/stormy16-protos.h
2995	md_file=stormy16/stormy16.md
2996	out_file=stormy16/stormy16.c
2997	extra_options=stormy16/stormy16.opt
2998	tmake_file="stormy16/t-stormy16"
2999	;;
3000xtensa*-*-elf*)
3001	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
3002	extra_options="${extra_options} xtensa/elf.opt"
3003	;;
3004xtensa*-*-linux*)
3005	tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
3006	tmake_file="${tmake_file} xtensa/t-xtensa"
3007	;;
3008am33_2.0-*-linux*)
3009	tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
3010	gas=yes gnu_ld=yes
3011	use_collect2=no
3012	;;
3013m32c-*-rtems*)
3014	tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
3015	c_target_objs="m32c-pragma.o"
3016	cxx_target_objs="m32c-pragma.o"
3017 	;;
3018m32c-*-elf*)
3019	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
3020	c_target_objs="m32c-pragma.o"
3021	cxx_target_objs="m32c-pragma.o"
3022 	;;
3023*)
3024	echo "*** Configuration ${target} not supported" 1>&2
3025	exit 1
3026	;;
3027esac
3028
3029case ${target} in
3030i[34567]86-*-linux* | x86_64-*-linux*)
3031	tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
3032	;;
3033i[34567]86-*-* | x86_64-*-*)
3034	tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
3035	;;
3036powerpc*-*-* | rs6000-*-*)
3037	tm_file="${tm_file} rs6000/option-defaults.h"
3038esac
3039
3040# Build mkoffload tool
3041case ${target} in
3042*-intelmic-* | *-intelmicemul-*)
3043	tmake_file="${tmake_file} i386/t-intelmic"
3044	tm_file="${tm_file} i386/intelmic-offload.h"
3045	;;
3046esac
3047
3048if [ "$target_has_targetcm" = "no" ]; then
3049  c_target_objs="$c_target_objs default-c.o"
3050  cxx_target_objs="$cxx_target_objs default-c.o"
3051fi
3052
3053if [ "$common_out_file" = "" ]; then
3054  if [ "$target_has_targetm_common" = "yes" ]; then
3055    common_out_file="$cpu_type/$cpu_type-common.c"
3056  else
3057    common_out_file="default-common.c"
3058  fi
3059fi
3060
3061# Support for --with-cpu and related options (and a few unrelated options,
3062# too).
3063case ${with_cpu} in
3064  yes | no)
3065    echo "--with-cpu must be passed a value" 1>&2
3066    exit 1
3067    ;;
3068esac
3069
3070# Set arch and cpu from ${target} and ${target_noncanonical}.  Set cpu
3071# to generic if there is no processor scheduler model for the target.
3072arch=
3073cpu=
3074arch_without_sse2=no
3075arch_without_64bit=no
3076case ${target} in
3077  i386-*-freebsd*)
3078    if test $fbsd_major -ge 6; then
3079      arch=i486
3080    else
3081      arch=i386
3082    fi
3083    cpu=generic
3084    arch_without_sse2=yes
3085    arch_without_64bit=yes
3086    ;;
3087  i386-*-*)
3088    arch=i386
3089    cpu=i386
3090    arch_without_sse2=yes
3091    arch_without_64bit=yes
3092    ;;
3093  i486-*-*)
3094    arch=i486
3095    cpu=i486
3096    arch_without_sse2=yes
3097    arch_without_64bit=yes
3098    ;;
3099  i586-*-*)
3100    arch_without_sse2=yes
3101    arch_without_64bit=yes
3102    case ${target_noncanonical} in
3103      k6_2-*)
3104	arch=k6-2
3105	cpu=k6-2
3106	;;
3107      k6_3-*)
3108	arch=k6-3
3109	cpu=k6-3
3110	;;
3111      k6-*)
3112	arch=k6
3113	cpu=k6
3114	;;
3115      pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
3116	arch=pentium-mmx
3117	cpu=pentium-mmx
3118	;;
3119      *)
3120	arch=pentium
3121	cpu=pentium
3122	;;
3123    esac
3124    ;;
3125  i686-*-* | i786-*-*)
3126    case ${target_noncanonical} in
3127      bdver4-*)
3128        arch=bdver4
3129        cpu=bdver4
3130        ;;
3131      bdver3-*)
3132        arch=bdver3
3133        cpu=bdver3
3134        ;;
3135      bdver2-*)
3136        arch=bdver2
3137        cpu=bdver2
3138        ;;
3139      bdver1-*)
3140	arch=bdver1
3141	cpu=bdver1
3142	;;
3143      btver1-*)
3144	arch=btver1
3145	cpu=btver1
3146	;;
3147      btver2-*)
3148	arch=btver2
3149	cpu=btver2
3150	;;
3151      amdfam10-*|barcelona-*)
3152	arch=amdfam10
3153	cpu=amdfam10
3154	;;
3155      k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3156	arch=k8-sse3
3157	cpu=k8-sse3
3158	;;
3159      k8-*|opteron-*|athlon64-*|athlon_fx-*)
3160	arch=k8
3161	cpu=k8
3162	;;
3163      athlon_xp-*|athlon_mp-*|athlon_4-*)
3164	arch=athlon-4
3165	cpu=athlon-4
3166	arch_without_sse2=yes
3167	arch_without_64bit=yes
3168	;;
3169      athlon_tbird-*|athlon-*)
3170	arch=athlon
3171	cpu=athlon
3172	arch_without_sse2=yes
3173	;;
3174      geode-*)
3175	arch=geode
3176	cpu=geode
3177	arch_without_sse2=yes
3178	;;
3179      pentium2-*)
3180	arch=pentium2
3181	cpu=pentium2
3182	arch_without_sse2=yes
3183	;;
3184      pentium3-*|pentium3m-*)
3185	arch=pentium3
3186	cpu=pentium3
3187	arch_without_sse2=yes
3188	;;
3189      pentium4-*|pentium4m-*)
3190	arch=pentium4
3191	cpu=pentium4
3192	;;
3193      prescott-*)
3194	arch=prescott
3195	cpu=prescott
3196	;;
3197      nocona-*)
3198	arch=nocona
3199	cpu=nocona
3200	;;
3201      atom-*)
3202	arch=atom
3203	cpu=atom
3204	;;
3205      slm-*)
3206	arch=slm
3207	cpu=slm
3208	;;
3209      core2-*)
3210	arch=core2
3211	cpu=core2
3212	;;
3213      corei7-*)
3214	arch=corei7
3215	cpu=corei7
3216	;;
3217      corei7_avx-*)
3218	arch=corei7-avx
3219	cpu=corei7-avx
3220	;;
3221      pentium_m-*)
3222	arch=pentium-m
3223	cpu=pentium-m
3224	;;
3225      pentiumpro-*)
3226	arch=pentiumpro
3227	cpu=pentiumpro
3228	arch_without_sse2=yes
3229	;;
3230      *)
3231	arch=pentiumpro
3232	cpu=generic
3233	arch_without_sse2=yes
3234	arch_without_64bit=yes
3235	;;
3236    esac
3237    ;;
3238  x86_64-*-*)
3239    case ${target_noncanonical} in
3240      bdver4-*)
3241        arch=bdver4
3242        cpu=bdver4
3243        ;;
3244      bdver3-*)
3245        arch=bdver3
3246        cpu=bdver3
3247        ;;
3248      bdver2-*)
3249        arch=bdver2
3250        cpu=bdver2
3251        ;;
3252      bdver1-*)
3253	arch=bdver1
3254	cpu=bdver1
3255	;;
3256      btver1-*)
3257	arch=btver1
3258	cpu=btver1
3259	;;
3260      btver2-*)
3261	arch=btver2
3262	cpu=btver2
3263	;;
3264      amdfam10-*|barcelona-*)
3265	arch=amdfam10
3266	cpu=amdfam10
3267	;;
3268      k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3269	arch=k8-sse3
3270	cpu=k8-sse3
3271	;;
3272      k8-*|opteron-*|athlon_64-*)
3273	arch=k8
3274	cpu=k8
3275	;;
3276      nocona-*)
3277	arch=nocona
3278	cpu=nocona
3279	;;
3280      atom-*)
3281	arch=atom
3282	cpu=atom
3283	;;
3284      slm-*)
3285	arch=slm
3286	cpu=slm
3287	;;
3288      core2-*)
3289	arch=core2
3290	cpu=core2
3291	;;
3292      corei7-*)
3293	arch=corei7
3294	cpu=corei7
3295	;;
3296      *)
3297	arch=x86-64
3298	cpu=generic
3299	;;
3300    esac
3301    ;;
3302esac
3303
3304# If there is no $with_cpu option, try to infer one from ${target}.
3305# This block sets nothing except for with_cpu.
3306if test x$with_cpu = x ; then
3307  case ${target} in
3308    i[34567]86-*-*|x86_64-*-*)
3309      with_cpu=$cpu
3310      ;;
3311    alphaev6[78]*-*-*)
3312      with_cpu=ev67
3313      ;;
3314    alphaev6*-*-*)
3315      with_cpu=ev6
3316      ;;
3317    alphapca56*-*-*)
3318      with_cpu=pca56
3319      ;;
3320    alphaev56*-*-*)
3321      with_cpu=ev56
3322      ;;
3323    alphaev5*-*-*)
3324      with_cpu=ev5
3325      ;;
3326    frv-*-*linux* | frv400-*-*linux*)
3327      with_cpu=fr400
3328      ;;
3329    frv550-*-*linux*)
3330      with_cpu=fr550
3331      ;;
3332    m68k*-*-*)
3333      case "$with_arch" in
3334	"cf")
3335	  with_cpu=${default_cf_cpu}
3336	  ;;
3337	"" | "m68k")
3338	  with_cpu=m${default_m68k_cpu}
3339	  ;;
3340      esac
3341      ;;
3342    powerpc*-*-*spe*)
3343      if test x$enable_e500_double = xyes; then
3344         with_cpu=8548
3345      else
3346         with_cpu=8540
3347      fi       
3348      ;;
3349    sparc*-*-*)
3350      case ${target} in
3351	*-leon-*)
3352	  with_cpu=leon
3353	  ;;
3354	*-leon[3-9]*)
3355	  with_cpu=leon3
3356	  ;;
3357	*-leon[3-9]v7*)
3358	  with_cpu=leon3v7
3359	  ;;
3360	*)
3361	  with_cpu="`echo ${target} | sed 's/-.*$//'`"
3362	  ;;
3363      esac
3364      ;;
3365  esac
3366
3367  # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3368  case ${target} in
3369    i[34567]86-*-*|x86_64-*-*)
3370      if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3371	if test x$with_cpu_32 = x; then
3372	  with_cpu_32=$with_cpu
3373	fi
3374	if test x$with_cpu_64 = x; then
3375	  with_cpu_64=$with_cpu
3376	fi
3377        with_cpu=
3378      fi
3379      ;;
3380  esac
3381fi
3382
3383# Support for --with-arch and related options (and a few unrelated options,
3384# too).
3385case ${with_arch} in
3386  yes | no)
3387    echo "--with-arch must be passed a value" 1>&2
3388    exit 1
3389    ;;
3390esac
3391
3392# If there is no $with_arch option, try to infer one from ${target}.
3393# This block sets nothing except for with_arch.
3394if test x$with_arch = x ; then
3395  case ${target} in
3396    i[34567]86-*-darwin*|x86_64-*-darwin*)
3397      # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3398      # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3399      ;;
3400    i[34567]86-*-*)
3401      # --with-fpmath sets the default ISA to SSE2, which is the same
3402      # ISA supported by Pentium 4.
3403      if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3404	with_arch=$arch
3405      else
3406	with_arch=pentium4
3407      fi
3408      ;;
3409    x86_64-*-*)
3410      with_arch=$arch
3411      ;;
3412    mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3413      with_arch=r5900
3414      ;;
3415    mips*-*-vxworks)
3416      with_arch=mips2
3417      ;;
3418  esac
3419
3420  # Avoid overriding --with-arch-32 and --with-arch-64 values.
3421  case ${target} in
3422    i[34567]86-*-darwin*|x86_64-*-darwin*)
3423      # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3424      # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3425      ;;
3426    i[34567]86-*-*|x86_64-*-*)
3427      if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3428	if test x$with_arch_32 = x; then
3429	  with_arch_32=$with_arch
3430	fi
3431	if test x$with_arch_64 = x; then
3432	  if test $arch_without_64bit = yes; then
3433	    # Set the default 64bit arch to x86-64 if the default arch
3434	    # doesn't support 64bit.
3435	    with_arch_64=x86-64
3436	  else
3437	    with_arch_64=$with_arch
3438	  fi
3439	fi
3440	with_arch=
3441      elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3442	# Set the default 64bit arch to x86-64 if the default arch
3443	# doesn't support 64bit and we need 64bit ISA.
3444	with_arch_32=$with_arch
3445	with_arch_64=x86-64
3446	with_arch=
3447      fi
3448      ;;
3449  esac
3450fi
3451
3452# Infer a default setting for --with-float.
3453if test x$with_float = x; then
3454  case ${target} in
3455    mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3456      # The R5900 doesn't support 64-bit float.  32-bit float doesn't
3457      # comply with IEEE 754.
3458      with_float=soft
3459      ;;
3460  esac
3461fi
3462
3463# Infer a default setting for --with-fpu.
3464if test x$with_fpu = x; then
3465  case ${target} in
3466    mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3467      # The R5900 FPU only supports single precision.
3468      with_fpu=single
3469      ;;
3470  esac
3471fi
3472
3473# Support --with-fpmath.
3474if test x$with_fpmath != x; then
3475  case ${target} in
3476    i[34567]86-*-* | x86_64-*-*)
3477      case ${with_fpmath} in
3478      avx)
3479	tm_file="${tm_file} i386/avxmath.h"
3480	;;
3481      sse)
3482	tm_file="${tm_file} i386/ssemath.h"
3483	;;
3484      *)
3485	echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3486	exit 1
3487	;;
3488      esac
3489      ;;
3490    *)
3491      echo "--with-fpmath isn't supported for $target." 1>&2
3492      exit 1
3493      ;;
3494  esac
3495fi
3496
3497# Similarly for --with-schedule.
3498if test x$with_schedule = x; then
3499	case ${target} in
3500	hppa1*)
3501		# Override default PA8000 scheduling model.
3502		with_schedule=7100LC
3503		;;
3504	esac
3505fi
3506
3507# Infer a default setting for --with-llsc.
3508if test x$with_llsc = x; then
3509  case ${target} in
3510    mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3511      # The R5900 doesn't support LL(D) and SC(D).
3512      with_llsc=no
3513      ;;
3514    mips*-*-linux*)
3515      # The kernel emulates LL and SC where necessary.
3516      with_llsc=yes
3517      ;;
3518  esac
3519fi
3520
3521# Validate and mark as valid any --with options supported
3522# by this target.  In order to use a particular --with option
3523# you must list it in supported_defaults; validating the value
3524# is optional.  This case statement should set nothing besides
3525# supported_defaults.
3526
3527supported_defaults=
3528case "${target}" in
3529	aarch64*-*-*)
3530		supported_defaults="abi cpu arch"
3531		for which in cpu arch; do
3532
3533			eval "val=\$with_$which"
3534			base_val=`echo $val | sed -e 's/\+.*//'`
3535			ext_val=`echo $val | sed -e 's/[a-z0-9\-]\+//'`
3536
3537			if [ $which = arch ]; then
3538			  def=aarch64-arches.def
3539			  pattern=AARCH64_ARCH
3540			else
3541			  def=aarch64-cores.def
3542			  pattern=AARCH64_CORE
3543			fi
3544
3545			ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3546
3547			# Find the base CPU or ARCH id in aarch64-cores.def or
3548			# aarch64-arches.def
3549			if [ x"$base_val" = x ] \
3550			    || grep "^$pattern(\"$base_val\"," \
3551				    ${srcdir}/config/aarch64/$def \
3552				    > /dev/null; then
3553
3554			  if [ $which = arch ]; then
3555				base_id=`grep "^$pattern(\"$base_val\"," \
3556				  ${srcdir}/config/aarch64/$def | \
3557				  sed -e 's/^[^,]*,[ 	]*//' | \
3558				  sed -e 's/,.*$//'`
3559				# Extract the architecture flags from aarch64-arches.def
3560				ext_mask=`grep "^$pattern(\"$base_val\"," \
3561				   ${srcdir}/config/aarch64/$def | \
3562				   sed -e 's/)$//' | \
3563				   sed -e 's/^.*,//'`
3564			  else
3565				base_id=`grep "^$pattern(\"$base_val\"," \
3566				  ${srcdir}/config/aarch64/$def | \
3567				  sed -e 's/^[^,]*,[ 	]*//' | \
3568				  sed -e 's/,.*$//'`
3569			  fi
3570
3571			  while [ x"$ext_val" != x ]
3572			  do
3573				ext_val=`echo $ext_val | sed -e 's/\+//'`
3574				ext=`echo $ext_val | sed -e 's/\+.*//'`
3575				base_ext=`echo $ext | sed -e 's/^no//'`
3576
3577				if [ x"$base_ext" = x ] \
3578				    || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3579				    ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3580				    > /dev/null; then
3581
3582				  ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3583					${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3584					sed -e 's/^[^,]*,[ 	]*//' | \
3585					sed -e 's/,.*$//'`
3586				  ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3587					${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3588					sed -e 's/^[^,]*,[ 	]*[^,]*,[ 	]*//' | \
3589					sed -e 's/,.*$//' | \
3590					sed -e 's/).*$//'`
3591
3592				  if [ $ext = $base_ext ]; then
3593					# Adding extension
3594					ext_mask="("$ext_mask") | ("$ext_on")"
3595				  else
3596					# Removing extension
3597					ext_mask="("$ext_mask") & ~("$ext_off")"
3598				  fi
3599
3600				  true
3601				else
3602				  echo "Unknown extension used in --with-$which=$val" 1>&2
3603				  exit 1
3604				fi
3605				ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3606			  done
3607
3608			  ext_mask="(("$ext_mask") << 6)"
3609			  if [ x"$base_id" != x ]; then
3610				target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3611			  fi
3612			  true
3613			else
3614			  echo "Unknown $which used in --with-$which=$val" 1>&2
3615			  exit 1
3616			fi
3617		done
3618		;;
3619
3620	alpha*-*-*)
3621		supported_defaults="cpu tune"
3622		for which in cpu tune; do
3623			eval "val=\$with_$which"
3624			case "$val" in
3625			"" \
3626			| ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3627			| pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3628			| 21264a)
3629				;;
3630			*)
3631				echo "Unknown CPU used in --with-$which=$val" 1>&2
3632				exit 1
3633				;;
3634			esac
3635		done
3636		;;
3637
3638	arc*-*-*) # was:	arc*-*-linux-uclibc)
3639		supported_defaults="cpu"
3640		case $with_cpu in
3641		  arc600|arc601|arc700)
3642			;;
3643		  *) echo "Unknown cpu type"
3644			exit 1
3645			;;
3646		esac
3647		;;
3648
3649	arm*-*-*)
3650		supported_defaults="arch cpu float tune fpu abi mode tls"
3651		for which in cpu tune; do
3652			# See if it matches any of the entries in arm-cores.def
3653			eval "val=\$with_$which"
3654			if [ x"$val" = x ] \
3655			    || grep "^ARM_CORE(\"$val\"," \
3656				    ${srcdir}/config/arm/arm-cores.def \
3657				    > /dev/null; then
3658			  # Ok
3659			  new_val=`grep "^ARM_CORE(\"$val\"," \
3660				${srcdir}/config/arm/arm-cores.def | \
3661				sed -e 's/^[^,]*,[ 	]*//' | \
3662				sed -e 's/,.*$//'`
3663			  eval "target_${which}_cname=$new_val"
3664			echo "For $val real value is $new_val"
3665			  true
3666			else
3667			  echo "Unknown CPU used in --with-$which=$val" 1>&2
3668			  exit 1
3669			fi
3670		done
3671
3672		# See if it matches any of the entries in arm-arches.def
3673		if [ x"$with_arch" = x ] \
3674		    || grep "^ARM_ARCH(\"$with_arch\"," \
3675			    ${srcdir}/config/arm/arm-arches.def \
3676			    > /dev/null; then
3677		  # OK
3678		  true
3679		else
3680		  echo "Unknown arch used in --with-arch=$with_arch" 1>&2
3681		  exit 1
3682		fi
3683
3684		case "$with_float" in
3685		"" \
3686		| soft | hard | softfp)
3687			# OK
3688			;;
3689		*)
3690			echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3691			exit 1
3692			;;
3693		esac
3694
3695		# see if it matches any of the entries in arm-fpus.def
3696		if [ x"$with_fpu" = x ] \
3697		    || grep "^ARM_FPU(\"$with_fpu\"," \
3698			    ${srcdir}/config/arm/arm-fpus.def \
3699			    > /dev/null; then
3700		  # OK
3701		  true
3702		else
3703		  echo "Unknown fpu used in --with-fpu=$with_fpu" 1>&2
3704		  exit 1
3705		fi
3706
3707		case "$with_abi" in
3708		"" \
3709		| apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3710			#OK
3711			;;
3712		*)
3713			echo "Unknown ABI used in --with-abi=$with_abi"
3714			exit 1
3715			;;
3716		esac
3717
3718		case "$with_mode" in
3719		"" \
3720		| arm | thumb )
3721			#OK
3722			;;
3723		*)
3724			echo "Unknown mode used in --with-mode=$with_mode"
3725			exit 1
3726			;;
3727		esac
3728
3729		case "$with_tls" in
3730		"" \
3731		| gnu | gnu2)
3732			# OK
3733			;;
3734		*)
3735			echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3736			exit 1
3737			;;
3738		esac
3739
3740		if test "x$with_arch" != x && test "x$with_cpu" != x; then
3741			echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\""  1>&2
3742			exit 1
3743		fi
3744
3745		if test "x$with_cpu" != x && test "x$with_tune" != x; then
3746			echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\""  1>&2
3747			exit 1
3748		fi
3749
3750		# Add extra multilibs
3751		if test "x$with_multilib_list" != x; then
3752			arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3753			for arm_multilib in ${arm_multilibs}; do
3754				case ${arm_multilib} in
3755				aprofile)
3756				# Note that arm/t-aprofile is a
3757				# stand-alone make file fragment to be
3758				# used only with itself.  We do not
3759				# specifically use the
3760				# TM_MULTILIB_OPTION framework because
3761				# this shorthand is more
3762				# pragmatic. Additionally it is only
3763				# designed to work without any
3764				# with-cpu, with-arch with-mode
3765				# with-fpu or with-float options.
3766					if test "x$with_arch" != x \
3767					    || test "x$with_cpu" != x \
3768					    || test "x$with_float" != x \
3769					    || test "x$with_fpu" != x \
3770					    || test "x$with_mode" != x ; then
3771					    echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
3772					    exit 1
3773					fi
3774					tmake_file="${tmake_file} arm/t-aprofile"
3775					break
3776					;;
3777				default)
3778					;;
3779				*)
3780					echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3781					exit 1
3782					;;
3783				esac
3784			done
3785		fi
3786		;;
3787
3788	fr*-*-*linux*)
3789		supported_defaults=cpu
3790		case "$with_cpu" in
3791		fr400) ;;
3792		fr550) ;;
3793		*)
3794			echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3795			exit 1
3796			;;
3797		esac
3798		;;
3799
3800	fido-*-* | m68k*-*-*)
3801		supported_defaults="arch cpu"
3802		case "$with_arch" in
3803		"" | "m68k"| "cf")
3804			m68k_arch_family="$with_arch"
3805			;;
3806		*)
3807			echo "Invalid --with-arch=$with_arch" 1>&2
3808			exit 1
3809			;;
3810		esac
3811
3812		# We always have a $with_cpu setting here.
3813		case "$with_cpu" in
3814		"m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3815			m68k_cpu_ident=$with_cpu
3816			;;
3817		"m68020-40")
3818			m68k_cpu_ident=m68020
3819			tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3820			;;
3821		"m68020-60")
3822			m68k_cpu_ident=m68020
3823			tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3824			;;
3825		*)
3826			# We need the C identifier rather than the string.
3827			m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3828			   'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
3829			    $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
3830				 ${srcdir}/config/m68k/m68k-devices.def`
3831			if [ x"$m68k_cpu_ident" = x ] ; then
3832				echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
3833				exit 1
3834			fi
3835			with_cpu="mcpu=$with_cpu"
3836			;;
3837		esac
3838		;;
3839
3840	hppa*-*-*)
3841		supported_defaults="arch schedule"
3842
3843		case "$with_arch" in
3844		"" | 1.0 | 1.1 | 2.0)
3845			# OK
3846			;;
3847		*)
3848			echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
3849			exit 1
3850			;;
3851		esac
3852
3853		case "$with_schedule" in
3854		"" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
3855			# OK
3856			;;
3857		*)
3858			echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
3859			exit 1
3860			;;
3861		esac
3862		;;
3863
3864	i[34567]86-*-* | x86_64-*-*)
3865		supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
3866		for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3867			eval "val=\$with_$which"
3868			case " $x86_archs " in
3869			*" ${val} "*)
3870				case "${target}" in
3871				  x86_64-*-*)
3872				      case "x$which" in
3873					*_32)
3874						;;
3875					*)
3876						echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
3877						exit 1
3878						;;
3879				      esac
3880				      ;;
3881				esac
3882				# OK
3883				;;
3884			*)
3885				if test x${val} != x; then
3886					case " $x86_64_archs " in
3887					*" ${val} "*)
3888						# OK
3889						;;
3890					*)
3891						# Allow $x86_cpus --with-cpu=/--with-tune=
3892						case "x$which" in
3893						xcpu*|xtune*)
3894							case " $x86_cpus " in
3895							*" ${val} "*)
3896								# OK
3897								;;
3898							*)
3899								echo "Unknown CPU given in --with-$which=$val." 1>&2
3900								exit 1
3901								;;
3902							esac
3903							;;
3904						*)
3905							echo "Unknown CPU given in --with-$which=$val." 1>&2
3906							exit 1
3907							;;
3908						esac
3909					;;
3910					esac
3911				fi
3912				;;
3913			esac
3914		done
3915		;;
3916
3917	mips*-*-*)
3918		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"
3919
3920		case ${with_float} in
3921		"" | soft | hard)
3922			# OK
3923			;;
3924		*)
3925			echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3926			exit 1
3927			;;
3928		esac
3929
3930		case ${with_fpu} in
3931		"" | single | double)
3932			# OK
3933			;;
3934		*)
3935			echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
3936			exit 1
3937			;;
3938		esac
3939
3940		case ${with_nan} in
3941		"" | 2008 | legacy)
3942			# OK
3943			;;
3944		*)
3945			echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
3946			exit 1
3947			;;
3948		esac
3949
3950		case ${with_fp_32} in
3951		"" | 32 | xx | 64)
3952			# OK
3953			;;
3954		*)
3955			echo "Unknown FP mode used in --with-fp-32=$with_fp_32" 1>&2
3956			exit 1
3957			;;
3958		esac
3959
3960		case ${with_odd_spreg_32} in
3961		yes)
3962			with_odd_spreg_32="odd-spreg"
3963			;;
3964		no)
3965			with_odd_spreg_32="no-odd-spreg"
3966			;;
3967		"")
3968			# OK
3969			;;
3970		*)
3971			echo "Unknown odd-spreg-32 type used in --with-odd-spreg-32=$with_odd_spreg_32" 1>&2
3972			exit 1
3973			;;
3974		esac
3975
3976		case ${with_abi} in
3977		"" | 32 | o64 | n32 | 64 | eabi)
3978			# OK
3979			;;
3980		*)
3981			echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
3982			exit 1
3983			;;
3984		esac
3985
3986		case ${with_divide} in
3987		"" | breaks | traps)
3988			# OK
3989			;;
3990		*)
3991			echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
3992			exit 1
3993			;;
3994		esac
3995
3996		case ${with_llsc} in
3997		yes)
3998			with_llsc=llsc
3999			;;
4000		no)
4001			with_llsc="no-llsc"
4002			;;
4003		"")
4004			# OK
4005			;;
4006		*)
4007			echo "Unknown llsc type used in --with-llsc" 1>&2
4008			exit 1
4009			;;
4010		esac
4011
4012		case ${with_mips_plt} in
4013		yes)
4014			with_mips_plt=plt
4015			;;
4016		no)
4017			with_mips_plt=no-plt
4018			;;
4019		"")
4020			;;
4021		*)
4022			echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
4023			exit 1
4024			;;
4025		esac
4026
4027		case ${with_synci} in
4028		yes)
4029			with_synci=synci
4030			;;
4031		no)
4032			with_synci=no-synci
4033			;;
4034		"")
4035			;;
4036		*)
4037			echo "Unknown synci type used in --with-synci" 1>&2
4038			exit 1
4039			;;
4040		esac
4041		;;
4042
4043	nds32*-*-*)
4044		supported_defaults="arch nds32_lib"
4045
4046		# process --with-arch
4047		case "${with_arch}" in
4048		"" | v2 | v3 | v3m)
4049			# OK
4050			;;
4051		*)
4052			echo "Cannot accept --with-arch=$with_arch, available values are: v2 v3 v3m" 1>&2
4053			exit 1
4054			;;
4055		esac
4056
4057		# process --with-nds32-lib
4058		case "${with_nds32_lib}" in
4059		"")
4060			# the default library is newlib
4061			with_nds32_lib=newlib
4062			;;
4063		newlib)
4064			# OK
4065			;;
4066		mculib)
4067			# OK
4068			;;
4069		*)
4070			echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
4071			exit 1
4072			;;
4073		esac
4074		;;
4075
4076	powerpc*-*-* | rs6000-*-*)
4077		supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64"
4078
4079		for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
4080			eval "val=\$with_$which"
4081			case ${val} in
4082			default32 | default64)
4083				case $which in
4084				cpu | tune)
4085					;;
4086				*)
4087					echo "$val only valid for --with-cpu and --with-tune." 1>&2
4088					exit 1
4089					;;
4090				esac
4091				with_which="with_$which"
4092				eval $with_which=
4093				;;
4094			405cr)
4095				tm_defines="${tm_defines} CONFIG_PPC405CR"
4096				eval "with_$which=405"
4097				;;
4098			"" | common | native \
4099			| power | power[2345678] | power6x | powerpc | powerpc64 \
4100			| rios | rios1 | rios2 | rsc | rsc1 | rs64a \
4101			| 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
4102			| 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
4103			| 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
4104			| a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
4105			| titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
4106				# OK
4107				;;
4108			*)
4109				echo "Unknown cpu used in --with-$which=$val." 1>&2
4110				exit 1
4111				;;
4112			esac
4113		done
4114
4115		case "$with_abi" in
4116		"" | elfv1 | elfv2 )
4117			#OK
4118			;;
4119		*)
4120			echo "Unknown ABI used in --with-abi=$with_abi"
4121			exit 1
4122			;;
4123		esac
4124		;;
4125
4126	s390*-*-*)
4127		supported_defaults="arch mode tune"
4128
4129		for which in arch tune; do
4130			eval "val=\$with_$which"
4131			case ${val} in
4132			"" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12 | z13)
4133				# OK
4134				;;
4135			*)
4136				echo "Unknown cpu used in --with-$which=$val." 1>&2
4137				exit 1
4138				;;
4139			esac
4140		done
4141
4142		case ${with_mode} in
4143		"" | esa | zarch)
4144			# OK
4145			;;
4146		*)
4147			echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
4148			exit 1
4149			;;
4150		esac
4151		;;
4152
4153	sh[123456ble]-*-* | sh-*-*)
4154		supported_defaults="cpu"
4155		case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
4156		"" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
4157			# OK
4158			;;
4159		m2a | m2a-single | m2a-single-only | m2a-nofpu)
4160			;;
4161		m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
4162		        ;;
4163		*)
4164			echo "Unknown CPU used in --with-cpu=$with_cpu, known values:"  1>&2
4165			echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
4166			echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
4167			echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
4168			exit 1
4169			;;
4170		esac
4171		;;
4172	sparc*-*-*)
4173		supported_defaults="cpu float tune"
4174
4175		for which in cpu tune; do
4176			eval "val=\$with_$which"
4177			case ${val} in
4178			"" | sparc | sparcv9 | sparc64 \
4179			| v7 | cypress \
4180			| v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
4181			| sparclite | f930 | f934 | sparclite86x \
4182			| sparclet | tsc701 \
4183			| v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
4184			| niagara3 | niagara4)
4185				# OK
4186				;;
4187			*)
4188				echo "Unknown cpu used in --with-$which=$val" 1>&2
4189				exit 1
4190				;;
4191			esac
4192		done
4193
4194		case ${with_float} in
4195		"" | soft | hard)
4196			# OK
4197			;;
4198		*)
4199			echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4200			exit 1
4201			;;
4202		esac
4203		;;
4204
4205	spu-*-*)
4206		supported_defaults="arch tune"
4207
4208		for which in arch tune; do
4209			eval "val=\$with_$which"
4210			case ${val} in
4211			"" | cell | celledp)
4212				# OK
4213				;;
4214			*)
4215				echo "Unknown cpu used in --with-$which=$val." 1>&2
4216				exit 1
4217				;;
4218			esac
4219		done
4220		;;
4221
4222	tic6x-*-*)
4223		supported_defaults="arch"
4224
4225		case ${with_arch} in
4226		"" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4227			# OK
4228			;;
4229		*)
4230			echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4231			exit 1
4232			;;
4233		esac
4234		;;
4235
4236	v850*-*-*)
4237		supported_defaults=cpu
4238		case ${with_cpu} in
4239		"" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4240			# OK
4241			;;
4242		*)
4243			echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4244			exit 1
4245			;;
4246		esac
4247		;;
4248esac
4249
4250# Set some miscellaneous flags for particular targets.
4251target_cpu_default2=
4252case ${target} in
4253	aarch64*-*-*)
4254		if test x"$target_cpu_cname" != x
4255		then
4256			target_cpu_default2=$target_cpu_cname
4257		fi
4258		;;
4259
4260	arm*-*-*)
4261		if test x$target_cpu_cname = x
4262		then
4263			target_cpu_default2=TARGET_CPU_generic
4264		else
4265			target_cpu_default2=TARGET_CPU_$target_cpu_cname
4266		fi
4267		;;
4268
4269	hppa*-*-*)
4270		if test x$gas = xyes
4271		then
4272			target_cpu_default2="MASK_GAS"
4273		fi
4274		;;
4275
4276	fido*-*-* | m68k*-*-*)
4277		target_cpu_default2=$m68k_cpu_ident
4278		tmake_file="m68k/t-opts $tmake_file"
4279		if [ x"$m68k_arch_family" != x ]; then
4280		        tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4281		fi
4282		;;
4283
4284	i[34567]86-*-darwin* | x86_64-*-darwin*)
4285		;;
4286	i[34567]86-*-linux* | x86_64-*-linux*)
4287		tmake_file="$tmake_file i386/t-linux"
4288		;;
4289	i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4290		tmake_file="$tmake_file i386/t-kfreebsd"
4291		;;
4292	i[34567]86-*-gnu*)
4293		tmake_file="$tmake_file i386/t-gnu"
4294		;;
4295	i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4296		;;
4297	i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4298		;;
4299	i[34567]86-*-mingw* | x86_64-*-mingw*)
4300		;;
4301	i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4302		;;
4303	i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4304		;;
4305	ia64*-*-linux*)
4306		;;
4307
4308	mips*-*-*)
4309		if test x$gnu_ld = xyes
4310		then
4311			target_cpu_default2="MASK_SPLIT_ADDRESSES"
4312		fi
4313		case ${target} in
4314			mips*el-*-*)
4315				tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4316				;;
4317		esac
4318		if test x$with_arch != x; then
4319			default_mips_arch=$with_arch
4320		fi
4321		if test x$with_abi != x; then
4322			default_mips_abi=$with_abi
4323		fi
4324		case ${default_mips_arch} in
4325		    mips1)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=1" ;;
4326		    mips2)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=2" ;;
4327		    mips3)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=3" ;;
4328		    mips4)    tm_defines="$tm_defines MIPS_ISA_DEFAULT=4" ;;
4329		    mips32)   tm_defines="$tm_defines MIPS_ISA_DEFAULT=32" ;;
4330		    mips32r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=33" ;;
4331		    mips32r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=37" ;;
4332		    mips64)   tm_defines="$tm_defines MIPS_ISA_DEFAULT=64" ;;
4333		    mips64r2) tm_defines="$tm_defines MIPS_ISA_DEFAULT=65" ;;
4334		    mips64r6) tm_defines="$tm_defines MIPS_ISA_DEFAULT=69" ;;
4335		esac
4336		case ${default_mips_abi} in
4337		    32)   tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_32" ;;
4338		    o64)  tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_O64" ;;
4339		    n32)  tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_N32" ;;
4340		    64)   tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_64" ;;
4341		    eabi) tm_defines="$tm_defines MIPS_ABI_DEFAULT=ABI_EABI" ;;
4342		esac
4343		tmake_file="mips/t-mips $tmake_file"
4344		;;
4345
4346	powerpc*-*-* | rs6000-*-*)
4347		# FIXME: The PowerPC port uses the value set at compile time,
4348		# although it's only cosmetic.
4349		if test "x$with_cpu" != x
4350		then
4351			target_cpu_default2="\\\"$with_cpu\\\""
4352		fi
4353		out_file=rs6000/rs6000.c
4354		c_target_objs="${c_target_objs} rs6000-c.o"
4355		cxx_target_objs="${cxx_target_objs} rs6000-c.o"
4356		tmake_file="rs6000/t-rs6000 ${tmake_file}"
4357		;;
4358
4359	sh[123456ble]*-*-* | sh-*-*)
4360		c_target_objs="${c_target_objs} sh-c.o"
4361		cxx_target_objs="${cxx_target_objs} sh-c.o"
4362		;;
4363
4364	sparc*-*-*)
4365		# Some standard aliases.
4366		case x$with_cpu in
4367		xsparc)
4368			with_cpu=v7
4369			;;
4370		xsparcv9 | xsparc64)
4371			with_cpu=v9
4372			;;
4373		esac
4374
4375		if test x$with_tune = x ; then
4376		      case ${target} in
4377		      *-leon-*)
4378			  with_tune=leon
4379			  ;;
4380		      *-leon[3-9]*)
4381			  with_tune=leon3
4382			  ;;
4383		      esac
4384		fi
4385
4386		# The SPARC port checks this value at compile-time.
4387		target_cpu_default2="TARGET_CPU_$with_cpu"
4388		;;
4389
4390	v850*-*-*)
4391		case "x$with_cpu" in
4392		x)
4393			;;
4394		xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4395			target_cpu_default2="TARGET_CPU_$with_cpu"
4396			;;
4397		xv850es)
4398			target_cpu_default2="TARGET_CPU_v850e1"
4399			;;
4400		esac
4401		;;
4402esac
4403
4404t=
4405all_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"
4406for option in $all_defaults
4407do
4408	eval "val=\$with_"`echo $option | sed s/-/_/g`
4409	if test -n "$val"; then
4410		case " $supported_defaults " in
4411		*" $option "*)
4412			;;
4413		*)
4414			echo "This target does not support --with-$option." 2>&1
4415			echo "Valid --with options are: $supported_defaults" 2>&1
4416			exit 1
4417			;;
4418		esac
4419
4420		if test "x$t" = x
4421		then
4422			t="{ \"$option\", \"$val\" }"
4423		else
4424			t="${t}, { \"$option\", \"$val\" }"
4425		fi
4426	fi
4427done
4428
4429if test "x$t" = x
4430then
4431	configure_default_options="{ { NULL, NULL} }"
4432else
4433	configure_default_options="{ ${t} }"
4434fi
4435
4436if test "$target_cpu_default2" != ""
4437then
4438	if test "$target_cpu_default" != ""
4439	then
4440		target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4441	else
4442		target_cpu_default=$target_cpu_default2
4443	fi
4444fi
4445
4446case ${target} in
4447i[34567]86-*-* | x86_64-*-*)
4448	if test x$enable_as_accelerator = xyes; then
4449		extra_programs="mkoffload\$(exeext)"
4450	fi
4451	;;
4452esac
4453