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