xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/config.gcc (revision b7b7574d3bf8eeb51a1fa3977b59142ec6434a55)
1# GCC target-specific configuration file.
2# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
3# 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
4
5#This file is part of GCC.
6
7#GCC is free software; you can redistribute it and/or modify it under
8#the terms of the GNU General Public License as published by the Free
9#Software Foundation; either version 3, or (at your option) any later
10#version.
11
12#GCC is distributed in the hope that it will be useful, but WITHOUT
13#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14#FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15#for more details.
16
17#You should have received a copy of the GNU General Public License
18#along with GCC; see the file COPYING3.  If not see
19#<http://www.gnu.org/licenses/>.
20
21# This is the GCC target-specific configuration file
22# where a configuration type is mapped to different system-specific
23# definitions and files.  This is invoked by the autoconf-generated
24# configure script.  Putting it in a separate shell file lets us skip
25# running autoconf when modifying target-specific information.
26
27# When you change the cases in the OS or target switches, consider
28# updating ../libgcc/config.host also.
29
30# This file switches on the shell variable ${target}, and also uses the
31# following shell variables:
32#
33#  with_*		Various variables as set by configure.
34#
35#  enable_threads	Either the name, yes or no depending on whether
36#			threads support was requested.
37#
38#  default_use_cxa_atexit
39#			  The default value for the $enable___cxa_atexit
40#			variable.  enable___cxa_atexit needs to be set to
41#			"yes" for the correct operation of C++ destructors
42#			but it relies upon the presence of a non-standard C
43#			library	function called	__cxa_atexit.
44#			  Since not all C libraries provide __cxa_atexit the
45#			default value of $default_use_cxa_atexit is set to
46#			"no" except for targets which are known to be OK.
47#
48#  gas_flag		Either yes or no depending on whether GNU as was
49#			requested.
50#
51#  gnu_ld_flag		Either yes or no depending on whether GNU ld was
52#			requested.
53
54# This file sets the following shell variables for use by the
55# autoconf-generated configure script:
56#
57#  cpu_type		The name of the cpu, if different from the first
58#			chunk of the canonical target name.
59#
60#  tm_defines		List of target macros to define for all compilations.
61#
62#  tm_file		A list of target macro files, if different from
63#			"$cpu_type/$cpu_type.h". Usually it's constructed
64#			per target in a way like this:
65#			tm_file="${tm_file} dbxelf.h elfos.h svr4.h ${cpu_type.h}/elf.h"
66#			Note that the preferred order is:
67#			- specific target header "${cpu_type}/${cpu_type.h}"
68#			- generic headers like dbxelf.h elfos.h, etc.
69#			- specializing target headers like ${cpu_type.h}/elf.h
70#			This helps to keep OS specific stuff out of the CPU
71#			defining header ${cpu_type}/${cpu_type.h}.
72#
73#			It is possible to include automatically-generated
74#			build-directory files by prefixing them with "./".
75#			All other files should relative to $srcdir/config.
76#
77#  tm_p_file		Location of file with declarations for functions
78#			in $out_file.
79#
80#  out_file		The name of the machine description C support
81#			file, if different from "$cpu_type/$cpu_type.c".
82#
83#  md_file		The name of the machine-description file, if
84#			different from "$cpu_type/$cpu_type.md".
85#
86#  tmake_file		A list of machine-description-specific
87#			makefile-fragments, if different from
88#			"$cpu_type/t-$cpu_type".
89#
90#  extra_modes          The name of the file containing a list of extra
91#                       machine modes, if necessary and different from
92#                       "$cpu_type/$cpu_type-modes.def".
93#
94#  extra_objs		List of extra objects that should be linked into
95#			the compiler proper (cc1, cc1obj, cc1plus)
96#			depending on target.
97#
98#  extra_gcc_objs	List of extra objects that should be linked into
99#			the compiler driver (gcc) depending on target.
100#
101#  extra_headers	List of used header files from the directory
102#			config/${cpu_type}.
103#
104#  use_gcc_tgmath	If set, add tgmath.h to the list of used header
105#			files.
106#
107#  use_gcc_stdint	If "wrap", install a version of stdint.h that
108#			wraps the system's copy for hosted compilations;
109#			if "provide", provide a version of systems without
110#			such a system header; otherwise "none", do not
111#			provide such a header at all.
112#
113#  extra_passes		List of extra executables compiled for this target
114#			machine, used for compiling from source to object.
115#
116#  extra_parts		List of extra object files that should be compiled
117#			for this target machine.
118#
119#  extra_programs	Like extra_passes, but these are used when linking.
120#
121#  extra_options	List of target-dependent .opt files.
122#
123#  c_target_objs	List of extra target-dependent objects that be
124#			linked into the C compiler only.
125#
126#  cxx_target_objs	List of extra target-dependent objects that be
127#			linked into the C++ compiler only.
128#
129#  fortran_target_objs	List of extra target-dependent objects that be
130#			linked into the fortran compiler only.
131#
132#  target_gtfiles       List of extra source files with type information.
133#
134#  xm_defines		List of macros to define when compiling for the
135#			target machine.
136#
137#  xm_file		List of files to include when compiling for the
138#			target machine.
139#
140#  use_collect2		Set to yes or no, depending on whether collect2
141#			will be used.
142#
143#  target_cpu_default	Set to override the default target model.
144#
145#  gdb_needs_out_file_path
146#			Set to yes if gdb needs a dir command with
147#			`dirname $out_file`.
148#
149#  thread_file		Set to control which thread package to use.
150#
151#  gas			Set to yes or no depending on whether the target
152#			system normally uses GNU as.
153#
154#  need_64bit_hwint	Set to yes if HOST_WIDE_INT must be 64 bits wide
155#			for this target.  This is true if this target
156#			supports "long" or "wchar_t" wider than 32 bits,
157#			or BITS_PER_WORD is wider than 32 bits.
158#			The setting made here must match the one made in
159#			other locations such as libcpp/configure.ac
160#
161#  configure_default_options
162#			Set to an initializer for configure_default_options
163#			in configargs.h, based on --with-cpu et cetera.
164
165# The following variables are used in each case-construct to build up the
166# outgoing variables:
167#
168#  gnu_ld		Set to yes or no depending on whether the target
169#			system normally uses GNU ld.
170
171out_file=
172tmake_file=
173extra_headers=
174use_gcc_tgmath=yes
175use_gcc_stdint=none
176extra_passes=
177extra_parts=
178extra_programs=
179extra_objs=
180extra_gcc_objs=
181extra_options=
182c_target_objs=
183cxx_target_objs=
184fortran_target_objs=
185tm_defines=
186xm_defines=
187# Set this to force installation and use of collect2.
188use_collect2=
189# Set this to override the default target model.
190target_cpu_default=
191# Set this if gdb needs a dir command with `dirname $out_file`
192gdb_needs_out_file_path=
193# Set this to control which thread package will be used.
194thread_file=
195# Reinitialize these from the flag values every loop pass, since some
196# configure entries modify them.
197gas="$gas_flag"
198gnu_ld="$gnu_ld_flag"
199default_use_cxa_atexit=no
200target_gtfiles=
201need_64bit_hwint=
202need_64bit_isa=
203# Selects the object file format reader/writer used by LTO.
204lto_binary_reader=lto-elf
205
206# Don't carry these over build->host->target.  Please.
207xm_file=
208md_file=
209
210# Obsolete configurations.
211case ${target} in
212   alpha*-dec-osf4*			\
213 | alpha*-dec-osf5.0*			\
214 | mips-sgi-irix5*			\
215 | mips-sgi-irix6.[0-4]*		\
216 | *-*-solaris2.7*			\
217 )
218    if test "x$enable_obsolete" != xyes; then
219      echo "*** Configuration ${target} is obsolete." >&2
220      echo "*** Specify --enable-obsolete to build it anyway." >&2
221      echo "*** Support will be REMOVED in the next major release of GCC," >&2
222      echo "*** unless a maintainer comes forward." >&2
223      exit 1
224    fi;;
225esac
226
227# Unsupported targets list.  Do not put an entry in this list unless
228# it would otherwise be caught by a more permissive pattern.  The list
229# should be in alphabetical order.
230case ${target} in
231   i[34567]86-go32-*			\
232 | i[34567]86-*-go32*			\
233 | mips64orion*-*-rtems*		\
234 | pdp11-*-bsd				\
235 | sparc-hal-solaris2*			\
236 | thumb-*-*				\
237 | *-*-linux*aout*			\
238 | *-*-linux*coff*			\
239 | *-*-linux*libc1*			\
240 | *-*-linux*oldld*			\
241 | *-*-rtemsaout*			\
242 | *-*-rtemscoff*			\
243 | *-*-solaris2.[0-6]			\
244 | *-*-solaris2.[0-6].*			\
245 | *-*-sysv*		\
246 | vax-*-vms*				\
247 )
248	echo "*** Configuration ${target} not supported" 1>&2
249	exit 1
250	;;
251esac
252
253# Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
254# updated in each machine entry.  Also set default extra_headers for some
255# machines.
256tm_p_file=
257cpu_type=`echo ${target} | sed 's/-.*$//'`
258cpu_is_64bit=
259case ${target} in
260m32c*-*-*)
261        cpu_type=m32c
262	tmake_file=m32c/t-m32c
263        ;;
264alpha*-*-*)
265	cpu_type=alpha
266	need_64bit_hwint=yes
267	;;
268am33_2.0-*-linux*)
269	cpu_type=mn10300
270	;;
271arm*-*-*)
272	cpu_type=arm
273	extra_headers="mmintrin.h arm_neon.h"
274	c_target_objs="arm-c.o"
275	cxx_target_objs="arm-c.o"
276	;;
277avr-*-*)
278	cpu_type=avr
279	c_target_objs="avr-c.o"
280	cxx_target_objs="avr-c.o"
281	;;
282bfin*-*)
283	cpu_type=bfin
284	;;
285crisv32-*)
286	cpu_type=cris
287	;;
288frv*)	cpu_type=frv
289	;;
290moxie*)	cpu_type=moxie
291	;;
292fido-*-*)
293	cpu_type=m68k
294	extra_headers=math-68881.h
295        ;;
296i[34567]86-*-*)
297	cpu_type=i386
298	c_target_objs="i386-c.o"
299	cxx_target_objs="i386-c.o"
300	extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
301		       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
302		       nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
303		       immintrin.h x86intrin.h avxintrin.h xopintrin.h
304		       ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
305		       abmintrin.h"
306	;;
307x86_64-*-*)
308	cpu_type=i386
309	c_target_objs="i386-c.o"
310	cxx_target_objs="i386-c.o"
311	extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
312		       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
313		       nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
314		       immintrin.h x86intrin.h avxintrin.h xopintrin.h
315		       ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
316		       abmintrin.h"
317	need_64bit_hwint=yes
318	;;
319ia64-*-*)
320	extra_headers=ia64intrin.h
321	need_64bit_hwint=yes
322	;;
323hppa*-*-*)
324	cpu_type=pa
325	;;
326m32r*-*-*)
327        cpu_type=m32r
328        ;;
329m5200-*-*|m5407-*-*)
330	cpu_type=m68k
331	extra_headers=math-68881.h
332	;;
333m680[012]0-*-*)
334	cpu_type=m68k
335	extra_headers=math-68881.h
336	;;
337m68k-*-*)
338	extra_headers=math-68881.h
339	;;
340mips*-*-*)
341	cpu_type=mips
342	need_64bit_hwint=yes
343	extra_headers="loongson.h"
344	;;
345picochip-*-*)
346        cpu_type=picochip
347        ;;
348powerpc*-*-*)
349	cpu_type=rs6000
350	extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h"
351	need_64bit_hwint=yes
352	case x$with_cpu in
353	    xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[34567]|xpower6x|xrs64a|xcell|xa2|xe500mc64)
354		cpu_is_64bit=yes
355		;;
356	esac
357	;;
358rs6000*-*-*)
359	need_64bit_hwint=yes
360	;;
361score*-*-*)
362	cpu_type=score
363	;;
364sparc*-*-*)
365	cpu_type=sparc
366	need_64bit_hwint=yes
367	;;
368spu*-*-*)
369	cpu_type=spu
370	need_64bit_hwint=yes
371	;;
372s390*-*-*)
373	cpu_type=s390
374	need_64bit_hwint=yes
375	;;
376# Note the 'l'; we need to be able to match e.g. "shle" or "shl".
377sh[123456789lbe]*-*-* | sh-*-*)
378	cpu_type=sh
379	need_64bit_hwint=yes
380	;;
381esac
382
383tm_file=${cpu_type}/${cpu_type}.h
384if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
385then
386	tm_p_file=${cpu_type}/${cpu_type}-protos.h
387fi
388extra_modes=
389if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
390then
391	extra_modes=${cpu_type}/${cpu_type}-modes.def
392fi
393if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
394then
395	extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
396fi
397
398case ${target} in
399i[34567]86-*-*)
400	if test "x$enable_cld" = xyes; then
401		tm_defines="${tm_defines} USE_IX86_CLD=1"
402	fi
403	tm_file="vxworks-dummy.h ${tm_file}"
404	;;
405x86_64-*-*)
406	tm_file="i386/biarch64.h ${tm_file}"
407	if test "x$enable_cld" = xyes; then
408		tm_defines="${tm_defines} USE_IX86_CLD=1"
409	fi
410	tm_file="vxworks-dummy.h ${tm_file}"
411	;;
412esac
413
414# On a.out targets, we need to use collect2.
415case ${target} in
416*-*-*aout*)
417	use_collect2=yes
418	;;
419esac
420
421# Common parts for widely ported systems.
422case ${target} in
423*-*-darwin*)
424  tmake_file="t-darwin ${cpu_type}/t-darwin"
425  tm_file="${tm_file} darwin.h"
426  case ${target} in
427  *-*-darwin9*)
428    tm_file="${tm_file} darwin9.h"
429    ;;
430  *-*-darwin[12][0-9]*)
431    tm_file="${tm_file} darwin9.h darwin10.h"
432    ;;
433  esac
434  tm_file="${tm_file} ${cpu_type}/darwin.h"
435  tm_p_file="${tm_p_file} darwin-protos.h"
436  target_gtfiles="\$(srcdir)/config/darwin.c"
437  extra_options="${extra_options} darwin.opt"
438  c_target_objs="${c_target_objs} darwin-c.o"
439  cxx_target_objs="${cxx_target_objs} darwin-c.o"
440  fortran_target_objs="darwin-f.o"
441  extra_objs="darwin.o"
442  extra_gcc_objs="darwin-driver.o"
443  default_use_cxa_atexit=yes
444  use_gcc_stdint=wrap
445  case ${enable_threads} in
446    "" | yes | posix) thread_file='posix' ;;
447  esac
448  ;;
449*-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*)
450  # This is the place-holder for the generic a.out configuration
451  # of FreeBSD.  No actual configuration resides here since
452  # there was only ever a bare-bones ix86 configuration for
453  # a.out and it exists solely in the machine-specific section.
454  # This place-holder must exist to avoid dropping into
455  # the generic ELF configuration of FreeBSD (i.e. it must be
456  # ordered before that section).
457  ;;
458*-*-freebsd*)
459  # This is the generic ELF configuration of FreeBSD.  Later
460  # machine-specific sections may refine and add to this
461  # configuration.
462  #
463  # Due to tm_file entry ordering issues that vary between cpu
464  # architectures, we only define fbsd_tm_file to allow the
465  # machine-specific section to dictate the final order of all
466  # entries of tm_file with the minor exception that components
467  # of the tm_file set here will always be of the form:
468  #
469  # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
470  #
471  # The machine-specific section should not tamper with this
472  # ordering but may order all other entries of tm_file as it
473  # pleases around the provided core setting.
474  gas=yes
475  gnu_ld=yes
476  extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
477  fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
478  tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
479  tmake_file="t-slibgcc-elf-ver t-freebsd"
480  case ${enable_threads} in
481    no)
482      fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
483      ;;
484    "" | yes | posix)
485      thread_file='posix'
486      tmake_file="${tmake_file} t-freebsd-thread"
487      # Before 5.0, FreeBSD can't bind shared libraries to -lc
488      # when "optionally" threaded via weak pthread_* checks.
489      case ${target} in
490        *-*-freebsd[34] | *-*-freebsd[34].*)
491          tmake_file="${tmake_file} t-slibgcc-nolc-override"
492          ;;
493      esac
494      ;;
495    *)
496      echo 'Unknown thread configuration for FreeBSD'
497      exit 1
498      ;;
499  esac
500  fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
501  case ${target} in
502    *-*-freebsd[345].*)
503      :;;
504    *)
505      default_use_cxa_atexit=yes;;
506  esac
507  # need_64bit_hwint=yes # system compiler has this for all arch!
508  use_gcc_stdint=wrap
509  ;;
510*-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
511  extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
512  gas=yes
513  gnu_ld=yes
514  case ${enable_threads} in
515    "" | yes | posix) thread_file='posix' ;;
516  esac
517  tmake_file="t-slibgcc-elf-ver t-linux"
518  case $target in
519    *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu)
520      :;;
521    *-*-gnu*)
522      tmake_file="$tmake_file t-gnu";;
523  esac
524  # glibc / uclibc switch.  uclibc isn't usable for GNU/Hurd and neither for
525  # GNU/k*BSD.
526  case $target in
527    *linux*)
528      extra_options="$extra_options linux.opt";;
529    *)
530      tm_defines="$tm_defines OPTION_GLIBC=1";;
531  esac
532  case ${target} in
533    *-*-*uclibc*)
534      tm_defines="${tm_defines} UCLIBC_DEFAULT=1"
535      ;;
536    *)
537      tm_defines="${tm_defines} UCLIBC_DEFAULT=0"
538      ;;
539  esac
540  # Assume that glibc or uClibc are being used and so __cxa_atexit is provided.
541  default_use_cxa_atexit=yes
542  use_gcc_tgmath=no
543  use_gcc_stdint=wrap
544  ;;
545*-*-netbsd*)
546  tmake_file="t-slibgcc-elf-ver t-libc-ok t-netbsd t-libgcc-pic"
547  gas=yes
548  gnu_ld=yes
549
550  # NetBSD 2.0 and later get POSIX threads enabled by default.
551  # Allow them to be explicitly enabled on any other version.
552  case ${enable_threads} in
553    "")
554      case ${target} in
555        *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
556          thread_file='posix'
557          tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
558          ;;
559      esac
560      ;;
561    yes | posix)
562      thread_file='posix'
563      tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
564      ;;
565  esac
566
567  # NetBSD 1.7 and later are set up to use GCC's crtstuff for
568  # ELF configurations.  We will clear extra_parts in the
569  # a.out configurations.
570  case ${target} in
571    *-*-netbsd*1.[7-9]* | *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
572      extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
573      ;;
574  esac
575
576  # NetBSD 2.0 and later provide __cxa_atexit(), which we use by
577  # default (unless overridden by --disable-__cxa_atexit).
578  case ${target} in
579    *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
580      default_use_cxa_atexit=yes
581      ;;
582  esac
583  ;;
584*-*-openbsd*)
585  tmake_file="t-libc-ok t-openbsd t-libgcc-pic"
586  case ${enable_threads} in
587    yes)
588      thread_file='posix'
589      tmake_file="${tmake_file} t-openbsd-thread"
590      ;;
591  esac
592  case ${target} in
593    *-*-openbsd2.*|*-*-openbsd3.[012])
594      tm_defines="${tm_defines} HAS_LIBC_R=1" ;;
595  esac
596  ;;
597*-*-rtems*)
598  case ${enable_threads} in
599    yes) thread_file='rtems' ;;
600  esac
601  use_gcc_stdint=wrap
602  ;;
603*-*-uclinux*)
604  use_gcc_stdint=wrap
605  ;;
606*-*-vxworks*)
607  tmake_file=t-vxworks
608  xm_defines=POSIX
609  extra_options="${extra_options} vxworks.opt"
610  extra_objs=vxworks.o
611  case ${enable_threads} in
612    no) ;;
613    "" | yes | vxworks) thread_file='vxworks' ;;
614    *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
615  esac
616  ;;
617*-*-elf)
618  # Assume that newlib is being used and so __cxa_atexit is provided.
619  default_use_cxa_atexit=yes
620  use_gcc_stdint=wrap
621  ;;
622esac
623
624case ${target} in
625# Support site-specific machine types.
626*local*)
627	rest=`echo ${target} | sed -e "s/$cpu_type-//"`
628	tm_file=${cpu_type}/$rest.h
629	if test -f $srcdir/config/${cpu_type}/xm-$rest.h
630	then xm_file=${cpu_type}/xm-$rest.h
631	fi
632	if test -f $srcdir/config/${cpu_type}/t-$rest
633	then tmake_file=${cpu_type}/t-$rest
634	fi
635	;;
636alpha*-*-linux*)
637	tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
638	target_cpu_default="MASK_GAS"
639	tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee alpha/t-linux"
640	;;
641alpha*-*-gnu*)
642	tm_file="$tm_file alpha/elf.h alpha/linux.h alpha/linux-elf.h gnu.h glibc-stdint.h alpha/gnu.h"
643	target_cpu_default="MASK_GAS"
644	tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee"
645	;;
646alpha*-*-freebsd*)
647	tm_file="${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
648	target_cpu_default="MASK_GAS"
649	tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee"
650	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
651	;;
652alpha*-*-netbsd*)
653	tm_file="${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
654	target_cpu_default="MASK_GAS"
655	tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
656	;;
657alpha*-*-openbsd*)
658	tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
659	tm_file="alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
660	# default x-alpha is only appropriate for dec-osf.
661	target_cpu_default="MASK_GAS"
662	tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
663	;;
664alpha*-dec-osf[45]*)
665	if test x$stabs = xyes
666	then
667		tm_file="${tm_file} dbx.h"
668	fi
669	if test x$gas != xyes
670	then
671		extra_passes="mips-tfile mips-tdump"
672	fi
673	use_collect2=yes
674	tmake_file="alpha/t-alpha alpha/t-ieee alpha/t-crtfm alpha/t-osf4"
675	tm_file="${tm_file} alpha/osf.h"
676	extra_headers=va_list.h
677	use_gcc_stdint=provide
678	case ${target} in
679	  *-*-osf4*)
680	    # Define TARGET_SUPPORT_ARCH except on 4.0a.
681	    case ${target} in
682		*-*-osf4.0a) ;;
683		*) tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1"
684	    esac
685	    ;;
686	  *-*-osf5*)
687	    tm_file="${tm_file} alpha/osf5.h"
688	    tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1"
689	    ;;
690	esac
691	case ${enable_threads} in
692	  "" | yes | posix)
693	    thread_file='posix'
694	    tmake_file="${tmake_file} alpha/t-osf-pthread"
695	    ;;
696	esac
697	;;
698alpha64-dec-*vms*)
699	tm_file="${tm_file} alpha/vms.h alpha/vms64.h"
700	xm_file="alpha/xm-vms.h vms/xm-vms64.h"
701	tmake_file="alpha/t-alpha vms/t-vms vms/t-vms64 alpha/t-vms alpha/t-ieee"
702	xmake_file=vms/x-vms
703	exeext=.exe
704	install_headers_dir=install-headers-cp
705	extra_options="${extra_options} vms/vms.opt"
706	;;
707alpha*-dec-*vms*)
708	tm_file="${tm_file} alpha/vms.h"
709	xm_file="alpha/xm-vms.h"
710	tmake_file="alpha/t-alpha vms/t-vms alpha/t-vms alpha/t-ieee"
711	xmake_file=vms/x-vms
712	exeext=.exe
713	install_headers_dir=install-headers-cp
714	extra_options="${extra_options} vms/vms.opt"
715	;;
716arc-*-elf*)
717	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}"
718	extra_parts="crtinit.o crtfini.o"
719	;;
720arm-wrs-vxworks)
721	tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
722	tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
723	;;
724arm*-*-freebsd*)
725	tm_file="dbxelf.h elfos.h ${fbsd_tm_file} arm/elf.h arm/aout.h arm/freebsd.h arm/arm.h"
726	tmake_file="${tmake_file} arm/t-arm arm/t-strongarm-elf"
727	;;
728arm*-*-netbsdelf*)
729	tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h arm/arm.h"
730	case ${target} in
731	arm*eb-*) tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1" ;;
732	esac
733	tmake_file="${tmake_file} arm/t-arm"
734	case ${target} in
735	arm*-*-netbsdelf-*eabi*)
736	    tm_file="$tm_file arm/bpabi.h arm/netbsd-elf.h arm/netbsd-eabi.h"
737	    #tmake_file="$tmake_file arm/t-arm-elf"
738	    #tmake_file="$tmake_file arm/t-bpabi"
739	    tmake_file="$tmake_file arm/t-netbsd-eabi"
740  	    # The BPABI long long divmod functions return a 128-bit value in
741	    # registers r0-r3.  Correctly modeling that requires the use of
742	    # TImode.
743	    need_64bit_hwint=yes
744	    # The EABI requires the use of __cxa_atexit.
745	    default_use_cxa_atexit=yes
746	    ;;
747	*)
748	    tm_file="$tm_file arm/netbsd-elf.h"
749	    tmake_file="$tmake_file arm/t-netbsd"
750	    ;;
751	esac
752	case ${target} in
753	arm*-*-netbsdelf-*eabihf*)
754	    tm_defines="${tm_defines} TARGET_DEFAULT_FLOAT_ABI=ARM_FLOAT_ABI_HARD"
755	    ;;
756	esac
757	case ${target} in
758	armv4*) with_cpu=${with_cpu:-strongarm};;
759	armv6*) with_cpu=${with_cpu:-arm1176jzf-s};;
760	armv7*) with_cpu=${with_cpu:-cortex-a8};;
761	esac
762	;;
763arm*-*-netbsd*)
764	tm_file="arm/aout.h arm/arm.h netbsd.h netbsd-aout.h arm/netbsd.h"
765	tmake_file="t-netbsd arm/t-arm arm/t-netbsd"
766	extra_parts=""
767	use_collect2=yes
768	;;
769arm*-*-linux*)			# ARM GNU/Linux with ELF
770	tm_file="dbxelf.h elfos.h linux.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
771	case $target in
772	arm*b-*-linux*)
773		tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
774		;;
775	esac
776	tmake_file="${tmake_file} t-linux arm/t-arm"
777	case ${target} in
778	arm*-*-linux-*eabi)
779	    tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
780	    tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc"
781  	    # The BPABI long long divmod functions return a 128-bit value in
782	    # registers r0-r3.  Correctly modeling that requires the use of
783	    # TImode.
784	    need_64bit_hwint=yes
785	    # The EABI requires the use of __cxa_atexit.
786	    default_use_cxa_atexit=yes
787	    ;;
788	*)
789	    tmake_file="$tmake_file arm/t-linux"
790	    ;;
791	esac
792	tm_file="$tm_file arm/aout.h arm/arm.h"
793	tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
794	;;
795arm*-*-uclinux*)		# ARM ucLinux
796	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
797	tmake_file="arm/t-arm arm/t-arm-elf"
798	case ${target} in
799	arm*-*-uclinux*eabi)
800	    tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h"
801	    tmake_file="$tmake_file arm/t-bpabi"
802  	    # The BPABI long long divmod functions return a 128-bit value in
803	    # registers r0-r3.  Correctly modeling that requires the use of
804	    # TImode.
805	    need_64bit_hwint=yes
806	    # The EABI requires the use of __cxa_atexit.
807	    default_use_cxa_atexit=yes
808	esac
809	tm_file="$tm_file arm/aout.h arm/arm.h"
810	tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
811	;;
812arm*-*-ecos-elf)
813	tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/ecos-elf.h"
814	tmake_file="arm/t-arm arm/t-arm-elf"
815	tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
816	;;
817arm*-*-eabi* | arm*-*-symbianelf* )
818	# The BPABI long long divmod functions return a 128-bit value in
819	# registers r0-r3.  Correctly modeling that requires the use of
820	# TImode.
821	need_64bit_hwint=yes
822	default_use_cxa_atexit=yes
823	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
824	tmake_file="arm/t-arm arm/t-arm-elf"
825	case ${target} in
826	arm*-*-eabi*)
827	  tm_file="$tm_file arm/eabi.h newlib-stdint.h"
828	  tmake_file="${tmake_file} arm/t-bpabi"
829	  extra_options="${extra_options} arm/eabi.opt"
830	  use_gcc_stdint=wrap
831	  ;;
832	arm*-*-symbianelf*)
833	  tm_file="${tm_file} arm/symbian.h"
834	  # We do not include t-bpabi for Symbian OS because the system
835	  # provides its own implementation of the BPABI functions.
836	  tmake_file="${tmake_file} arm/t-symbian"
837	  ;;
838	esac
839	tm_file="${tm_file} arm/aout.h arm/arm.h"
840	tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
841	;;
842arm*-*-rtems*)
843	tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h arm/rtems-elf.h rtems.h newlib-stdint.h"
844	tmake_file="arm/t-arm arm/t-arm-elf t-rtems arm/t-rtems"
845	tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
846	;;
847arm*-*-elf)
848	tm_file="dbxelf.h elfos.h newlib-stdint.h arm/unknown-elf.h arm/elf.h arm/aout.h arm/arm.h"
849	tmake_file="arm/t-arm arm/t-arm-elf"
850	tmake_file="${tmake_file} arm/t-arm-softfp soft-fp/t-softfp"
851	;;
852arm*-wince-pe*)
853	tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h arm/wince-pe.h"
854	tmake_file="arm/t-arm arm/t-wince-pe"
855	extra_options="${extra_options} arm/pe.opt"
856	extra_objs="pe.o"
857	;;
858arm-*-pe*)
859	tm_file="arm/semi.h arm/aout.h arm/arm.h arm/coff.h dbxcoff.h arm/pe.h newlib-stdint.h"
860	tmake_file="arm/t-arm arm/t-pe"
861	use_gcc_stdint=wrap
862	extra_options="${extra_options} arm/pe.opt"
863	extra_objs="pe.o"
864	;;
865avr-*-rtems*)
866	tm_file="avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
867	tmake_file="avr/t-avr t-rtems avr/t-rtems"
868	extra_gcc_objs="driver-avr.o avr-devices.o"
869	extra_objs="avr-devices.o"
870	;;
871avr-*-*)
872	tm_file="avr/avr.h dbxelf.h avr/avr-stdint.h"
873	use_gcc_stdint=wrap
874	extra_gcc_objs="driver-avr.o avr-devices.o"
875	extra_objs="avr-devices.o"
876	;;
877bfin*-elf*)
878	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
879	tmake_file=bfin/t-bfin-elf
880	use_collect2=no
881	;;
882bfin*-uclinux*)
883	tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h linux.h glibc-stdint.h bfin/uclinux.h"
884	tmake_file=bfin/t-bfin-uclinux
885	tm_defines="${tm_defines} UCLIBC_DEFAULT=1"
886	extra_options="${extra_options} linux.opt"
887	use_collect2=no
888	;;
889bfin*-linux-uclibc*)
890	tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h linux.h glibc-stdint.h bfin/linux.h ./linux-sysroot-suffix.h"
891	tmake_file="t-slibgcc-elf-ver bfin/t-bfin-linux"
892	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
893	use_collect2=no
894	;;
895bfin*-rtems*)
896	tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
897	tmake_file="bfin/t-bfin t-rtems bfin/t-rtems"
898	;;
899bfin*-*)
900	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
901	tmake_file=bfin/t-bfin
902	use_collect2=no
903	use_gcc_stdint=wrap
904	;;
905crisv32-*-elf | crisv32-*-none)
906	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
907	tmake_file="cris/t-cris"
908	target_cpu_default=32
909	gas=yes
910	extra_options="${extra_options} cris/elf.opt"
911	use_gcc_stdint=wrap
912	;;
913cris-*-elf | cris-*-none)
914	tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
915	tmake_file="cris/t-cris cris/t-elfmulti"
916	gas=yes
917	extra_options="${extra_options} cris/elf.opt"
918	use_gcc_stdint=wrap
919	;;
920crisv32-*-linux* | cris-*-linux*)
921	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h glibc-stdint.h cris/linux.h"
922	# We need to avoid using t-linux, so override default tmake_file
923	tmake_file="cris/t-cris t-slibgcc-elf-ver cris/t-linux"
924	extra_options="${extra_options} cris/linux.opt"
925	case $target in
926	  cris-*-*)
927		target_cpu_default=10
928		;;
929	  crisv32-*-*)
930		target_cpu_default=32
931		;;
932	esac
933	;;
934crx-*-elf)
935	tm_file="elfos.h newlib-stdint.h ${tm_file}"
936	extra_parts="crtbegin.o crtend.o"
937	use_collect2=no
938	;;
939fr30-*-elf)
940	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}"
941	tmake_file=fr30/t-fr30
942	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
943	;;
944frv-*-elf)
945	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file} frv/frv-abi.h"
946	tmake_file=frv/t-frv
947	;;
948frv-*-*linux*)
949	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} \
950	         linux.h glibc-stdint.h frv/linux.h frv/frv-abi.h"
951	tmake_file="${tmake_file} frv/t-frv frv/t-linux"
952	;;
953moxie-*-elf)
954	gas=yes
955	gnu_ld=yes
956	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
957	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
958	tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp"
959	;;
960moxie-*-uclinux*)
961	gas=yes
962	gnu_ld=yes
963	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} linux.h glibc-stdint.h moxie/uclinux.h"
964	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
965	tmake_file="${tmake_file} moxie/t-moxie moxie/t-moxie-softfp soft-fp/t-softfp"
966	tm_defines="${tm_defines} UCLIBC_DEFAULT=1"
967	extra_options="${extra_options} linux.opt"
968	;;
969h8300-*-rtems*)
970	tmake_file="h8300/t-h8300 h8300/t-elf t-rtems h8300/t-rtems"
971	tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
972	;;
973h8300-*-elf*)
974	tmake_file="h8300/t-h8300 h8300/t-elf"
975	tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
976	;;
977hppa*64*-*-linux*)
978	target_cpu_default="MASK_PA_11|MASK_PA_20"
979	tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h svr4.h linux.h \
980		 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
981		 pa/pa64-linux.h"
982	tmake_file="${tmake_file} pa/t-linux64"
983	gas=yes gnu_ld=yes
984	need_64bit_hwint=yes
985	;;
986hppa*-*-linux*)
987	target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
988	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h pa/pa-linux.h \
989		 pa/pa32-regs.h pa/pa32-linux.h"
990	tmake_file="${tmake_file} pa/t-linux t-slibgcc-libgcc"
991	# Set the libgcc version number
992	if test x$sjlj = x1; then
993	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
994	else
995	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
996	fi
997	;;
998hppa*-*-netbsd* | parisc*-*-netbsd*)
999	target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1000	tm_file="${tm_file} dbxelf.h elfos.h svr4.h netbsd.h netbsd-elf.h \
1001		 pa/pa-netbsd.h pa/pa32-regs.h pa/pa32-netbsd.h"
1002	tmake_file="${tmake_file} pa/t-netbsd"
1003	;;
1004# port not yet contributed.
1005#hppa*-*-openbsd*)
1006#	target_cpu_default="MASK_PA_11"
1007#	;;
1008hppa[12]*-*-hpux10*)
1009	case ${target} in
1010	hppa1.1-*-* | hppa2*-*-*)
1011		target_cpu_default="MASK_PA_11"
1012		;;
1013	esac
1014	tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1015		 pa/pa-hpux.h pa/pa-hpux10.h"
1016	extra_options="${extra_options} pa/pa-hpux.opt"
1017	case ${target} in
1018	*-*-hpux10.[1-9]*)
1019		tm_file="${tm_file} pa/pa-hpux1010.h"
1020		extra_options="${extra_options} pa/pa-hpux1010.opt"
1021		;;
1022	esac
1023	use_gcc_stdint=provide
1024	tm_file="${tm_file} hpux-stdint.h"
1025	tmake_file="pa/t-pa-hpux10 pa/t-pa-hpux pa/t-hpux-shlib"
1026	case ${enable_threads} in
1027	  "")
1028	    if test x$have_pthread_h = xyes ; then
1029	      tmake_file="${tmake_file} pa/t-dce-thr"
1030	    fi
1031	    ;;
1032	  yes | dce)
1033	    tmake_file="${tmake_file} pa/t-dce-thr"
1034	    ;;
1035	esac
1036	# Set the libgcc version number
1037	if test x$sjlj = x1; then
1038	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
1039	else
1040	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
1041	fi
1042	use_collect2=yes
1043	gas=yes
1044	;;
1045hppa*64*-*-hpux11*)
1046	target_cpu_default="MASK_PA_11|MASK_PA_20"
1047	if test x$gnu_ld = xyes
1048	then
1049		target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1050	fi
1051	tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1052		 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1053		 pa/pa-hpux11.h"
1054	case ${target} in
1055	*-*-hpux11.[1-9]*)
1056		tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1057		extra_options="${extra_options} pa/pa-hpux1111.opt"
1058		;;
1059	*)
1060		tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1061		;;
1062	esac
1063	extra_options="${extra_options} pa/pa-hpux.opt \
1064		       pa/pa-hpux1010.opt pa/pa64-hpux.opt"
1065	need_64bit_hwint=yes
1066	tmake_file="pa/t-pa64 pa/t-pa-hpux pa/t-hpux-shlib"
1067	# Set the libgcc version number
1068	if test x$sjlj = x1; then
1069	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
1070	else
1071	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
1072	fi
1073	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \
1074		     libgcc_stub.a"
1075	case x${enable_threads} in
1076	x | xyes | xposix )
1077		thread_file=posix
1078		;;
1079	esac
1080	gas=yes
1081	case ${target} in
1082	  *-*-hpux11.[01]*)
1083		use_gcc_stdint=provide
1084		tm_file="${tm_file} hpux-stdint.h"
1085		;;
1086	  *-*-hpux11.[23]*)
1087		use_gcc_stdint=wrap
1088		tm_file="${tm_file} hpux-stdint.h"
1089		;;
1090	esac
1091	;;
1092hppa[12]*-*-hpux11*)
1093	case ${target} in
1094	hppa1.1-*-* | hppa2*-*-*)
1095		target_cpu_default="MASK_PA_11"
1096		;;
1097	esac
1098	tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1099		 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1100	extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt"
1101	case ${target} in
1102	*-*-hpux11.[1-9]*)
1103		tm_file="${tm_file} pa/pa-hpux1111.h"
1104		extra_options="${extra_options} pa/pa-hpux1111.opt"
1105		;;
1106	esac
1107	tmake_file="pa/t-pa-hpux11 pa/t-pa-hpux pa/t-hpux-shlib"
1108	# Set the libgcc version number
1109	if test x$sjlj = x1; then
1110	    tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
1111	else
1112	    tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
1113	fi
1114	extra_parts="libgcc_stub.a"
1115	case x${enable_threads} in
1116	x | xyes | xposix )
1117		thread_file=posix
1118		;;
1119	esac
1120	use_collect2=yes
1121	gas=yes
1122	case ${target} in
1123	  *-*-hpux11.[01]*)
1124		use_gcc_stdint=provide
1125		tm_file="${tm_file} hpux-stdint.h"
1126		;;
1127	  *-*-hpux11.[23]*)
1128		use_gcc_stdint=wrap
1129		tm_file="${tm_file} hpux-stdint.h"
1130		;;
1131	esac
1132	;;
1133i[34567]86-*-darwin*)
1134	need_64bit_hwint=yes
1135	need_64bit_isa=yes
1136
1137	# This is so that '.../configure && make' doesn't fail due to
1138	# config.guess deciding that the configuration is i386-*-darwin* and
1139	# then this file using that to set --with-cpu=i386 which has no -m64
1140	# support.
1141	with_cpu=${with_cpu:-generic}
1142 	tmake_file="${tmake_file} t-slibgcc-darwin i386/t-crtpc i386/t-crtfm"
1143	lto_binary_reader=lto-macho
1144	;;
1145x86_64-*-darwin*)
1146	with_cpu=${with_cpu:-generic}
1147 	tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc-darwin i386/t-crtpc i386/t-crtfm"
1148	tm_file="${tm_file} ${cpu_type}/darwin64.h"
1149	lto_binary_reader=lto-macho
1150	;;
1151i[34567]86-*-elf*)
1152	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1153	tmake_file="${tmake_file} i386/t-i386elf t-svr4"
1154	;;
1155x86_64-*-elf*)
1156	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1157	tmake_file="${tmake_file} i386/t-i386elf t-svr4"
1158	;;
1159i[34567]86-*-freebsd*)
1160	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1161	;;
1162x86_64-*-freebsd*)
1163	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"
1164	tmake_file="${tmake_file} i386/t-crtstuff"
1165	;;
1166i[34567]86-*-netbsdelf*)
1167	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
1168	tmake_file="${tmake_file} i386/t-crtstuff"
1169	;;
1170i[34567]86-*-netbsd*)
1171	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/gstabs.h netbsd.h netbsd-aout.h i386/netbsd.h"
1172	tmake_file="${tmake_file} t-netbsd"
1173	extra_parts=""
1174	use_collect2=yes
1175	;;
1176x86_64-*-netbsd*)
1177	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"
1178	tmake_file="${tmake_file} i386/t-netbsd64"
1179	;;
1180i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
1181	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"
1182	# needed to unconfuse gdb
1183	tmake_file="${tmake_file} t-libc-ok t-openbsd i386/t-openbsd"
1184	# we need collect2 until our bug is fixed...
1185	use_collect2=yes
1186	;;
1187i[34567]86-*-openbsd*)
1188	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1189	tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1190	gas=yes
1191	gnu_ld=yes
1192	;;
1193i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1194			# Intel 80386's running GNU/*
1195			# with ELF format using glibc 2
1196	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h"
1197	case ${target} in
1198	i[34567]86-*-linux*)
1199		if test x$enable_targets = xall; then
1200			tm_file="${tm_file} i386/x86-64.h i386/linux64.h"
1201			tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1202			tmake_file="${tmake_file} i386/t-linux64"
1203			need_64bit_hwint=yes
1204			need_64bit_isa=yes
1205			case X"${with_cpu}" in
1206			Xgeneric|Xatom|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
1207				;;
1208			X)
1209				if test x$with_cpu_64 = x; then
1210					with_cpu_64=generic
1211				fi
1212				;;
1213			*)
1214				echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1215				echo "generic atom core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
1216				exit 1
1217				;;
1218			esac
1219		else
1220			tm_file="${tm_file} i386/linux.h"
1221		fi
1222		;;
1223	i[34567]86-*-knetbsd*-gnu) tm_file="${tm_file} i386/linux.h knetbsd-gnu.h i386/knetbsd-gnu.h" ;;
1224	i[34567]86-*-kfreebsd*-gnu) tm_file="${tm_file} i386/linux.h kfreebsd-gnu.h i386/kfreebsd-gnu.h" ;;
1225	i[34567]86-*-kopensolaris*-gnu) tm_file="${tm_file} i386/linux.h kopensolaris-gnu.h i386/kopensolaris-gnu.h" ;;
1226	i[34567]86-*-gnu*) tm_file="$tm_file i386/linux.h gnu.h i386/gnu.h";;
1227	esac
1228	tmake_file="${tmake_file} i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules"
1229	;;
1230x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
1231	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h \
1232		 i386/x86-64.h i386/linux64.h"
1233	case ${target} in
1234	x86_64-*-kfreebsd*-gnu) tm_file="${tm_file} kfreebsd-gnu.h" ;;
1235	x86_64-*-knetbsd*-gnu) tm_file="${tm_file} knetbsd-gnu.h" ;;
1236	esac
1237	tmake_file="${tmake_file} i386/t-linux64 i386/t-crtstuff i386/t-crtpc i386/t-crtfm t-dfprules"
1238	;;
1239i[34567]86-pc-msdosdjgpp*)
1240	xm_file=i386/xm-djgpp.h
1241	tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h"
1242	tmake_file="${tmake_file} i386/t-djgpp"
1243	extra_options="${extra_options} i386/djgpp.opt"
1244	gnu_ld=yes
1245	gas=yes
1246	use_gcc_stdint=wrap
1247	;;
1248i[34567]86-*-lynxos*)
1249	xm_defines=POSIX
1250	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1251	tmake_file="${tmake_file} i386/t-crtstuff t-lynx"
1252	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
1253	extra_options="${extra_options} lynx.opt"
1254	thread_file=lynx
1255	gnu_ld=yes
1256	gas=yes
1257	;;
1258i[3456x]86-*-netware*)
1259	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h tm-dwarf2.h i386/netware.h"
1260 	tmake_file="${tmake_file} i386/t-netware"
1261	extra_objs=netware.o
1262	case /${with_ld} in
1263	*/nwld)
1264		extra_objs="$extra_objs nwld.o"
1265		tm_file="${tm_file} i386/nwld.h"
1266	 	tmake_file="${tmake_file} i386/t-nwld"
1267		extra_parts="crt0.o libgcc.def libc.def libcpre.def posixpre.def"
1268		;;
1269	esac
1270	case x${enable_threads} in
1271	x | xyes | xposix) thread_file='posix';;
1272	xnks) thread_file='nks';;
1273	xno) ;;
1274	*) echo 'Unknown thread configuration for NetWare' >&2; exit 1;;
1275	esac
1276	;;
1277i[34567]86-*-nto-qnx*)
1278	tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h svr4.h i386/unix.h i386/nto.h"
1279	tmake_file="${tmake_file} i386/t-nto"
1280	gnu_ld=yes
1281	gas=yes
1282	;;
1283i[34567]86-*-rtems*)
1284	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"
1285	extra_parts="crtbegin.o crtend.o crti.o crtn.o"
1286	tmake_file="${tmake_file} i386/t-rtems-i386 i386/t-crtstuff t-rtems"
1287	;;
1288i[34567]86-*-solaris2*)
1289	tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h"
1290	# Set default arch_32 to pentium4, tune_32 to generic like the other
1291	# i386 targets, although config.guess defaults to i386-pc-solaris2*.
1292	case ${target} in
1293	*-*-solaris2.[89]*)
1294		# Solaris 8 and 9/x86 cannot execute SSE/SSE2 instructions by
1295		# default.
1296		with_arch_32=${with_arch_32:-pentiumpro}
1297		;;
1298	*)
1299		with_arch_32=${with_arch_32:-pentium4}
1300		;;
1301	esac
1302	with_tune_32=${with_tune_32:-generic}
1303	case ${target} in
1304	*-*-solaris2.1[0-9]*)
1305		tm_file="${tm_file} sol2-10.h"
1306		;;
1307	esac
1308	tm_file="${tm_file} i386/sol2.h"
1309	if test x$gnu_ld = xyes; then
1310		tm_file="${tm_file} sol2-gld.h"
1311	fi
1312	if test x$gas = xyes; then
1313		tm_file="${tm_file} i386/sol2-gas.h"
1314	fi
1315	tmake_file="${tmake_file} t-sol2 t-svr4"
1316	c_target_objs="${c_target_objs} sol2-c.o"
1317	cxx_target_objs="${cxx_target_objs} sol2-c.o"
1318	extra_objs="sol2.o"
1319	tm_p_file="${tm_p_file} sol2-protos.h"
1320	if test x$gnu_ld = xyes; then
1321		tmake_file="$tmake_file t-slibgcc-elf-ver"
1322		tm_defines="${tm_defines} TARGET_GNU_LD=1"
1323	else
1324		tmake_file="$tmake_file t-slibgcc-sld"
1325	fi
1326	if test x$gas = xyes; then
1327		tm_file="usegas.h ${tm_file}"
1328	fi
1329	tm_file="$tm_file tm-dwarf2.h"
1330	case ${target} in
1331	*-*-solaris2.1[0-9]*)
1332		tm_file="${tm_file} i386/x86-64.h i386/sol2-10.h"
1333		tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1334		tmake_file="$tmake_file i386/t-sol2-10"
1335		# i386/t-crtstuff only affects libgcc.  Its inclusion
1336		# depends on a runtime test and is thus performed in
1337		# libgcc/configure.ac instead.
1338		need_64bit_hwint=yes
1339		need_64bit_isa=yes
1340		use_gcc_stdint=wrap
1341		case X"${with_cpu}" in
1342		Xgeneric|Xatom|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
1343			;;
1344		X)
1345			if test x$with_cpu_64 = x; then
1346				with_cpu_64=generic
1347			fi
1348			;;
1349		*)
1350			echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1351			echo "generic atom core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
1352			exit 1
1353			;;
1354		esac
1355		;;
1356	*)
1357		use_gcc_stdint=provide
1358		;;
1359	esac
1360	case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
1361	  "":yes:* | yes:yes:* )
1362		thread_file=posix
1363		;;
1364	  "":*:yes | yes:*:yes )
1365		thread_file=solaris
1366		;;
1367	esac
1368	;;
1369i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
1370	tm_file="${tm_file} i386/unix.h i386/att.h elfos.h svr4.h vx-common.h"
1371	case ${target} in
1372	  *-vxworksae*)
1373	    tm_file="${tm_file} vxworksae.h i386/vx-common.h i386/vxworksae.h"
1374	    tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1375	    ;;
1376	  *)
1377	    tm_file="${tm_file} vxworks.h i386/vx-common.h i386/vxworks.h"
1378	    tmake_file="${tmake_file} i386/t-vxworks"
1379	    ;;
1380	esac
1381	;;
1382i[34567]86-*-pe | i[34567]86-*-cygwin*)
1383	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"
1384	xm_file=i386/xm-cygwin.h
1385	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
1386	if test x$sjlj = x0; then
1387		tmake_eh_file="i386/t-dw2-eh"
1388	else
1389		tmake_eh_file="i386/t-sjlj-eh"
1390	fi
1391	tmake_file="${tmake_file} ${tmake_eh_file} i386/t-cygming i386/t-cygwin"
1392	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1393	extra_options="${extra_options} i386/cygming.opt"
1394	extra_objs="winnt.o winnt-stubs.o"
1395	c_target_objs="${c_target_objs} cygwin2.o msformat-c.o"
1396	cxx_target_objs="${cxx_target_objs} cygwin2.o winnt-cxx.o msformat-c.o"
1397	extra_gcc_objs=cygwin1.o
1398	if test x$enable_threads = xyes; then
1399		thread_file='posix'
1400	fi
1401	use_gcc_stdint=wrap
1402	lto_binary_reader=lto-coff
1403	;;
1404i[34567]86-*-mingw* | x86_64-*-mingw*)
1405	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/mingw32.h"
1406	xm_file=i386/xm-mingw32.h
1407	case ${target} in
1408		x86_64-*-* | *-w64-*)
1409			need_64bit_hwint=yes
1410			need_64bit_isa=yes
1411			;;
1412		*)
1413			;;
1414	esac
1415	# This makes the logic if mingw's or the w64 feature set has to be used
1416	case ${target} in
1417		*-w64-*)
1418			tm_file="${tm_file} i386/mingw-w64.h"
1419			if test x$enable_targets = xall; then
1420				tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1421				case X"${with_cpu}" in
1422				Xgeneric|Xatom|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
1423					;;
1424				X)
1425					if test x$with_cpu_64 = x; then
1426						with_cpu_64=generic
1427					fi
1428					;;
1429				*)
1430					echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1431					echo "generic atom core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx athlon64-sse3 k8-sse3 opteron-sse3" 1>&2
1432					exit 1
1433					;;
1434				esac
1435			fi
1436			;;
1437		*)
1438			;;
1439	esac
1440	tm_file="${tm_file} i386/mingw-stdint.h"
1441	# This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h
1442	if test x$sjlj = x0; then
1443		tmake_eh_file="i386/t-dw2-eh"
1444	else
1445		tmake_eh_file="i386/t-sjlj-eh"
1446	fi
1447	tmake_file="${tmake_file} ${tmake_eh_file} i386/t-cygming"
1448        case ${target} in
1449               *-w64-*)
1450               		tmake_file="${tmake_file} i386/t-mingw-w64"
1451			;;
1452               *)
1453               		tmake_file="${tmake_file} i386/t-mingw32"
1454                     	;;
1455	esac
1456	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1457	extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1458	case ${target} in
1459		*-w64-*)
1460			extra_options="${extra_options} i386/mingw-w64.opt"
1461			;;
1462		*)
1463			;;
1464	esac
1465	extra_objs="winnt.o winnt-stubs.o"
1466	c_target_objs="${c_target_objs} msformat-c.o"
1467	cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1468	default_use_cxa_atexit=yes
1469	use_gcc_stdint=wrap
1470	lto_binary_reader=lto-coff
1471	case ${enable_threads} in
1472	  "" | yes | win32)	  thread_file='win32'
1473	  tmake_file="${tmake_file} i386/t-gthr-win32"
1474	  ;;
1475	esac
1476	case ${target} in
1477		x86_64-*-mingw*)
1478			tmake_file="${tmake_file} i386/t-crtfm"
1479			;;
1480		*)
1481			;;
1482	esac
1483	case ${target} in
1484 		*mingw32crt*)
1485 			tm_file="${tm_file} i386/crtdll.h"
1486 			;;
1487		*mingw32msv* | *mingw*)
1488			;;
1489	esac
1490	;;
1491i[34567]86-*-interix3*)
1492	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h i386/i386-interix3.h interix.h interix3.h"
1493	tmake_file="${tmake_file} i386/t-interix"
1494	extra_objs=winnt.o
1495	target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1496	if test x$enable_threads = xyes ; then
1497		thread_file='posix'
1498	fi
1499	if test x$stabs = xyes ; then
1500		tm_file="${tm_file} dbxcoff.h"
1501	fi
1502	;;
1503ia64*-*-elf*)
1504	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1505	tmake_file="ia64/t-ia64"
1506	target_cpu_default="0"
1507	if test x$gas = xyes
1508	then
1509		target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1510	fi
1511	if test x$gnu_ld = xyes
1512	then
1513		target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1514	fi
1515	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
1516	;;
1517ia64*-*-netbsd*)
1518	tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h ia64/sysv4.h ia64/netbsd.h"
1519	target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1520	tmake_file="${tmake_file} ia64/t-ia64"
1521	if test x$with_system_libunwind != xyes ; then
1522		tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind"
1523	fi
1524	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
1525	;;
1526ia64*-*-freebsd*)
1527	tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1528	target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1529	tmake_file="${tmake_file} ia64/t-ia64"
1530	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
1531	;;
1532ia64*-*-linux*)
1533	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1534	tmake_file="${tmake_file} ia64/t-ia64 t-libunwind ia64/t-glibc"
1535	if test x$with_system_libunwind != xyes ; then
1536		tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind"
1537	fi
1538	target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1539	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
1540	;;
1541ia64*-*-hpux*)
1542	tm_file="${tm_file} dbxelf.h elfos.h svr4.h ia64/sysv4.h ia64/hpux.h"
1543	tmake_file="ia64/t-ia64 ia64/t-hpux"
1544	target_cpu_default="MASK_GNU_AS"
1545	case x$enable_threads in
1546	x | xyes | xposix )
1547		thread_file=posix
1548		;;
1549	esac
1550	use_collect2=no
1551	c_target_objs="ia64-c.o"
1552	cxx_target_objs="ia64-c.o"
1553	extra_options="${extra_options} ia64/ilp32.opt"
1554	use_gcc_stdint=wrap
1555	tm_file="${tm_file} hpux-stdint.h"
1556	;;
1557ia64-hp-*vms*)
1558	tm_file="${tm_file} elfos.h ia64/sysv4.h ia64/elf.h ia64/vms.h ia64/vms64.h"
1559	xm_file="vms/xm-vms.h vms/xm-vms64.h"
1560	tmake_file="vms/t-vms vms/t-vms64 ia64/t-ia64 ia64/t-vms"
1561	xmake_file=vms/x-vms
1562	target_cpu_default="0"
1563	if test x$gas = xyes
1564	then
1565		target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1566	fi
1567	exeext=.exe
1568	install_headers_dir=install-headers-cp
1569	extra_options="${extra_options} vms/vms.opt"
1570	;;
1571iq2000*-*-elf*)
1572        tm_file="svr4.h elfos.h newlib-stdint.h iq2000/iq2000.h"
1573        tmake_file=iq2000/t-iq2000
1574        out_file=iq2000/iq2000.c
1575        md_file=iq2000/iq2000.md
1576        ;;
1577lm32-*-elf*)
1578        tm_file="dbxelf.h elfos.h ${tm_file}"
1579	tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp"
1580        ;;
1581lm32-*-rtems*)
1582	tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1583	tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp"
1584	tmake_file="${tmake_file} t-rtems"
1585         ;;
1586lm32-*-uclinux*)
1587        tm_file="dbxelf.h elfos.h ${tm_file} linux.h lm32/uclinux-elf.h"
1588	tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp"
1589        ;;
1590m32r-*-elf*)
1591	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}"
1592	extra_parts="crtinit.o crtfini.o"
1593 	;;
1594m32rle-*-elf*)
1595	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h m32r/little.h ${tm_file}"
1596	extra_parts="crtinit.o crtfini.o m32rx/crtinit.o m32rx/crtfini.o"
1597	;;
1598m32r-*-rtems*)
1599	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h"
1600	tmake_file="m32r/t-m32r t-rtems"
1601	extra_parts="crtinit.o crtfini.o"
1602 	;;
1603m32r-*-linux*)
1604	tm_file="dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1605	# We override the tmake_file for linux -- why?
1606	tmake_file="t-slibgcc-elf-ver m32r/t-linux"
1607	gnu_ld=yes
1608	if test x$enable_threads = xyes; then
1609		thread_file='posix'
1610	fi
1611 	;;
1612m32rle-*-linux*)
1613	tm_file="dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1614	# We override the tmake_file for linux -- why?
1615	tmake_file="t-slibgcc-elf-ver m32r/t-linux"
1616	gnu_ld=yes
1617	if test x$enable_threads = xyes; then
1618		thread_file='posix'
1619	fi
1620	;;
1621# m68hc11 and m68hc12 share the same machine description.
1622m68hc11-*-*|m6811-*-*)
1623	tm_file="dbxelf.h elfos.h usegas.h newlib-stdint.h m68hc11/m68hc11.h"
1624	tm_p_file="m68hc11/m68hc11-protos.h"
1625	md_file="m68hc11/m68hc11.md"
1626	out_file="m68hc11/m68hc11.c"
1627	tmake_file="m68hc11/t-m68hc11"
1628	use_gcc_stdint=wrap
1629        ;;
1630m68hc12-*-*|m6812-*-*)
1631	tm_file="m68hc11/m68hc12.h dbxelf.h elfos.h usegas.h newlib-stdint.h m68hc11/m68hc11.h"
1632	tm_p_file="m68hc11/m68hc11-protos.h"
1633	md_file="m68hc11/m68hc11.md"
1634	out_file="m68hc11/m68hc11.c"
1635	tmake_file="m68hc11/t-m68hc11"
1636	extra_options="${extra_options} m68hc11/m68hc11.opt"
1637	use_gcc_stdint=wrap
1638        ;;
1639m68k-*-elf* | fido-*-elf*)
1640	case ${target} in
1641	fido-*-elf*)
1642		# Check that $with_cpu makes sense.
1643		case $with_cpu in
1644		"" | "fidoa")
1645			;;
1646		*)
1647			echo "Cannot accept --with-cpu=$with_cpu"
1648			exit 1
1649			;;
1650		esac
1651		with_cpu=fidoa
1652		;;
1653	*)
1654		default_m68k_cpu=68020
1655		default_cf_cpu=5206
1656		;;
1657	esac
1658	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"
1659	tm_defines="${tm_defines} MOTOROLA=1"
1660	tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1661	# Add multilibs for targets other than fido.
1662	case ${target} in
1663	fido-*-elf*)
1664		;;
1665	*)
1666		tmake_file="$tmake_file m68k/t-mlibs"
1667		;;
1668	esac
1669	extra_parts="crtbegin.o crtend.o"
1670	;;
1671m68010-*-netbsdelf* | m68k-*-netbsdelf* | m5407-*-netbsdelf*)
1672	tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
1673	tm_defines="${tm_defines} MOTOROLA=1 USE_GAS=1"
1674	default_cf_cpu=5475
1675	default_m68k_cpu=68020
1676	case ${target} in
1677	m5407*)
1678		with_arch=${with_arch:-cf}
1679		target_cpu_default="mcf5475"
1680#	        target="`echo ${target} | sed 's/m68kcf/m68k/'`"
1681		;;
1682	m68010*)
1683		target_cpu_default="m68010"
1684		tmake_file="m68k/t-m68kelf m68k/t-m68010-netbsd"
1685		default_m68k_cpu=68010
1686		tmake_file="${tmake_file} m68k/t-floatlib"
1687		;;
1688	*)
1689		with_arch=${with_arch:-m68k}
1690		tmake_file="${tmake_file} m68k/t-floatlib"
1691		;;
1692	esac
1693	;;
1694m68k*-*-openbsd*)
1695	default_m68k_cpu=68020
1696	default_cf_cpu=5475
1697	# needed to unconfuse gdb
1698	tm_defines="${tm_defines} OBSD_OLD_GAS"
1699	tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1700	tmake_file="t-libc-ok t-openbsd m68k/t-openbsd"
1701	# we need collect2 until our bug is fixed...
1702	use_collect2=yes
1703	;;
1704m68k-*-uclinuxoldabi*)		# Motorola m68k/ColdFire running uClinux
1705				# with uClibc, using the original
1706				# m68k-elf-based ABI
1707	default_m68k_cpu=68020
1708	default_cf_cpu=5206
1709	tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/uclinux-oldabi.h glibc-stdint.h"
1710 	tm_defines="${tm_defines} MOTOROLA=1"
1711	tmake_file="m68k/t-floatlib m68k/t-uclinux"
1712	;;
1713m68k-*-uclinux*)		# Motorola m68k/ColdFire running uClinux
1714				# with uClibc, using the new GNU/Linux-style
1715				# ABI.
1716	default_m68k_cpu=68020
1717	default_cf_cpu=5206
1718	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h"
1719 	tm_defines="${tm_defines} MOTOROLA=1 UCLIBC_DEFAULT=1"
1720	extra_options="${extra_options} linux.opt"
1721	tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1722	;;
1723m68k-*-linux*)		# Motorola m68k's running GNU/Linux
1724				# with ELF format using glibc 2
1725				# aka the GNU/Linux C library 6.
1726	default_m68k_cpu=68020
1727	default_cf_cpu=5475
1728	with_arch=${with_arch:-m68k}
1729	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
1730	extra_options="${extra_options} m68k/ieee.opt"
1731	tm_defines="${tm_defines} MOTOROLA=1"
1732	tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
1733	# if not configured with --enable-sjlj-exceptions, bump the
1734	# libgcc version number
1735	if test x$sjlj != x1; then
1736	    tmake_file="$tmake_file m68k/t-slibgcc-elf-ver"
1737	fi
1738	;;
1739m68k-*-rtems*)
1740	default_m68k_cpu=68020
1741	default_cf_cpu=5206
1742	tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff t-rtems m68k/t-rtems m68k/t-mlibs"
1743	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"
1744	tm_defines="${tm_defines} MOTOROLA=1"
1745	extra_parts="crtbegin.o crtend.o"
1746	;;
1747mcore-*-elf)
1748	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1749	tmake_file=mcore/t-mcore
1750	inhibit_libc=true
1751	;;
1752mcore-*-pe*)
1753	tm_file="svr3.h dbxcoff.h newlib-stdint.h ${tm_file} mcore/mcore-pe.h"
1754	tmake_file=mcore/t-mcore-pe
1755	inhibit_libc=true
1756	use_gcc_stdint=wrap
1757	;;
1758mep-*-*)
1759	tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
1760	tmake_file=mep/t-mep
1761	extra_parts="crtbegin.o crtend.o"
1762	c_target_objs="mep-pragma.o"
1763	cxx_target_objs="mep-pragma.o"
1764	if test -d "${srcdir}/../newlib/libc/include" &&
1765	   test "x$with_headers" = x; then
1766		with_headers=yes
1767	fi
1768	use_gcc_stdint=wrap
1769	;;
1770mips-sgi-irix[56]*)
1771	tm_file="elfos.h ${tm_file} mips/iris.h"
1772	tmake_file="mips/t-iris mips/t-slibgcc-irix"
1773	target_cpu_default="MASK_ABICALLS"
1774	case ${target} in
1775	*-*-irix5*)
1776		tm_file="${tm_file} mips/iris5.h"
1777		use_gcc_stdint=provide
1778		;;
1779
1780	*-*-irix6*)
1781		tm_file="${tm_file} mips/iris6.h"
1782		tmake_file="${tmake_file} mips/t-iris6"
1783		tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
1784		case ${target} in
1785		*-*-irix6.[0-4]*)
1786			use_gcc_stdint=provide
1787			;;
1788		*-*-irix6.5*)
1789			# Only IRIX Development Foundation 1.3 for IRIX 6.5
1790			# provides stdint.h.
1791			use_gcc_stdint=wrap
1792			;;
1793		esac
1794		;;
1795	esac
1796	if test "x$stabs" = xyes
1797	then
1798		tm_file="${tm_file} dbx.h"
1799	fi
1800	if test "x$gnu_ld" = xyes
1801	then
1802		tm_defines="${tm_defines} IRIX_USING_GNU_LD"
1803	fi
1804	case ${enable_threads}:${have_pthread_h} in
1805	  "":yes | yes:yes ) thread_file=posix ;;
1806	esac
1807	;;
1808mips64*-*-netbsd*)			# NetBSD/mips64, either endian.
1809	target_cpu_default="MASK_ABICALLS|MASK_FLOAT64|MASK_SOFT_FLOAT_ABI"
1810	tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h mips/netbsd64.h"
1811	tmake_file="${tmake_file} mips/t-netbsd64"
1812	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
1813	gnu_ld=yes
1814	gas=yes
1815	;;
1816mips*-*-netbsd*)			# NetBSD/mips, either endian.
1817	target_cpu_default="MASK_ABICALLS"
1818	tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
1819	;;
1820mips64*-*-linux* | mipsisa64*-*-linux*)
1821	tm_file="dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h ${tm_file} mips/linux.h mips/linux64.h"
1822	tmake_file="${tmake_file} mips/t-linux64 mips/t-libgcc-mips16"
1823	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
1824	case ${target} in
1825		mips64el-st-linux-gnu)
1826			tm_file="${tm_file} mips/st.h"
1827			tmake_file="${tmake_file} mips/t-st"
1828			;;
1829		mips64octeon*-*-linux*)
1830			tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
1831			target_cpu_default=MASK_SOFT_FLOAT_ABI
1832			;;
1833		mipsisa64r2*-*-linux*)
1834			tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
1835			;;
1836	esac
1837	gnu_ld=yes
1838	gas=yes
1839	test x$with_llsc != x || with_llsc=yes
1840	;;
1841mips*-*-linux*)				# Linux MIPS, either endian.
1842        tm_file="dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h ${tm_file} mips/linux.h"
1843	tmake_file="${tmake_file} mips/t-libgcc-mips16"
1844	case ${target} in
1845        mipsisa32r2*)
1846		tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
1847                ;;
1848        mipsisa32*)
1849		tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
1850        esac
1851	test x$with_llsc != x || with_llsc=yes
1852	;;
1853mips*-*-openbsd*)
1854	tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_OBJECT OBSD_HAS_CORRECT_SPECS"
1855	target_cpu_default="MASK_ABICALLS"
1856	tm_file="mips/mips.h openbsd.h openbsd-stdint.h openbsd-libpthread.h mips/openbsd.h mips/sdb.h"
1857	case ${target} in
1858	mips*el-*-openbsd*)
1859	    tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=0";;
1860	*)  tm_defines="${tm_defines} TARGET_ENDIAN_DEFAULT=MASK_BIG_ENDIAN";;
1861        esac
1862	;;
1863mips*-sde-elf*)
1864	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/sde.h"
1865	tmake_file="mips/t-sde mips/t-libgcc-mips16"
1866	case "${with_newlib}" in
1867	  yes)
1868	    # newlib / libgloss.
1869	    ;;
1870	  *)
1871	    # MIPS toolkit libraries.
1872	    tm_file="$tm_file mips/sdemtk.h"
1873	    tmake_file="$tmake_file mips/t-sdemtk"
1874	    extra_options="$extra_options mips/sdemtk.opt"
1875	    case ${enable_threads} in
1876	      "" | yes | mipssde)
1877		thread_file='mipssde'
1878		;;
1879	    esac
1880	    ;;
1881	esac
1882	case ${target} in
1883	  mipsisa32r2*)
1884	    tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1885	    ;;
1886	  mipsisa32*)
1887	    tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
1888	    ;;
1889	  mipsisa64r2*)
1890	    tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
1891	    ;;
1892	  mipsisa64*)
1893	    tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
1894	    ;;
1895	esac
1896	;;
1897mipsisa32-*-elf* | mipsisa32el-*-elf* | \
1898mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
1899mipsisa64-*-elf* | mipsisa64el-*-elf* | \
1900mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*)
1901	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
1902	tmake_file="mips/t-isa3264 mips/t-libgcc-mips16"
1903	case ${target} in
1904	  mipsisa32r2*)
1905	    tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
1906	    ;;
1907	  mipsisa32*)
1908	    tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
1909	    ;;
1910	  mipsisa64r2*)
1911	    tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
1912	    ;;
1913	  mipsisa64*)
1914	    tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
1915	    ;;
1916	esac
1917	case ${target} in
1918	  mipsisa32*-*-elfoabi*)
1919	    tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
1920	    tm_file="${tm_file} mips/elfoabi.h"
1921	    ;;
1922	  mipsisa64*-*-elfoabi*)
1923	    tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
1924	    tm_file="${tm_file} mips/elfoabi.h"
1925	    ;;
1926	  *-*-elf*)
1927	    tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
1928	    ;;
1929	esac
1930	;;
1931mipsisa64sr71k-*-elf*)
1932        tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
1933        tmake_file=mips/t-sr71k
1934	target_cpu_default="MASK_64BIT|MASK_FLOAT64"
1935	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
1936        ;;
1937mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
1938	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
1939	tmake_file="mips/t-elf mips/t-libgcc-mips16 mips/t-sb1"
1940	target_cpu_default="MASK_64BIT|MASK_FLOAT64"
1941	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
1942	;;
1943mips-*-elf* | mipsel-*-elf*)
1944	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
1945	tmake_file="mips/t-elf mips/t-libgcc-mips16"
1946	;;
1947mips64-*-elf* | mips64el-*-elf*)
1948	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
1949	tmake_file="mips/t-elf mips/t-libgcc-mips16"
1950	target_cpu_default="MASK_64BIT|MASK_FLOAT64"
1951	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
1952	;;
1953mips64vr-*-elf* | mips64vrel-*-elf*)
1954        tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
1955        tmake_file=mips/t-vr
1956	tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
1957        ;;
1958mips64orion-*-elf* | mips64orionel-*-elf*)
1959	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
1960	tmake_file="mips/t-elf mips/t-libgcc-mips16"
1961	target_cpu_default="MASK_64BIT|MASK_FLOAT64"
1962	tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
1963	;;
1964mips*-*-rtems*)
1965	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
1966	tmake_file="mips/t-elf mips/t-libgcc-mips16 t-rtems mips/t-rtems"
1967	;;
1968mips-wrs-vxworks)
1969	tm_file="elfos.h ${tm_file} svr4.h mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
1970	tmake_file="${tmake_file} mips/t-vxworks"
1971	;;
1972mipstx39-*-elf* | mipstx39el-*-elf*)
1973	tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
1974	tmake_file="mips/t-r3900 mips/t-libgcc-mips16"
1975	;;
1976mmix-knuth-mmixware)
1977	tm_file="${tm_file} newlib-stdint.h"
1978	need_64bit_hwint=yes
1979	use_gcc_stdint=wrap
1980	;;
1981mn10300-*-*)
1982	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}"
1983	if test x$stabs = xyes
1984	then
1985		tm_file="${tm_file} dbx.h"
1986	fi
1987	use_collect2=no
1988	use_gcc_stdint=wrap
1989	;;
1990pdp11-*-*)
1991	tm_file="${tm_file} newlib-stdint.h"
1992	use_gcc_stdint=wrap
1993	;;
1994picochip-*)
1995	tm_file="${tm_file} newlib-stdint.h"
1996	use_gcc_stdint=wrap
1997        ;;
1998# port not yet contributed
1999#powerpc-*-openbsd*)
2000#	tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit "
2001#	extra_headers=
2002#	;;
2003powerpc-*-darwin*)
2004	extra_options="${extra_options} rs6000/darwin.opt"
2005	extra_parts="crt2.o"
2006	case ${target} in
2007	  *-darwin1[0-9]* | *-darwin[8-9]*)
2008	    tmake_file="${tmake_file} rs6000/t-darwin8"
2009	    tm_file="${tm_file} rs6000/darwin8.h"
2010	    ;;
2011	  *-darwin7*)
2012	    tm_file="${tm_file} rs6000/darwin7.h"
2013	    ;;
2014	  *-darwin[0-6]*)
2015	    ;;
2016	esac
2017 	tmake_file="${tmake_file} t-slibgcc-darwin"
2018	extra_headers=altivec.h
2019	;;
2020powerpc64-*-darwin*)
2021	tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2022	extra_options="${extra_options} ${cpu_type}/darwin.opt"
2023	# We're not including any t-darwin* fragments, to avoid building multilibs.
2024 	tmake_file="${tmake_file} t-slibgcc-darwin"
2025	extra_headers=altivec.h
2026	;;
2027powerpc*-*-freebsd*)
2028	tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h rs6000/freebsd.h"
2029	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2030	extra_options="${extra_options} rs6000/sysv4.opt"
2031	;;
2032powerpc*-*-netbsd*)
2033	tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h svr4.h freebsd-spec.h rs6000/sysv4.h"
2034	case ${target} in
2035	  powerpc64*)
2036	    tm_file="rs6000/biarch64.h ${tm_file} rs6000/default64.h rs6000/netbsd64.h"
2037	    tmake_file="${tmake_file} rs6000/t-netbsd64"
2038	    ;;
2039	  *)
2040	    tm_file="${tm_file} rs6000/netbsd.h"
2041	tmake_file="${tmake_file} rs6000/t-netbsd"
2042	    ;;
2043	esac
2044	if test x${enable_secureplt} != xno; then
2045	  tm_file="rs6000/secureplt.h ${tm_file}"
2046	fi
2047	extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2048	;;
2049powerpc-*-eabispe*)
2050	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabispe.h"
2051	extra_options="${extra_options} rs6000/sysv4.opt"
2052	tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2053	use_gcc_stdint=wrap
2054	;;
2055powerpc-*-eabisimaltivec*)
2056	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h rs6000/eabialtivec.h"
2057	extra_options="${extra_options} rs6000/sysv4.opt"
2058	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm"
2059	use_gcc_stdint=wrap
2060	;;
2061powerpc-*-eabisim*)
2062	tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h"
2063	extra_options="${extra_options} rs6000/sysv4.opt"
2064	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
2065	use_gcc_stdint=wrap
2066	;;
2067powerpc-*-elf*)
2068	tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2069	extra_options="${extra_options} rs6000/sysv4.opt"
2070	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
2071	;;
2072powerpc-*-eabialtivec*)
2073	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabialtivec.h"
2074	extra_options="${extra_options} rs6000/sysv4.opt"
2075	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcendian rs6000/t-ppccomm"
2076	use_gcc_stdint=wrap
2077	;;
2078powerpc-xilinx-eabi*)
2079	tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h rs6000/xfpu.h rs6000/xilinx.h"
2080	extra_options="${extra_options} rs6000/sysv4.opt"
2081	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2082	use_gcc_stdint=wrap
2083	;;
2084powerpc-*-eabi*)
2085	tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h"
2086	extra_options="${extra_options} rs6000/sysv4.opt"
2087	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
2088	use_gcc_stdint=wrap
2089	;;
2090powerpc-*-rtems*)
2091	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h"
2092	extra_options="${extra_options} rs6000/sysv4.opt"
2093	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-rtems t-rtems rs6000/t-ppccomm"
2094	;;
2095powerpc-*-linux* | powerpc64-*-linux*)
2096	tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
2097	extra_options="${extra_options} rs6000/sysv4.opt"
2098	tmake_file="t-dfprules rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2099	maybe_biarch=yes
2100	case ${target} in
2101	    powerpc64-*-linux*spe* | powerpc64-*-linux*paired*)
2102	    	echo "*** Configuration ${target} not supported" 1>&2
2103		exit 1
2104		;;
2105	    powerpc-*-linux*spe* | powerpc-*-linux*paired*)
2106		maybe_biarch=
2107		;;
2108	    powerpc64-*-linux*)
2109	    	test x$with_cpu != x || cpu_is_64bit=yes
2110		maybe_biarch=always
2111		;;
2112	esac
2113	case ${maybe_biarch}:${enable_targets}:${cpu_is_64bit} in
2114	    always:* | yes:*powerpc64* | yes:all:* | yes:*:yes)
2115		if test x$cpu_is_64bit = xyes; then
2116		    tm_file="${tm_file} rs6000/default64.h"
2117		fi
2118		tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2119		tmake_file="$tmake_file rs6000/t-linux64"
2120		extra_options="${extra_options} rs6000/linux64.opt"
2121		;;
2122	    *)
2123		tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2124		;;
2125	esac
2126	tmake_file="${tmake_file} t-slibgcc-libgcc rs6000/t-fprules-softfp soft-fp/t-softfp"
2127	case ${target} in
2128	    powerpc*-*-linux*altivec*)
2129		tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2130	    powerpc*-*-linux*spe*)
2131		tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2132	    powerpc*-*-linux*paired*)
2133		tm_file="${tm_file} rs6000/750cl.h" ;;
2134	esac
2135	if test x${enable_secureplt} = xyes; then
2136		tm_file="rs6000/secureplt.h ${tm_file}"
2137	fi
2138	;;
2139powerpc64-*-gnu*)
2140	tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/default64.h rs6000/linux64.h rs6000/gnu.h glibc-stdint.h"
2141	extra_options="${extra_options} rs6000/sysv4.opt rs6000/linux64.opt"
2142	tmake_file="t-slibgcc-elf-ver t-slibgcc-libgcc t-gnu"
2143	;;
2144powerpc-*-gnu-gnualtivec*)
2145	tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/linuxaltivec.h rs6000/gnu.h glibc-stdint.h"
2146	extra_options="${extra_options} rs6000/sysv4.opt"
2147	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-slibgcc-libgcc t-gnu rs6000/t-ppccomm"
2148	if test x$enable_threads = xyes; then
2149		thread_file='posix'
2150	fi
2151	;;
2152powerpc-*-gnu*)
2153	tm_file="${cpu_type}/${cpu_type}.h elfos.h svr4.h freebsd-spec.h gnu.h rs6000/sysv4.h rs6000/linux.h rs6000/gnu.h glibc-stdint.h"
2154	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcos t-slibgcc-elf-ver t-slibgcc-libgcc t-gnu rs6000/t-ppccomm"
2155	extra_options="${extra_options} rs6000/sysv4.opt"
2156	if test x$enable_threads = xyes; then
2157		thread_file='posix'
2158	fi
2159	;;
2160powerpc-wrs-vxworks|powerpc-wrs-vxworksae)
2161	tm_file="${tm_file} elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h"
2162	tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppccomm rs6000/t-vxworks"
2163	extra_options="${extra_options} rs6000/sysv4.opt"
2164	extra_headers=ppc-asm.h
2165	case ${target} in
2166	  *-vxworksae*)
2167	    tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2168	    tmake_file="${tmake_file} rs6000/t-vxworksae"
2169	    ;;
2170	  *-vxworks*)
2171	    tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2172	    ;;
2173	esac
2174	;;
2175powerpc-*-lynxos*)
2176	xm_defines=POSIX
2177	tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2178	tmake_file="t-lynx rs6000/t-lynx"
2179	extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2180	extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o"
2181	extra_options="${extra_options} lynx.opt"
2182	thread_file=lynx
2183	gnu_ld=yes
2184	gas=yes
2185	;;
2186powerpcle-*-elf*)
2187	tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2188	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
2189	extra_options="${extra_options} rs6000/sysv4.opt"
2190	;;
2191powerpcle-*-eabisim*)
2192	tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h"
2193	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
2194	extra_options="${extra_options} rs6000/sysv4.opt"
2195	use_gcc_stdint=wrap
2196	;;
2197powerpcle-*-eabi*)
2198	tm_file="${tm_file} dbxelf.h elfos.h usegas.h svr4.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/e500.h"
2199	tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm"
2200	extra_options="${extra_options} rs6000/sysv4.opt"
2201	use_gcc_stdint=wrap
2202	;;
2203rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2204	tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2205	tmake_file=rs6000/t-aix43
2206	extra_options="${extra_options} rs6000/aix64.opt"
2207	use_collect2=yes
2208	thread_file='aix'
2209	use_gcc_stdint=provide
2210	extra_headers=
2211	;;
2212rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2213	tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2214	extra_options="${extra_options} rs6000/aix64.opt"
2215	tmake_file=rs6000/t-aix43
2216	use_collect2=yes
2217	thread_file='aix'
2218	use_gcc_stdint=wrap
2219	extra_headers=
2220	;;
2221rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2222	tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2223	tmake_file=rs6000/t-aix52
2224	extra_options="${extra_options} rs6000/aix64.opt"
2225	use_collect2=yes
2226	thread_file='aix'
2227	use_gcc_stdint=wrap
2228	extra_headers=
2229	;;
2230rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2231	tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2232	tmake_file=rs6000/t-aix52
2233	extra_options="${extra_options} rs6000/aix64.opt"
2234	use_collect2=yes
2235	thread_file='aix'
2236	use_gcc_stdint=wrap
2237	extra_headers=altivec.h
2238	;;
2239rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2240	tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2241	tmake_file=rs6000/t-aix52
2242	extra_options="${extra_options} rs6000/aix64.opt"
2243	use_collect2=yes
2244	thread_file='aix'
2245	use_gcc_stdint=wrap
2246	extra_headers=altivec.h
2247	;;
2248rx-*-elf*)
2249	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file} ../../libgcc/config/rx/rx-abi.h"
2250	tmake_file="${tmake_file} rx/t-rx"
2251	;;
2252s390-*-linux*)
2253	tm_file="s390/s390.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h s390/linux.h"
2254	;;
2255s390x-*-linux*)
2256	tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h s390/linux.h"
2257	tm_p_file=s390/s390-protos.h
2258	md_file=s390/s390.md
2259	extra_modes=s390/s390-modes.def
2260	out_file=s390/s390.c
2261	tmake_file="${tmake_file} s390/t-linux64"
2262	;;
2263s390x-ibm-tpf*)
2264        tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h s390/tpf.h"
2265        tm_p_file=s390/s390-protos.h
2266        md_file=s390/s390.md
2267        extra_modes=s390/s390-modes.def
2268        out_file=s390/s390.c
2269        extra_parts="crtbeginS.o crtendS.o"
2270        thread_file='tpf'
2271	extra_options="${extra_options} s390/tpf.opt"
2272	;;
2273score-*-elf)
2274        tm_file="dbxelf.h elfos.h score/elf.h score/score.h newlib-stdint.h"
2275        tmake_file=score/t-score-elf
2276        extra_objs="score7.o score3.o"
2277        ;;
2278sh-*-elf* | sh[12346l]*-*-elf* | \
2279sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
2280  sh-*-linux* | sh[2346lbe]*-*-linux* | \
2281  sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2282   sh64-*-netbsd* | sh64l*-*-netbsd*)
2283	tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2284	if test x${with_endian} = x; then
2285		case ${target} in
2286		sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2287		shbe-*-* | sheb-*-*)		   with_endian=big,little ;;
2288		sh[1234]l* | sh[34]*-*-linux*)	   with_endian=little ;;
2289		shl* | sh64l* | sh*-*-linux* | \
2290		  sh5l* | sh-superh-elf)	   with_endian=little,big ;;
2291		sh[1234]*-*-*)			   with_endian=big ;;
2292		*)				   with_endian=big,little ;;
2293		esac
2294	fi
2295	# TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2296	#  First word : the default endian.
2297	#  Second word: the secondary endian (optional).
2298	case ${with_endian} in
2299	big)		TM_ENDIAN_CONFIG=mb ;;
2300	little)		TM_ENDIAN_CONFIG=ml ;;
2301	big,little)	TM_ENDIAN_CONFIG="mb ml" ;;
2302	little,big)	TM_ENDIAN_CONFIG="ml mb" ;;
2303	*)	echo "with_endian=${with_endian} not supported."; exit 1 ;;
2304	esac
2305	case ${with_endian} in
2306	little*)	tm_file="sh/little.h ${tm_file}" ;;
2307	esac
2308	tm_file="${tm_file} dbxelf.h elfos.h"
2309	case ${target} in
2310	sh*-*-netbsd*)	;;
2311	*)		tm_file="${tm_file} svr4.h" ;;
2312	esac
2313	tm_file="${tm_file} sh/elf.h"
2314	case ${target} in
2315	sh*-*-linux*)	tmake_file="${tmake_file} sh/t-linux"
2316			tm_file="${tm_file} linux.h glibc-stdint.h sh/linux.h" ;;
2317	sh*-*-netbsd*)	tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h" ;;
2318	sh*-superh-elf)	if test x$with_libgloss != xno; then
2319                                with_libgloss=yes
2320                                tm_file="${tm_file} sh/newlib.h"
2321                        fi
2322			tm_file="${tm_file} sh/embed-elf.h"
2323			tm_file="${tm_file} sh/superh.h"
2324			tmake_file="${tmake_file} sh/t-superh"
2325			extra_options="${extra_options} sh/superh.opt" ;;
2326	*)		if test x$with_newlib = xyes \
2327			   && test x$with_libgloss = xyes; then
2328				tm_file="${tm_file} sh/newlib.h"
2329			fi
2330			tm_file="${tm_file} sh/embed-elf.h" ;;
2331	esac
2332	case ${target} in
2333	sh5*-*-netbsd*)
2334		# SHmedia, 32-bit ABI
2335		tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd"
2336		;;
2337	sh64*-netbsd*)
2338		# SHmedia, 64-bit ABI
2339		tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd sh/t-netbsd-sh5-64"
2340		;;
2341	*-*-netbsd*)
2342                tmake_file="${tmake_file} sh/t-netbsd"
2343		;;
2344	sh64*-*-linux*)
2345		tmake_file="${tmake_file} sh/t-sh64 sh/t-linux64"
2346		tm_file="${tm_file} sh/sh64.h"
2347		extra_headers="shmedia.h ushmedia.h sshmedia.h"
2348		;;
2349	sh64*)
2350		tmake_file="${tmake_file} sh/t-sh64"
2351		tm_file="${tm_file} sh/sh64.h"
2352		extra_headers="shmedia.h ushmedia.h sshmedia.h"
2353		;;
2354	*-*-symbianelf*)
2355		tmake_file="sh/t-symbian"
2356		tm_file="sh/symbian-pre.h sh/little.h ${tm_file} sh/symbian-post.h"
2357		c_target_objs="symbian-base.o symbian-c.o"
2358		cxx_target_objs="symbian-base.o symbian-cxx.o"
2359		extra_parts="crt1.o crti.o crtn.o crtbegin.o crtend.o crtbeginS.o crtendS.o"
2360		;;
2361	*-*-elf*)
2362		tm_file="${tm_file} newlib-stdint.h"
2363		;;
2364	esac
2365	# sed el/eb endian suffixes away to avoid confusion with sh[23]e
2366	case `echo ${target} | sed 's/e[lb]-/-/'` in
2367	sh64*-*-netbsd*)	sh_cpu_target=sh5-64media ;;
2368	sh64* | sh5*-*-netbsd*)	sh_cpu_target=sh5-32media ;;
2369	sh4a_single_only*)	sh_cpu_target=sh4a-single-only ;;
2370	sh4a_single*)		sh_cpu_target=sh4a-single ;;
2371	sh4a_nofpu*)		sh_cpu_target=sh4a-nofpu ;;
2372	sh4al)			sh_cpu_target=sh4al ;;
2373	sh4a*)			sh_cpu_target=sh4a ;;
2374	sh4_single_only*)	sh_cpu_target=sh4-single-only ;;
2375	sh4_single*)		sh_cpu_target=sh4-single ;;
2376	sh4_nofpu*)		sh_cpu_target=sh4-nofpu ;;
2377	sh4* | sh-superh-*)	sh_cpu_target=sh4 ;;
2378	sh3e*)			sh_cpu_target=sh3e ;;
2379	sh*-*-netbsd* | sh3*)	sh_cpu_target=sh3 ;;
2380	sh2a_single_only*)	sh_cpu_target=sh2a-single-only ;;
2381	sh2a_single*)		sh_cpu_target=sh2a-single ;;
2382	sh2a_nofpu*)		sh_cpu_target=sh2a-nofpu ;;
2383	sh2a*)			sh_cpu_target=sh2a ;;
2384	sh2e*)			sh_cpu_target=sh2e ;;
2385	sh2*)			sh_cpu_target=sh2 ;;
2386	*)			sh_cpu_target=sh1 ;;
2387	esac
2388	# did the user say --without-fp ?
2389	if test x$with_fp = xno; then
2390		case ${sh_cpu_target} in
2391		sh5-*media)	sh_cpu_target=${sh_cpu_target}-nofpu ;;
2392		sh4al | sh1)	;;
2393		sh4a* )		sh_cpu_target=sh4a-nofpu ;;
2394		sh4*)		sh_cpu_target=sh4-nofpu ;;
2395		sh3*)		sh_cpu_target=sh3 ;;
2396		sh2a*)		sh_cpu_target=sh2a-nofpu ;;
2397		sh2*)		sh_cpu_target=sh2 ;;
2398		*)	echo --without-fp not available for $target: ignored
2399		esac
2400		tm_defines="$tm_defines STRICT_NOFPU=1"
2401	fi
2402	sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2403	case $sh_cpu_default in
2404	sh5-64media-nofpu | sh5-64media | \
2405	  sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2406	  sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2407	  sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2408	  sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2409	  sh3e | sh3 | sh2e | sh2 | sh1) ;;
2410	"")	sh_cpu_default=${sh_cpu_target} ;;
2411	*)	echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2412	esac
2413	sh_multilibs=${with_multilib_list}
2414	if test "$sh_multilibs" = "default" ; then
2415		case ${target} in
2416		sh64-superh-linux* | \
2417		sh[1234]*)	sh_multilibs=${sh_cpu_target} ;;
2418		sh64* | sh5*)	sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2419		sh-superh-*)	sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2420		sh*-*-linux*)	sh_multilibs=m1,m3e,m4 ;;
2421		sh*-*-netbsd*)	sh_multilibs=m3,m3e,m4 ;;
2422		*) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2423		esac
2424		if test x$with_fp = xno; then
2425			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`"
2426		fi
2427	fi
2428	target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2429	tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2430	tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2431	sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2432	for sh_multilib in ${sh_multilibs}; do
2433		case ${sh_multilib} in
2434		m1 | m2 | m2e | m3 | m3e | \
2435		m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2436		m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2437		m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2438		m5-64media | m5-64media-nofpu | \
2439		m5-32media | m5-32media-nofpu | \
2440		m5-compact | m5-compact-nofpu)
2441			# TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2442			# It is passed to MULTIILIB_OPTIONS verbatim.
2443			TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2444			tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2445			;;
2446		\!*)	# TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2447			# It is passed the MULTILIB_EXCEPTIONS verbatim.
2448			TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2449		*)
2450			echo "with_multilib_list=${sh_multilib} not supported."
2451			exit 1
2452			;;
2453		esac
2454	done
2455	TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2456	if test x${enable_incomplete_targets} = xyes ; then
2457		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"
2458	fi
2459	tm_file="$tm_file ./sysroot-suffix.h"
2460	tmake_file="$tmake_file t-sysroot-suffix"
2461	;;
2462sh-*-rtems*)
2463	tmake_file="sh/t-sh sh/t-elf t-rtems sh/t-rtems"
2464	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2465	;;
2466sh-wrs-vxworks)
2467	tmake_file="$tmake_file sh/t-sh sh/t-elf sh/t-vxworks"
2468	tm_file="${tm_file} elfos.h svr4.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2469	;;
2470sparc-*-netbsdelf*)
2471	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2472	extra_options="${extra_options} sparc/long-double-switch.opt"
2473	;;
2474sparc64-*-openbsd*)
2475	tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp64-elf.h"
2476	tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2477	extra_options="${extra_options} sparc/little-endian.opt"
2478	gas=yes gnu_ld=yes
2479	with_cpu=ultrasparc
2480	;;
2481sparc-*-elf*)
2482	tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h svr4.h sparc/sysv4.h sparc/sp-elf.h"
2483	tmake_file="sparc/t-elf sparc/t-crtfm"
2484	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
2485	;;
2486sparc-*-linux*)		# SPARC's running GNU/Linux, libc6
2487	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h glibc-stdint.h"
2488	extra_options="${extra_options} sparc/long-double-switch.opt"
2489	tmake_file="${tmake_file} sparc/t-linux"
2490	if test x$enable_targets = xall; then
2491		tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2492		tmake_file="${tmake_file} sparc/t-linux64"
2493	else
2494		tm_file="${tm_file} sparc/linux.h"
2495	fi
2496	tmake_file="${tmake_file} sparc/t-crtfm"
2497	;;
2498sparc-*-rtems*)
2499	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2500	tmake_file="sparc/t-elf sparc/t-crtfm t-rtems"
2501	extra_parts="crti.o crtn.o crtbegin.o crtend.o"
2502	;;
2503sparc*-*-solaris2*)
2504	tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h"
2505	case ${target} in
2506	    *-*-solaris2.1[0-9]*)
2507		tm_file="${tm_file} sol2-10.h"
2508		use_gcc_stdint=wrap
2509		;;
2510	    *)
2511		use_gcc_stdint=provide
2512		;;
2513	esac
2514	tm_file="${tm_file} sparc/sol2.h"
2515	case ${target} in
2516	    sparc64-*-* | sparcv9-*-*)
2517		tm_file="sparc/sol2-64.h ${tm_file}"
2518		;;
2519	    *)
2520		test x$with_cpu != x || with_cpu=v9
2521		;;
2522	esac
2523	tm_file="${tm_file} sparc/sol2-bi.h"
2524	if test x$gas = xyes; then
2525		tm_file="${tm_file} sparc/sol2-gas.h sparc/sol2-gas-bi.h"
2526	fi
2527	if test x$gnu_ld = xyes; then
2528		tm_file="${tm_file} sol2-gld.h sparc/sol2-gld-bi.h"
2529	fi
2530	tm_file="${tm_file} tm-dwarf2.h"
2531	tmake_file="t-sol2 sparc/t-sol2 sparc/t-sol2-64 sparc/t-crtfm"
2532	if test x$gnu_ld = xyes; then
2533		tmake_file="$tmake_file t-slibgcc-elf-ver"
2534	else
2535		tmake_file="$tmake_file t-slibgcc-sld"
2536	fi
2537	if test x$gas = xyes; then
2538		tm_file="usegas.h ${tm_file}"
2539	fi
2540	c_target_objs="sol2-c.o"
2541	cxx_target_objs="sol2-c.o"
2542	extra_objs="sol2.o"
2543	tm_p_file="${tm_p_file} sol2-protos.h"
2544	extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
2545	case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
2546	  "":yes:* | yes:yes:* )
2547		thread_file=posix
2548		;;
2549	  "":*:yes | yes:*:yes )
2550		thread_file=solaris
2551		;;
2552	esac
2553	;;
2554sparc-wrs-vxworks)
2555	tm_file="${tm_file} elfos.h svr4.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2556	tmake_file="${tmake_file} sparc/t-vxworks"
2557	;;
2558sparc64-*-elf*)
2559	tm_file="${tm_file} dbxelf.h elfos.h svr4.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2560	extra_options="${extra_options} sparc/little-endian.opt"
2561	tmake_file="${tmake_file} sparc/t-crtfm"
2562	extra_parts="crtbegin.o crtend.o"
2563	;;
2564sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2565	tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2566	extra_options="${extra_options} sparc/long-double-switch.opt"
2567	tmake_file="${tmake_file} sparc/t-crtfm"
2568	case "x$with_cpu" in
2569		xultrasparc) ;;
2570		x) with_cpu=ultrasparc ;;
2571		*) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2572	esac
2573	;;
2574sparc64-*-linux*)		# 64-bit SPARC's running GNU/Linux
2575	tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h glibc-stdint.h sparc/linux64.h"
2576	extra_options="${extra_options} sparc/long-double-switch.opt"
2577	tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
2578	;;
2579sparc64-*-netbsd*)
2580	tm_file="sparc/biarch64.h ${tm_file}"
2581	tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2582	extra_options="${extra_options} sparc/long-double-switch.opt"
2583	tmake_file="${tmake_file} sparc/t-netbsd64"
2584	with_cpu=ultrasparc
2585	;;
2586spu-*-elf*)
2587	tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2588	tmake_file="spu/t-spu-elf"
2589	extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2590	extra_modes=spu/spu-modes.def
2591	c_target_objs="${c_target_objs} spu-c.o"
2592	cxx_target_objs="${cxx_target_objs} spu-c.o"
2593	;;
2594v850e1-*-*)
2595	target_cpu_default="TARGET_CPU_v850e1"
2596	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h v850/v850.h"
2597	tm_p_file=v850/v850-protos.h
2598	tmake_file=v850/t-v850e
2599	md_file=v850/v850.md
2600	out_file=v850/v850.c
2601	extra_options="${extra_options} v850/v850.opt"
2602	if test x$stabs = xyes
2603	then
2604		tm_file="${tm_file} dbx.h"
2605	fi
2606	use_collect2=no
2607	c_target_objs="v850-c.o"
2608	cxx_target_objs="v850-c.o"
2609	use_gcc_stdint=wrap
2610	;;
2611v850e-*-*)
2612	target_cpu_default="TARGET_CPU_v850e"
2613	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h v850/v850.h"
2614	tm_p_file=v850/v850-protos.h
2615	tmake_file=v850/t-v850e
2616	md_file=v850/v850.md
2617	out_file=v850/v850.c
2618	extra_options="${extra_options} v850/v850.opt"
2619	if test x$stabs = xyes
2620	then
2621		tm_file="${tm_file} dbx.h"
2622	fi
2623	use_collect2=no
2624	c_target_objs="v850-c.o"
2625	cxx_target_objs="v850-c.o"
2626	use_gcc_stdint=wrap
2627	;;
2628v850-*-*)
2629	target_cpu_default="TARGET_CPU_generic"
2630	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}"
2631	tmake_file=v850/t-v850
2632	if test x$stabs = xyes
2633	then
2634		tm_file="${tm_file} dbx.h"
2635	fi
2636	use_collect2=no
2637	c_target_objs="v850-c.o"
2638	cxx_target_objs="v850-c.o"
2639	use_gcc_stdint=wrap
2640	;;
2641vax-*-linux*)
2642	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h vax/elf.h vax/linux.h"
2643	tmake_file="${tmake_file} vax/t-linux"
2644	;;
2645vax-*-netbsdelf*)
2646	tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2647	;;
2648vax-*-netbsd*)
2649	tm_file="${tm_file} netbsd.h netbsd-aout.h vax/netbsd.h"
2650	tmake_file=t-netbsd
2651	extra_parts=""
2652	use_collect2=yes
2653	;;
2654vax-*-openbsd*)
2655	tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h"
2656	use_collect2=yes
2657	;;
2658xstormy16-*-elf)
2659	# For historical reasons, the target files omit the 'x'.
2660	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h stormy16/stormy16.h"
2661	tm_p_file=stormy16/stormy16-protos.h
2662	md_file=stormy16/stormy16.md
2663	out_file=stormy16/stormy16.c
2664	extra_options=stormy16/stormy16.opt
2665	tmake_file="stormy16/t-stormy16"
2666	extra_parts="crtbegin.o crtend.o"
2667	;;
2668xtensa*-*-elf*)
2669	tm_file="${tm_file} dbxelf.h elfos.h svr4.h newlib-stdint.h xtensa/elf.h"
2670	tmake_file="xtensa/t-xtensa xtensa/t-elf"
2671	;;
2672xtensa*-*-linux*)
2673	tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h glibc-stdint.h xtensa/linux.h"
2674	tmake_file="${tmake_file} xtensa/t-xtensa xtensa/t-linux"
2675	;;
2676am33_2.0-*-linux*)
2677	tm_file="mn10300/mn10300.h dbxelf.h elfos.h linux.h glibc-stdint.h mn10300/linux.h"
2678	tmake_file="${tmake_file} mn10300/t-linux"
2679	gas=yes gnu_ld=yes
2680	extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
2681	use_collect2=no
2682	;;
2683m32c-*-rtems*)
2684	tm_file="dbxelf.h elfos.h svr4.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
2685	tmake_file="${tmake_file} t-rtems"
2686	c_target_objs="m32c-pragma.o"
2687	cxx_target_objs="m32c-pragma.o"
2688 	;;
2689m32c-*-elf*)
2690	tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}"
2691	c_target_objs="m32c-pragma.o"
2692	cxx_target_objs="m32c-pragma.o"
2693 	;;
2694*)
2695	echo "*** Configuration ${target} not supported" 1>&2
2696	exit 1
2697	;;
2698esac
2699
2700case ${target} in
2701i[34567]86-*-linux* | x86_64-*-linux*)
2702	tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
2703	;;
2704i[34567]86-*-* | x86_64-*-*)
2705	tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
2706	;;
2707powerpc*-*-* | rs6000-*-*)
2708	tm_file="${tm_file} rs6000/option-defaults.h"
2709esac
2710
2711# Support for --with-cpu and related options (and a few unrelated options,
2712# too).
2713case ${with_cpu} in
2714  yes | no)
2715    echo "--with-cpu must be passed a value" 1>&2
2716    exit 1
2717    ;;
2718esac
2719
2720# Set arch and cpu from ${target} and ${target_noncanonical}.  Set cpu
2721# to generic if there is no processor scheduler model for the target.
2722arch=
2723cpu=
2724arch_without_sse2=no
2725arch_without_64bit=no
2726case ${target} in
2727  i386-*-freebsd*)
2728    if test $fbsd_major -ge 6; then
2729      arch=i486
2730    else
2731      arch=i386
2732    fi
2733    cpu=generic
2734    arch_without_sse2=yes
2735    arch_without_64bit=yes
2736    ;;
2737  i386-*-*)
2738    arch=i386
2739    cpu=i386
2740    arch_without_sse2=yes
2741    arch_without_64bit=yes
2742    ;;
2743  i486-*-*)
2744    arch=i486
2745    cpu=i486
2746    arch_without_sse2=yes
2747    arch_without_64bit=yes
2748    ;;
2749  i586-*-*)
2750    arch_without_sse2=yes
2751    arch_without_64bit=yes
2752    case ${target_noncanonical} in
2753      k6_2-*)
2754	arch=k6-2
2755	cpu=k6-2
2756	;;
2757      k6_3-*)
2758	arch=k6-3
2759	cpu=k6-3
2760	;;
2761      k6-*)
2762	arch=k6
2763	cpu=k6
2764	;;
2765      pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
2766	arch=pentium-mmx
2767	cpu=pentium-mmx
2768	;;
2769      *)
2770	arch=pentium
2771	cpu=pentium
2772	;;
2773    esac
2774    ;;
2775  i686-*-* | i786-*-*)
2776    case ${target_noncanonical} in
2777      amdfam10-*|barcelona-*)
2778	arch=amdfam10
2779	cpu=amdfam10
2780	;;
2781      k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
2782	arch=k8-sse3
2783	cpu=k8-sse3
2784	;;
2785      k8-*|opteron-*|athlon64-*|athlon_fx-*)
2786	arch=k8
2787	cpu=k8
2788	;;
2789      athlon_xp-*|athlon_mp-*|athlon_4-*)
2790	arch=athlon-4
2791	cpu=athlon-4
2792	arch_without_sse2=yes
2793	arch_without_64bit=yes
2794	;;
2795      athlon_tbird-*|athlon-*)
2796	arch=athlon
2797	cpu=athlon
2798	arch_without_sse2=yes
2799	;;
2800      geode-*)
2801	arch=geode
2802	cpu=geode
2803	arch_without_sse2=yes
2804	;;
2805      pentium2-*)
2806	arch=pentium2
2807	cpu=pentium2
2808	arch_without_sse2=yes
2809	;;
2810      pentium3-*|pentium3m-*)
2811	arch=pentium3
2812	cpu=pentium3
2813	arch_without_sse2=yes
2814	;;
2815      pentium4-*|pentium4m-*)
2816	arch=pentium4
2817	cpu=pentium4
2818	;;
2819      prescott-*)
2820	arch=prescott
2821	cpu=prescott
2822	;;
2823      nocona-*)
2824	arch=nocona
2825	cpu=nocona
2826	;;
2827      atom-*)
2828	arch=atom
2829	cpu=atom
2830	;;
2831      core2-*)
2832	arch=core2
2833	cpu=core2
2834	;;
2835      pentium_m-*)
2836	arch=pentium-m
2837	cpu=pentium-m
2838	;;
2839      pentiumpro-*)
2840	arch=pentiumpro
2841	cpu=pentiumpro
2842	arch_without_sse2=yes
2843	;;
2844      *)
2845	arch=pentiumpro
2846	cpu=generic
2847	arch_without_sse2=yes
2848	arch_without_64bit=yes
2849	;;
2850    esac
2851    ;;
2852  x86_64-*-*)
2853    case ${target_noncanonical} in
2854      amdfam10-*|barcelona-*)
2855	arch=amdfam10
2856	cpu=amdfam10
2857	;;
2858      k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
2859	arch=k8-sse3
2860	cpu=k8-sse3
2861	;;
2862      k8-*|opteron-*|athlon_64-*)
2863	arch=k8
2864	cpu=k8
2865	;;
2866      nocona-*)
2867	arch=nocona
2868	cpu=nocona
2869	;;
2870      atom-*)
2871	arch=atom
2872	cpu=atom
2873	;;
2874      core2-*)
2875	arch=core2
2876	cpu=core2
2877	;;
2878      *)
2879	arch=x86-64
2880	cpu=generic
2881	;;
2882    esac
2883    ;;
2884esac
2885
2886# If there is no $with_cpu option, try to infer one from ${target}.
2887# This block sets nothing except for with_cpu.
2888if test x$with_cpu = x ; then
2889  case ${target} in
2890    i[34567]86-*-*|x86_64-*-*)
2891      with_cpu=$cpu
2892      ;;
2893    alphaev6[78]*-*-*)
2894      with_cpu=ev67
2895      ;;
2896    alphaev6*-*-*)
2897      with_cpu=ev6
2898      ;;
2899    alphapca56*-*-*)
2900      with_cpu=pca56
2901      ;;
2902    alphaev56*-*-*)
2903      with_cpu=ev56
2904      ;;
2905    alphaev5*-*-*)
2906      with_cpu=ev5
2907      ;;
2908    frv-*-*linux* | frv400-*-*linux*)
2909      with_cpu=fr400
2910      ;;
2911    frv550-*-*linux*)
2912      with_cpu=fr550
2913      ;;
2914    m5200-*-*|m5407-*-*)
2915      with_cpu=${default_cf_cpu}
2916      ;;
2917    m68k*-*-*)
2918      case "$with_arch" in
2919	"cf")
2920	  with_cpu=${default_cf_cpu}
2921	  ;;
2922	"" | "m68k")
2923	  with_cpu=m${default_m68k_cpu}
2924	  ;;
2925      esac
2926      ;;
2927    mips*-*-vxworks)
2928      with_arch=mips2
2929      ;;
2930    sparc*-*-*)
2931      with_cpu="`echo ${target} | sed 's/-.*$//'`"
2932      ;;
2933  esac
2934
2935  # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
2936  case ${target} in
2937    i[34567]86-*-*|x86_64-*-*)
2938      if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
2939	if test x$with_cpu_32 = x; then
2940	  with_cpu_32=$with_cpu
2941	fi
2942	if test x$with_cpu_64 = x; then
2943	  with_cpu_64=$with_cpu
2944	fi
2945        with_cpu=
2946      fi
2947      ;;
2948  esac
2949fi
2950
2951# Support for --with-arch and related options (and a few unrelated options,
2952# too).
2953case ${with_arch} in
2954  yes | no)
2955    echo "--with-arch must be passed a value" 1>&2
2956    exit 1
2957    ;;
2958esac
2959
2960# If there is no $with_arch option, try to infer one from ${target}.
2961# This block sets nothing except for with_arch.
2962if test x$with_arch = x ; then
2963  case ${target} in
2964    i[34567]86-*-darwin*|x86_64-*-darwin*)
2965      # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
2966      # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
2967      ;;
2968    i[34567]86-*-*)
2969      # --with-fpmath sets the default ISA to SSE2, which is the same
2970      # ISA supported by Pentium 4.
2971      if test x$with_fpmath = x || test $arch_without_sse2 = no; then
2972	with_arch=$arch
2973      else
2974	with_arch=pentium4
2975      fi
2976      ;;
2977    x86_64-*-*)
2978      with_arch=$arch
2979      ;;
2980  esac
2981
2982  # Avoid overriding --with-arch-32 and --with-arch-64 values.
2983  case ${target} in
2984    i[34567]86-*-darwin*|x86_64-*-darwin*)
2985      # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
2986      # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
2987      ;;
2988    i[34567]86-*-*|x86_64-*-*)
2989      if test x$with_arch_32 != x || test x$with_arch_64 != x; then
2990	if test x$with_arch_32 = x; then
2991	  with_arch_32=$with_arch
2992	fi
2993	if test x$with_arch_64 = x; then
2994	  if test $arch_without_64bit = yes; then
2995	    # Set the default 64bit arch to x86-64 if the default arch
2996	    # doesn't support 64bit.
2997	    with_arch_64=x86-64
2998	  else
2999	    with_arch_64=$with_arch
3000	  fi
3001	fi
3002	with_arch=
3003      elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3004	# Set the default 64bit arch to x86-64 if the default arch
3005	# doesn't support 64bit and we need 64bit ISA.
3006	with_arch_32=$with_arch
3007	with_arch_64=x86-64
3008	with_arch=
3009      fi
3010      ;;
3011  esac
3012fi
3013
3014# Support --with-fpmath.
3015if test x$with_fpmath != x; then
3016  case ${target} in
3017    i[34567]86-*-* | x86_64-*-*)
3018      case ${with_fpmath} in
3019      sse)
3020	tm_file="${tm_file} i386/ssemath.h"
3021	;;
3022      *)
3023	echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3024	exit 1
3025	;;
3026      esac
3027      ;;
3028    *)
3029      echo "--with-fpmath isn't supported for $target." 1>&2
3030      exit 1
3031      ;;
3032  esac
3033fi
3034
3035# Similarly for --with-schedule.
3036if test x$with_schedule = x; then
3037	case ${target} in
3038	hppa1*)
3039		# Override default PA8000 scheduling model.
3040		with_schedule=7100LC
3041		;;
3042	esac
3043fi
3044
3045# Validate and mark as valid any --with options supported
3046# by this target.  In order to use a particular --with option
3047# you must list it in supported_defaults; validating the value
3048# is optional.  This case statement should set nothing besides
3049# supported_defaults.
3050
3051supported_defaults=
3052case "${target}" in
3053	alpha*-*-*)
3054		supported_defaults="cpu tune"
3055		for which in cpu tune; do
3056			eval "val=\$with_$which"
3057			case "$val" in
3058			"" \
3059			| ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3060			| pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3061			| 21264a)
3062				;;
3063			*)
3064				echo "Unknown CPU used in --with-$which=$val" 1>&2
3065				exit 1
3066				;;
3067			esac
3068		done
3069		;;
3070
3071	arm*-*-*)
3072		supported_defaults="arch cpu float tune fpu abi mode"
3073		for which in cpu tune; do
3074			# See if it matches any of the entries in arm-cores.def
3075			eval "val=\$with_$which"
3076			if [ x"$val" = x ] \
3077			    || grep "^ARM_CORE(\"$val\"," \
3078				    ${srcdir}/config/arm/arm-cores.def \
3079				    > /dev/null; then
3080			  # Ok
3081			  new_val=`grep "^ARM_CORE(\"$val\"," \
3082				${srcdir}/config/arm/arm-cores.def | \
3083				sed -e 's/^[^,]*,[ 	]*//' | \
3084				sed -e 's/,.*$//'`
3085			  eval "target_${which}_cname=$new_val"
3086			echo "For $val real value is $new_val"
3087			  true
3088			else
3089			  echo "Unknown CPU used in --with-$which=$val" 1>&2
3090			  exit 1
3091			fi
3092		done
3093
3094		case "$with_arch" in
3095		"" \
3096		| armv[23456] | armv2a | armv3m | armv4t | armv5t \
3097		| armv5te | armv6j |armv6k | armv6z | armv6zk | armv6-m \
3098		| armv7 | armv7-a | armv7-r | armv7-m \
3099		| iwmmxt | ep9312)
3100			# OK
3101			;;
3102		*)
3103			echo "Unknown arch used in --with-arch=$with_arch" 1>&2
3104			exit 1
3105			;;
3106		esac
3107
3108		case "$with_float" in
3109		"" \
3110		| soft | hard | softfp)
3111			# OK
3112			;;
3113		*)
3114			echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3115			exit 1
3116			;;
3117		esac
3118
3119		case "$with_fpu" in
3120		"" \
3121		| fpa | fpe2 | fpe3 | maverick | vfp | vfp3 | vfpv3 \
3122		| vfpv3-fp16 | vfpv3-d16 | vfpv3-d16-fp16 | vfpv3xd \
3123		| vfpv3xd-fp16 | neon | neon-fp16 | vfpv4 | vfpv4-d16 \
3124		| fpv4-sp-d16 | neon-vfpv4)
3125			# OK
3126			;;
3127		*)
3128			echo "Unknown fpu used in --with-fpu=$with_fpu" 2>&1
3129			exit 1
3130			;;
3131		esac
3132
3133		case "$with_abi" in
3134		"" \
3135		| apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3136			#OK
3137			;;
3138		*)
3139			echo "Unknown ABI used in --with-abi=$with_abi"
3140			exit 1
3141			;;
3142		esac
3143
3144		case "$with_mode" in
3145		"" \
3146		| arm | thumb )
3147			#OK
3148			;;
3149		*)
3150			echo "Unknown mode used in --with-mode=$with_mode"
3151			exit 1
3152			;;
3153		esac
3154
3155		if test "x$with_arch" != x && test "x$with_cpu" != x; then
3156			echo "Warning: --with-arch overrides --with-cpu=$with_cpu" 1>&2
3157		fi
3158		;;
3159
3160	fr*-*-*linux*)
3161		supported_defaults=cpu
3162		case "$with_cpu" in
3163		fr400) ;;
3164		fr550) ;;
3165		*)
3166			echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3167			exit 1
3168			;;
3169		esac
3170		;;
3171
3172	fido-*-* | m68k*-*-* | m5200-*-* | m5407-*-*)
3173		supported_defaults="arch cpu"
3174		case "$with_arch" in
3175		"" | "m68k"| "cf")
3176			m68k_arch_family="$with_arch"
3177			;;
3178		*)
3179			echo "Invalid --with-arch=$with_arch" 1>&2
3180			exit 1
3181			;;
3182		esac
3183
3184		# We always have a $with_cpu setting here.
3185		case "$with_cpu" in
3186		"m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3187			m68k_cpu_ident=$with_cpu
3188			;;
3189		"m68020-40")
3190			m68k_cpu_ident=m68020
3191			tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3192			;;
3193		"m68020-60")
3194			m68k_cpu_ident=m68020
3195			tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3196			;;
3197		*)
3198			# We need the C identifier rather than the string.
3199			m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3200			   'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
3201			    $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
3202				 ${srcdir}/config/m68k/m68k-devices.def`
3203			if [ x"$m68k_cpu_ident" = x ] ; then
3204				echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
3205				exit 1
3206			fi
3207			with_cpu="mcpu=$with_cpu"
3208			;;
3209		esac
3210		;;
3211
3212	hppa*-*-*)
3213		supported_defaults="arch schedule"
3214
3215		case "$with_arch" in
3216		"" | 1.0 | 1.1 | 2.0)
3217			# OK
3218			;;
3219		*)
3220			echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
3221			exit 1
3222			;;
3223		esac
3224
3225		case "$with_schedule" in
3226		"" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
3227			# OK
3228			;;
3229		*)
3230			echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
3231			exit 1
3232			;;
3233		esac
3234		;;
3235
3236	i[34567]86-*-* | x86_64-*-*)
3237		supported_defaults="arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
3238		for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3239			eval "val=\$with_$which"
3240			case ${val} in
3241			i386 | i486 \
3242			| i586 | pentium | pentium-mmx | winchip-c6 | winchip2 \
3243			| c3 | c3-2 | i686 | pentiumpro | pentium2 | pentium3 \
3244			| pentium4 | k6 | k6-2 | k6-3 | athlon | athlon-tbird \
3245			| athlon-4 | athlon-xp | athlon-mp | geode \
3246			| prescott | pentium-m | pentium4m | pentium3m)
3247				case "${target}" in
3248				  x86_64-*-*)
3249				      case "x$which" in
3250					*_32)
3251						;;
3252					*)
3253						echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
3254						exit 1
3255						;;
3256				      esac
3257				      ;;
3258				esac
3259				# OK
3260				;;
3261			"" | x86-64 | generic | native \
3262			| k8 | k8-sse3 | athlon64 | athlon64-sse3 | opteron \
3263			| opteron-sse3 | athlon-fx | amdfam10 | barcelona \
3264			| nocona | core2 | atom)
3265				# OK
3266				;;
3267			*)
3268				echo "Unknown CPU given in --with-$which=$val." 1>&2
3269				exit 1
3270				;;
3271			esac
3272		done
3273		;;
3274
3275	mips*-*-*)
3276		supported_defaults="abi arch arch_32 arch_64 float tune tune_32 tune_64 divide llsc mips-plt synci"
3277
3278		case ${with_float} in
3279		"" | soft | hard)
3280			# OK
3281			;;
3282		*)
3283			echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3284			exit 1
3285			;;
3286		esac
3287
3288		case ${with_abi} in
3289		"" | 32 | o64 | n32 | 64 | eabi)
3290			# OK
3291			;;
3292		*)
3293			echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
3294			exit 1
3295			;;
3296		esac
3297
3298		case ${with_divide} in
3299		"" | breaks | traps)
3300			# OK
3301			;;
3302		*)
3303			echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
3304			exit 1
3305			;;
3306		esac
3307
3308		case ${with_llsc} in
3309		yes)
3310			with_llsc=llsc
3311			;;
3312		no)
3313			with_llsc="no-llsc"
3314			;;
3315		"")
3316			# OK
3317			;;
3318		*)
3319			echo "Unknown llsc type used in --with-llsc" 1>&2
3320			exit 1
3321			;;
3322		esac
3323
3324		case ${with_mips_plt} in
3325		yes)
3326			with_mips_plt=plt
3327			;;
3328		no)
3329			with_mips_plt=no-plt
3330			;;
3331		"")
3332			;;
3333		*)
3334			echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
3335			exit 1
3336			;;
3337		esac
3338
3339		case ${with_synci} in
3340		yes)
3341			with_synci=synci
3342			;;
3343		"" | no)
3344			# No is the default.
3345			with_synci=no-synci
3346			;;
3347		*)
3348			echo "Unknown synci type used in --with-synci" 1>&2
3349			exit 1
3350			;;
3351		esac
3352		;;
3353
3354	powerpc*-*-* | rs6000-*-*)
3355		supported_defaults="cpu cpu_32 cpu_64 float tune tune_32 tune_64"
3356
3357		for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3358			eval "val=\$with_$which"
3359			case ${val} in
3360			default32 | default64)
3361				case $which in
3362				cpu | tune)
3363					;;
3364				*)
3365					echo "$val only valid for --with-cpu and --with-tune." 1>&2
3366					exit 1
3367					;;
3368				esac
3369				with_which="with_$which"
3370				eval $with_which=
3371				;;
3372			405cr)
3373				tm_defines="${tm_defines} CONFIG_PPC405CR"
3374				eval "with_$which=405"
3375				;;
3376			"" | common \
3377			| power | power[234567] | power6x | powerpc | powerpc64 \
3378			| rios | rios1 | rios2 | rsc | rsc1 | rs64a \
3379			| 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
3380			| 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
3381			| 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
3382			| a2 | e300c[23] | 854[08] | e500mc | e500mc64 \
3383			| 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
3384				# OK
3385				;;
3386			*)
3387				echo "Unknown cpu used in --with-$which=$val." 1>&2
3388				exit 1
3389				;;
3390			esac
3391		done
3392		;;
3393
3394	s390*-*-*)
3395		supported_defaults="arch mode tune"
3396
3397		for which in arch tune; do
3398			eval "val=\$with_$which"
3399			case ${val} in
3400			"" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10)
3401				# OK
3402				;;
3403			*)
3404				echo "Unknown cpu used in --with-$which=$val." 1>&2
3405				exit 1
3406				;;
3407			esac
3408		done
3409
3410		case ${with_mode} in
3411		"" | esa | zarch)
3412			# OK
3413			;;
3414		*)
3415			echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
3416			exit 1
3417			;;
3418		esac
3419		;;
3420
3421	sh[123456ble]-*-* | sh-*-*)
3422		supported_defaults="cpu"
3423		case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
3424		"" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
3425			# OK
3426			;;
3427		m2a | m2a-single | m2a-single-only | m2a-nofpu)
3428			;;
3429		m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
3430		        ;;
3431		*)
3432			echo "Unknown CPU used in --with-cpu=$with_cpu, known values:"  1>&2
3433			echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
3434			echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
3435			echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
3436			exit 1
3437			;;
3438		esac
3439		;;
3440	sparc*-*-*)
3441		supported_defaults="cpu float tune"
3442
3443		for which in cpu tune; do
3444			eval "val=\$with_$which"
3445			case ${val} in
3446			"" | sparc | sparcv9 | sparc64 | sparc86x \
3447			| v7 | cypress | v8 | supersparc | sparclite | f930 \
3448			| f934 | hypersparc | sparclite86x | sparclet | tsc701 \
3449			| v9 | ultrasparc | ultrasparc3 | niagara | niagara2)
3450				# OK
3451				;;
3452			*)
3453				echo "Unknown cpu used in --with-$which=$val" 1>&2
3454				exit 1
3455				;;
3456			esac
3457		done
3458
3459		case ${with_float} in
3460		"" | soft | hard)
3461			# OK
3462			;;
3463		*)
3464			echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3465			exit 1
3466			;;
3467		esac
3468		;;
3469
3470	spu-*-*)
3471		supported_defaults="arch tune"
3472
3473		for which in arch tune; do
3474			eval "val=\$with_$which"
3475			case ${val} in
3476			"" | cell | celledp)
3477				# OK
3478				;;
3479			*)
3480				echo "Unknown cpu used in --with-$which=$val." 1>&2
3481				exit 1
3482				;;
3483			esac
3484		done
3485		;;
3486
3487	v850*-*-*)
3488		supported_defaults=cpu
3489		case ${with_cpu} in
3490		"" | v850e | v850e1)
3491			# OK
3492			;;
3493		*)
3494			echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3495			exit 1
3496			;;
3497		esac
3498		;;
3499esac
3500
3501# Set some miscellaneous flags for particular targets.
3502target_cpu_default2=
3503case ${target} in
3504	alpha*-*-*)
3505		if test x$gas = xyes
3506		then
3507			target_cpu_default2="MASK_GAS"
3508		fi
3509		;;
3510
3511	arm*-*-*)
3512		if test x$target_cpu_cname = x
3513		then
3514			target_cpu_default2=TARGET_CPU_generic
3515		else
3516			target_cpu_default2=TARGET_CPU_$target_cpu_cname
3517		fi
3518		;;
3519
3520	hppa*-*-*)
3521		target_cpu_default2="MASK_BIG_SWITCH"
3522		if test x$gas = xyes
3523		then
3524			target_cpu_default2="${target_cpu_default2}|MASK_GAS|MASK_JUMP_IN_DELAY"
3525		fi
3526		;;
3527
3528	fido*-*-* | m68k*-*-*)
3529		target_cpu_default2=$m68k_cpu_ident
3530		if [ x"$m68k_arch_family" != x ]; then
3531		        tmake_file="m68k/t-$m68k_arch_family $tmake_file"
3532		fi
3533		;;
3534
3535	i[34567]86-*-darwin* | x86_64-*-darwin*)
3536		tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
3537		;;
3538	i[34567]86-*-linux* | x86_64-*-linux* | \
3539	  i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
3540	  i[34567]86-*-gnu*)
3541		tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux"
3542		;;
3543	i[34567]86-*-solaris2*)
3544		tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
3545		;;
3546	i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
3547		tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
3548		;;
3549	ia64*-*-linux*)
3550		tmake_file="${tmake_file} ia64/t-fprules-softfp soft-fp/t-softfp"
3551		;;
3552
3553	mips*-*-*)
3554		if test x$gnu_ld = xyes
3555		then
3556			target_cpu_default2="MASK_SPLIT_ADDRESSES"
3557		fi
3558		case ${target} in
3559			mips*el-*-*)
3560				tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
3561				;;
3562		esac
3563		if test "x$enable_gofast" = xyes
3564		then
3565			tm_defines="US_SOFTWARE_GOFAST $tm_defines"
3566			tmake_file="mips/t-gofast $tmake_file"
3567		else
3568			tmake_file="mips/t-mips $tmake_file"
3569		fi
3570		;;
3571
3572	powerpc*-*-* | rs6000-*-*)
3573		# FIXME: The PowerPC port uses the value set at compile time,
3574		# although it's only cosmetic.
3575		if test "x$with_cpu" != x
3576		then
3577			target_cpu_default2="\\\"$with_cpu\\\""
3578		fi
3579		out_file=rs6000/rs6000.c
3580		c_target_objs="${c_target_objs} rs6000-c.o"
3581		cxx_target_objs="${cxx_target_objs} rs6000-c.o"
3582		tmake_file="rs6000/t-rs6000 ${tmake_file}"
3583
3584                if test x$enable_e500_double = xyes
3585                then
3586                        tm_file="$tm_file rs6000/e500-double.h"
3587                fi
3588		;;
3589
3590	sh[123456ble]*-*-* | sh-*-*)
3591		c_target_objs="${c_target_objs} sh-c.o"
3592		cxx_target_objs="${cxx_target_objs} sh-c.o"
3593		;;
3594
3595	sparc*-*-*)
3596		# Some standard aliases.
3597		case x$with_cpu in
3598		xsparc)
3599			with_cpu=v7
3600			;;
3601		xsparcv9 | xsparc64)
3602			with_cpu=v9
3603			;;
3604		esac
3605
3606		# The SPARC port checks this value at compile-time.
3607		target_cpu_default2="TARGET_CPU_$with_cpu"
3608		;;
3609	v850*-*-*)
3610		# FIXME: The v850 is "special" in that it does not support
3611		# runtime CPU selection, only --with-cpu.
3612		case "x$with_cpu" in
3613		x)
3614			;;
3615		xv850e)
3616			target_cpu_default2="TARGET_CPU_$with_cpu"
3617			;;
3618		esac
3619		;;
3620esac
3621
3622t=
3623all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu divide llsc mips-plt synci"
3624for option in $all_defaults
3625do
3626	eval "val=\$with_"`echo $option | sed s/-/_/g`
3627	if test -n "$val"; then
3628		case " $supported_defaults " in
3629		*" $option "*)
3630			;;
3631		*)
3632			echo "This target does not support --with-$option." 2>&1
3633			echo "Valid --with options are: $supported_defaults" 2>&1
3634			exit 1
3635			;;
3636		esac
3637
3638		if test "x$t" = x
3639		then
3640			t="{ \"$option\", \"$val\" }"
3641		else
3642			t="${t}, { \"$option\", \"$val\" }"
3643		fi
3644	fi
3645done
3646
3647if test "x$t" = x
3648then
3649	configure_default_options="{ { NULL, NULL} }"
3650else
3651	configure_default_options="{ ${t} }"
3652fi
3653
3654if test "$target_cpu_default2" != ""
3655then
3656	if test "$target_cpu_default" != ""
3657	then
3658		target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
3659	else
3660		target_cpu_default=$target_cpu_default2
3661	fi
3662fi
3663