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