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