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