1 # GCC target-specific configuration file.
2 # Copyright (C) 1997-2014 Free Software Foundation, Inc.
4 #This file is part of GCC.
6 #GCC is free software; you can redistribute it and/or modify it under
7 #the terms of the GNU General Public License as published by the Free
8 #Software Foundation; either version 3, or (at your option) any later
11 #GCC is distributed in the hope that it will be useful, but WITHOUT
12 #ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 #FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 #You should have received a copy of the GNU General Public License
17 #along with GCC; see the file COPYING3. If not see
18 #<http://www.gnu.org/licenses/>.
20 # This is the GCC target-specific configuration file
21 # where a configuration type is mapped to different system-specific
22 # definitions and files. This is invoked by the autoconf-generated
23 # configure script. Putting it in a separate shell file lets us skip
24 # running autoconf when modifying target-specific information.
26 # When you change the cases in the OS or target switches, consider
27 # updating ../libgcc/config.host also.
29 # This file switches on the shell variable ${target}, and also uses the
30 # following shell variables:
32 # with_* Various variables as set by configure.
34 # enable_threads Either the name, yes or no depending on whether
35 # threads support was requested.
37 # default_use_cxa_atexit
38 # The default value for the $enable___cxa_atexit
39 # variable. enable___cxa_atexit needs to be set to
40 # "yes" for the correct operation of C++ destructors
41 # but it relies upon the presence of a non-standard C
42 # library function called __cxa_atexit.
43 # Since not all C libraries provide __cxa_atexit the
44 # default value of $default_use_cxa_atexit is set to
45 # "no" except for targets which are known to be OK.
47 # default_gnu_indirect_function
48 # The default value for the $enable_gnu_indirect_function
49 # variable. enable_gnu_indirect_function relies
50 # upon the presence of a non-standard gnu ifunc support
51 # in the assembler, linker and dynamic linker.
52 # Since not all libraries provide the dynamic linking
53 # support, the default value of
54 # $default_gnu_indirect_function is set to
55 # "no" except for targets which are known to be OK.
57 # gas_flag Either yes or no depending on whether GNU as was
60 # gnu_ld_flag Either yes or no depending on whether GNU ld was
63 # This file sets the following shell variables for use by the
64 # autoconf-generated configure script:
66 # cpu_type The name of the cpu, if different from the first
67 # chunk of the canonical target name.
69 # tm_defines List of target macros to define for all compilations.
71 # tm_file A list of target macro files, if different from
72 # "$cpu_type/$cpu_type.h". Usually it's constructed
73 # per target in a way like this:
74 # tm_file="${tm_file} dbxelf.h elfos.h ${cpu_type.h}/elf.h"
75 # Note that the preferred order is:
76 # - specific target header "${cpu_type}/${cpu_type.h}"
77 # - generic headers like dbxelf.h elfos.h, etc.
78 # - specializing target headers like ${cpu_type.h}/elf.h
79 # This helps to keep OS specific stuff out of the CPU
80 # defining header ${cpu_type}/${cpu_type.h}.
82 # It is possible to include automatically-generated
83 # build-directory files by prefixing them with "./".
84 # All other files should relative to $srcdir/config.
86 # tm_p_file Location of file with declarations for functions
89 # out_file The name of the machine description C support
90 # file, if different from "$cpu_type/$cpu_type.c".
92 # common_out_file The name of the source file for code shared between
93 # the compiler proper and the driver.
95 # md_file The name of the machine-description file, if
96 # different from "$cpu_type/$cpu_type.md".
98 # tmake_file A list of machine-description-specific
99 # makefile-fragments, if different from
100 # "$cpu_type/t-$cpu_type".
102 # extra_modes The name of the file containing a list of extra
103 # machine modes, if necessary and different from
104 # "$cpu_type/$cpu_type-modes.def".
106 # extra_objs List of extra objects that should be linked into
107 # the compiler proper (cc1, cc1obj, cc1plus)
108 # depending on target.
110 # extra_gcc_objs List of extra objects that should be linked into
111 # the compiler driver (gcc) depending on target.
113 # extra_headers List of used header files from the directory
114 # config/${cpu_type}.
116 # user_headers_inc_next_pre
117 # List of header file names of internal gcc header
118 # files, which should be prefixed by an include_next.
119 # user_headers_inc_next_post
120 # List of header file names of internal gcc header
121 # files, which should be postfixed by an include_next.
122 # use_gcc_tgmath If set, add tgmath.h to the list of used header
125 # use_gcc_stdint If "wrap", install a version of stdint.h that
126 # wraps the system's copy for hosted compilations;
127 # if "provide", provide a version of systems without
128 # such a system header; otherwise "none", do not
129 # provide such a header at all.
131 # extra_programs List of extra executables compiled for this target
132 # machine, used when linking.
134 # extra_options List of target-dependent .opt files.
136 # c_target_objs List of extra target-dependent objects that be
137 # linked into the C compiler only.
139 # cxx_target_objs List of extra target-dependent objects that be
140 # linked into the C++ compiler only.
142 # fortran_target_objs List of extra target-dependent objects that be
143 # linked into the fortran compiler only.
145 # target_gtfiles List of extra source files with type information.
147 # xm_defines List of macros to define when compiling for the
150 # xm_file List of files to include when compiling for the
153 # use_collect2 Set to yes or no, depending on whether collect2
156 # target_cpu_default Set to override the default target model.
158 # gdb_needs_out_file_path
159 # Set to yes if gdb needs a dir command with
160 # `dirname $out_file`.
162 # thread_file Set to control which thread package to use.
164 # gas Set to yes or no depending on whether the target
165 # system normally uses GNU as.
167 # configure_default_options
168 # Set to an initializer for configure_default_options
169 # in configargs.h, based on --with-cpu et cetera.
171 # native_system_header_dir
172 # Where system header files are found for this
173 # target. This defaults to /usr/include. If
174 # the --with-sysroot configure option or the
175 # --sysroot command line option is used this
176 # will be relative to the sysroot.
177 # target_type_format_char
178 # The default character to be used for formatting
180 # .type symbol_name, ${t_t_f_c}<property>
183 # The following variables are used in each case-construct to build up the
184 # outgoing variables:
186 # gnu_ld Set to yes or no depending on whether the target
187 # system normally uses GNU ld.
189 # target_has_targetcm Set to yes or no depending on whether the target
190 # has its own definition of targetcm.
192 # target_has_targetm_common Set to yes or no depending on whether the
193 # target has its own definition of targetm_common.
199 user_headers_inc_next_pre=
200 user_headers_inc_next_post=
210 target_has_targetcm=no
211 target_has_targetm_common=yes
214 # Set this to force installation and use of collect2.
216 # Set this to override the default target model.
218 # Set this if gdb needs a dir command with `dirname $out_file`
219 gdb_needs_out_file_path=
220 # Set this to control which thread package will be used.
222 # Reinitialize these from the flag values every loop pass, since some
223 # configure entries modify them.
225 gnu_ld="$gnu_ld_flag"
226 default_use_cxa_atexit=no
227 default_gnu_indirect_function=no
230 native_system_header_dir=/usr/include
231 target_type_format_char='@'
233 # Don't carry these over build->host->target. Please.
237 # Obsolete configurations.
239 # Currently there are no obsolete targets.
242 if test "x$enable_obsolete" != xyes; then
243 echo "*** Configuration ${target} is obsolete." >&2
244 echo "*** Specify --enable-obsolete to build it anyway." >&2
245 echo "*** Support will be REMOVED in the next major release of GCC," >&2
246 echo "*** unless a maintainer comes forward." >&2
251 # Unsupported targets list. Do not put an entry in this list unless
252 # it would otherwise be caught by a more permissive pattern. The list
253 # should be in alphabetical order.
255 # Avoid special cases that are not obsolete
265 | i[34567]86-go32-* \
266 | i[34567]86-*-go32* \
267 | m68k-*-uclinuxoldabi* \
268 | mips64orion*-*-rtems* \
270 | sparc-hal-solaris2* \
272 | *-*-freebsd[12] | *-*-freebsd[12].* \
273 | *-*-freebsd*aout* \
281 | *-*-solaris2.[0-9] \
282 | *-*-solaris2.[0-9].* \
286 echo "*** Configuration ${target} not supported" 1>&2
291 # Set default cpu_type, tm_file, tm_p_file and xm_file so it can be
292 # updated in each machine entry. Also set default extra_headers for some
295 cpu_type=`echo ${target} | sed 's/-.*$//'`
300 tmake_file=m32c/t-m32c
301 target_has_targetm_common=no
305 extra_headers="arm_neon.h arm_acle.h"
306 extra_objs="aarch64-builtins.o aarch-common.o"
307 target_has_targetm_common=yes
311 extra_options="${extra_options} g.opt"
321 extra_objs="aarch-common.o"
322 extra_headers="mmintrin.h arm_neon.h arm_acle.h"
323 target_type_format_char='%'
324 c_target_objs="arm-c.o"
325 cxx_target_objs="arm-c.o"
326 extra_options="${extra_options} arm/arm-tables.opt"
330 c_target_objs="avr-c.o"
331 cxx_target_objs="avr-c.o"
332 extra_options="${extra_options} avr/avr-tables.opt"
341 extra_options="${extra_options} g.opt"
343 moxie*) cpu_type=moxie
344 target_has_targetm_common=no
348 extra_headers=math-68881.h
349 extra_options="${extra_options} m68k/m68k-tables.opt"
353 c_target_objs="i386-c.o"
354 cxx_target_objs="i386-c.o"
355 extra_options="${extra_options} fused-madd.opt"
356 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
357 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
358 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
359 immintrin.h x86intrin.h avxintrin.h xopintrin.h
360 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
361 lzcntintrin.h bmiintrin.h bmi2intrin.h tbmintrin.h
362 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
363 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
364 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
365 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
366 shaintrin.h clflushoptintrin.h xsavecintrin.h
367 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
368 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h"
372 c_target_objs="i386-c.o"
373 cxx_target_objs="i386-c.o"
374 extra_options="${extra_options} fused-madd.opt"
375 extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
376 pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
377 nmmintrin.h bmmintrin.h fma4intrin.h wmmintrin.h
378 immintrin.h x86intrin.h avxintrin.h xopintrin.h
379 ia32intrin.h cross-stdarg.h lwpintrin.h popcntintrin.h
380 lzcntintrin.h bmiintrin.h tbmintrin.h bmi2intrin.h
381 avx2intrin.h avx512fintrin.h fmaintrin.h f16cintrin.h
382 rtmintrin.h xtestintrin.h rdseedintrin.h prfchwintrin.h
383 adxintrin.h fxsrintrin.h xsaveintrin.h xsaveoptintrin.h
384 avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
385 shaintrin.h clflushoptintrin.h xsavecintrin.h
386 xsavesintrin.h avx512dqintrin.h avx512bwintrin.h
387 avx512vlintrin.h avx512vlbwintrin.h avx512vldqintrin.h"
390 extra_headers=ia64intrin.h
391 extra_options="${extra_options} g.opt fused-madd.opt"
397 extra_options="${extra_options} g.opt"
401 extra_options="${extra_options} g.opt"
404 extra_headers=math-68881.h
405 extra_options="${extra_options} m68k/m68k-tables.opt"
409 extra_options="${extra_options} g.opt"
413 extra_headers="loongson.h"
414 extra_options="${extra_options} g.opt mips/mips-tables.opt"
418 extra_headers="nds32_intrinsic.h"
419 extra_objs="nds32-cost.o nds32-intrinsic.o nds32-isr.o nds32-md-auxiliary.o nds32-pipelines-auxiliary.o nds32-predicates.o nds32-memory-manipulation.o nds32-fp-as-gp.o"
423 extra_options="${extra_options} g.opt"
427 extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h"
429 xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500)
433 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
436 extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
440 c_target_objs="sparc-c.o"
441 cxx_target_objs="sparc-c.o"
442 extra_headers="visintrin.h"
449 extra_options="${extra_options} fused-madd.opt"
450 extra_headers="s390intrin.h htmintrin.h htmxlintrin.h"
452 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
453 sh[123456789lbe]*-*-* | sh-*-*)
455 extra_options="${extra_options} fused-madd.opt"
456 extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
463 extra_headers="c6x_intrinsics.h"
464 extra_options="${extra_options} c6x/c6x-tables.opt"
467 extra_options="${extra_options} fused-madd.opt"
477 tm_file=${cpu_type}/${cpu_type}.h
478 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
480 tm_p_file=${cpu_type}/${cpu_type}-protos.h
483 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def
485 extra_modes=${cpu_type}/${cpu_type}-modes.def
487 if test -f ${srcdir}/config/${cpu_type}/${cpu_type}.opt
489 extra_options="${extra_options} ${cpu_type}/${cpu_type}.opt"
494 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
497 if test "x$with_multilib_list" = xilp32; then
498 tm_file="aarch64/biarchilp32.h ${tm_file}"
500 tm_file="aarch64/biarchlp64.h ${tm_file}"
504 tm_file="aarch64/biarchilp32.h ${tm_file}"
507 tm_file="aarch64/biarchlp64.h ${tm_file}"
510 echo "Unknown ABI used in --with-abi=$with_abi"
515 if test "x$with_abi" != x; then
516 echo "This target does not support --with-abi."
519 if test "x$enable_cld" = xyes; then
520 tm_defines="${tm_defines} USE_IX86_CLD=1"
522 if test "x$enable_frame_pointer" = xyes; then
523 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
525 tm_file="vxworks-dummy.h ${tm_file}"
530 if test "x$with_multilib_list" = xmx32; then
531 tm_file="i386/biarchx32.h ${tm_file}"
533 tm_file="i386/biarch64.h ${tm_file}"
537 tm_file="i386/biarch64.h ${tm_file}"
540 tm_file="i386/biarchx32.h ${tm_file}"
543 echo "Unknown ABI used in --with-abi=$with_abi"
546 if test "x$enable_cld" = xyes; then
547 tm_defines="${tm_defines} USE_IX86_CLD=1"
549 if test "x$enable_frame_pointer" = xyes; then
550 tm_defines="${tm_defines} USE_IX86_FRAME_POINTER=1"
552 tm_file="vxworks-dummy.h ${tm_file}"
555 tm_p_file="${tm_p_file} arm/aarch-common-protos.h"
556 tm_file="vxworks-dummy.h ${tm_file}"
558 mips*-*-* | sh*-*-* | sparc*-*-*)
559 tm_file="vxworks-dummy.h ${tm_file}"
563 # On a.out targets, we need to use collect2.
570 # Common C libraries.
571 tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3"
573 # 32-bit x86 processors supported by --with-arch=. Each processor
574 # MUST be separated by exactly one space.
575 x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
576 athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
577 i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
578 pentium4 pentium4m pentiumpro prescott"
580 # 64-bit x86 processors supported by --with-arch=. Each processor
581 # MUST be separated by exactly one space.
582 x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \
583 bdver3 bdver4 btver1 btver2 k8 k8-sse3 opteron opteron-sse3 nocona \
584 core2 corei7 corei7-avx core-avx-i core-avx2 atom slm nehalem westmere \
585 sandybridge ivybridge haswell broadwell bonnell silvermont x86-64 native"
587 # Additional x86 processors supported by --with-cpu=. Each processor
588 # MUST be separated by exactly one space.
589 x86_cpus="generic intel"
591 # Common parts for widely ported systems.
594 tmake_file="t-darwin ${cpu_type}/t-darwin"
595 tm_file="${tm_file} darwin.h"
598 tm_file="${tm_file} darwin9.h"
600 *-*-darwin[12][0-9]*)
601 tm_file="${tm_file} darwin9.h darwin10.h"
604 tm_file="${tm_file} ${cpu_type}/darwin.h"
605 tm_p_file="${tm_p_file} darwin-protos.h"
606 target_gtfiles="\$(srcdir)/config/darwin.c"
607 extra_options="${extra_options} darwin.opt"
608 c_target_objs="${c_target_objs} darwin-c.o"
609 cxx_target_objs="${cxx_target_objs} darwin-c.o"
610 fortran_target_objs="darwin-f.o"
611 target_has_targetcm=yes
612 extra_objs="darwin.o"
613 extra_gcc_objs="darwin-driver.o"
614 default_use_cxa_atexit=yes
616 case ${enable_threads} in
617 "" | yes | posix) thread_file='posix' ;;
623 tmake_file="t-slibgcc"
624 case ${enable_threads} in
629 # Let these non-posix thread selections fall through if requested
632 echo 'Unknown thread configuration for DragonFly BSD'
636 extra_options="$extra_options rpath.opt dragonfly.opt"
637 default_use_cxa_atexit=yes
641 # This is the generic ELF configuration of FreeBSD. Later
642 # machine-specific sections may refine and add to this
645 # Due to tm_file entry ordering issues that vary between cpu
646 # architectures, we only define fbsd_tm_file to allow the
647 # machine-specific section to dictate the final order of all
648 # entries of tm_file with the minor exception that components
649 # of the tm_file set here will always be of the form:
651 # freebsd<version_number>.h [freebsd-<conf_option>.h ...] freebsd-spec.h freebsd.h
653 # The machine-specific section should not tamper with this
654 # ordering but may order all other entries of tm_file as it
655 # pleases around the provided core setting.
658 fbsd_major=`echo ${target} | sed -e 's/.*freebsd//g' | sed -e 's/\..*//g'`
659 tm_defines="${tm_defines} FBSD_MAJOR=${fbsd_major}"
660 tmake_file="t-slibgcc"
661 case ${enable_threads} in
663 fbsd_tm_file="${fbsd_tm_file} freebsd-nthr.h"
669 echo 'Unknown thread configuration for FreeBSD'
673 fbsd_tm_file="${fbsd_tm_file} freebsd-spec.h freebsd.h freebsd-stdint.h"
674 extra_options="$extra_options rpath.opt freebsd.opt"
679 default_use_cxa_atexit=yes;;
683 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
684 extra_options="$extra_options gnu-user.opt"
687 case ${enable_threads} in
688 "" | yes | posix) thread_file='posix' ;;
690 tmake_file="t-slibgcc"
692 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-kopensolaris*-gnu)
695 native_system_header_dir=/include
698 # Linux C libraries selection switch: glibc / uclibc / bionic.
699 # uclibc and bionic aren't usable for GNU/Hurd and neither for GNU/k*BSD.
702 tm_p_file="${tm_p_file} linux-protos.h"
703 tmake_file="${tmake_file} t-linux"
704 extra_objs="${extra_objs} linux.o"
705 extra_options="${extra_options} linux.opt"
710 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_BIONIC"
713 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC"
716 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_GLIBC"
719 # Assume that glibc or uClibc or Bionic are being used and so __cxa_atexit
721 default_use_cxa_atexit=yes
724 # Enable compilation for Android by default for *android* targets.
727 tm_defines="$tm_defines ANDROID_DEFAULT=1"
730 tm_defines="$tm_defines ANDROID_DEFAULT=0"
733 c_target_objs="${c_target_objs} glibc-c.o"
734 cxx_target_objs="${cxx_target_objs} glibc-c.o"
735 tmake_file="${tmake_file} t-glibc"
736 target_has_targetcm=yes
739 tmake_file="t-slibgcc"
743 # NetBSD 2.0 and later get POSIX threads enabled by default.
744 # Allow them to be explicitly enabled on any other version.
745 case ${enable_threads} in
748 *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
750 tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
756 tm_defines="${tm_defines} NETBSD_ENABLE_PTHREADS"
760 # NetBSD 2.0 and later provide __cxa_atexit(), which we use by
761 # default (unless overridden by --disable-__cxa_atexit).
763 *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*)
764 default_use_cxa_atexit=yes
769 tmake_file="t-openbsd"
770 case ${enable_threads} in
776 *-*-openbsd2.*|*-*-openbsd3.[012])
777 tm_defines="${tm_defines} HAS_LIBC_R=1" ;;
780 *-*-openbsd4.[3-9]|*-*-openbsd[5-9]*)
781 default_use_cxa_atexit=yes
786 case ${enable_threads} in
787 "" | yes | rtems) thread_file='rtems' ;;
788 posix) thread_file='posix' ;;
791 echo 'Unknown thread configuration for RTEMS'
795 tmake_file="${tmake_file} t-rtems"
796 extra_options="${extra_options} rtems.opt"
797 default_use_cxa_atexit=yes
801 extra_options="$extra_options gnu-user.opt"
803 tm_defines="$tm_defines DEFAULT_LIBC=LIBC_UCLIBC SINGLE_LIBC"
809 # i?86-*-solaris2* needs to insert headers between cpu default and
810 # Solaris 2 specific ones.
811 sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h"
812 sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
813 sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
815 if test x$gnu_ld = xyes; then
816 tm_file="usegld.h ${tm_file}"
818 if test x$gas = xyes; then
819 tm_file="usegas.h ${tm_file}"
821 tm_p_file="${tm_p_file} sol2-protos.h"
822 tmake_file="${tmake_file} t-sol2 t-slibgcc"
823 c_target_objs="${c_target_objs} sol2-c.o"
824 cxx_target_objs="${cxx_target_objs} sol2-c.o sol2-cxx.o"
825 extra_objs="sol2.o sol2-stubs.o"
826 extra_options="${extra_options} sol2.opt"
827 case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
828 "":yes:* | yes:yes:* )
834 extra_options="${extra_options} vms/vms.opt"
836 tmake_file="vms/t-vms t-slibgcc"
838 target_gtfiles="$target_gtfiles \$(srcdir)/config/vms/vms.c"
839 tm_p_file="${tm_p_file} vms/vms-protos.h"
840 xm_file="vms/xm-vms.h"
841 c_target_objs="vms-c.o"
842 cxx_target_objs="vms-c.o"
843 fortran_target_objs="vms-f.o"
844 use_gcc_stdint=provide
845 tm_file="${tm_file} vms/vms-stdint.h"
846 if test x$gnu_ld != xyes; then
847 # Build wrappers for native case.
848 extra_programs="ld\$(exeext) ar\$(exeext)"
849 tmake_file="$tmake_file vms/t-vmsnative"
855 extra_options="${extra_options} vxworks.opt"
856 extra_objs="$extra_objs vxworks.o"
857 case ${enable_threads} in
859 "" | yes | vxworks) thread_file='vxworks' ;;
860 *) echo 'Unknown thread configuration for VxWorks'; exit 1 ;;
864 # Assume that newlib is being used and so __cxa_atexit is provided.
865 default_use_cxa_atexit=yes
872 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h"
873 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-elf-raw.h"
874 tmake_file="${tmake_file} aarch64/t-aarch64"
878 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
881 aarch64_multilibs="${with_multilib_list}"
882 if test "$aarch64_multilibs" = "default"; then
883 aarch64_multilibs="lp64,ilp32"
885 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
886 for aarch64_multilib in ${aarch64_multilibs}; do
887 case ${aarch64_multilib} in
889 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
892 echo "--with-multilib-list=${aarch64_multilib} not supported."
896 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
899 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h"
900 tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-linux.h"
901 tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-linux"
904 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
907 aarch64_multilibs="${with_multilib_list}"
908 if test "$aarch64_multilibs" = "default"; then
909 # TODO: turn on ILP32 multilib build after its support is mature.
910 # aarch64_multilibs="lp64,ilp32"
911 aarch64_multilibs="lp64"
913 aarch64_multilibs=`echo $aarch64_multilibs | sed -e 's/,/ /g'`
914 for aarch64_multilib in ${aarch64_multilibs}; do
915 case ${aarch64_multilib} in
917 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${aarch64_multilib}"
920 echo "--with-multilib-list=${aarch64_multilib} not supported."
924 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
927 tm_file="elfos.h ${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h glibc-stdint.h"
928 tmake_file="${tmake_file} alpha/t-linux"
929 extra_options="${extra_options} alpha/elf.opt"
932 tm_file="elfos.h ${tm_file} ${fbsd_tm_file} alpha/elf.h alpha/freebsd.h"
933 extra_options="${extra_options} alpha/elf.opt"
936 tm_file="elfos.h ${tm_file} netbsd.h alpha/elf.h netbsd-elf.h alpha/netbsd.h"
937 extra_options="${extra_options} netbsd.opt netbsd-elf.opt \
941 tm_defines="${tm_defines} OBSD_HAS_DECLARE_FUNCTION_NAME OBSD_HAS_DECLARE_FUNCTION_SIZE OBSD_HAS_DECLARE_OBJECT"
942 tm_file="elfos.h alpha/alpha.h alpha/elf.h openbsd.h openbsd-stdint.h alpha/openbsd.h openbsd-libpthread.h"
943 extra_options="${extra_options} openbsd.opt alpha/elf.opt"
944 # default x-alpha is only appropriate for dec-osf.
947 tm_file="${tm_file} vms/vms.h alpha/vms.h"
948 tmake_file="${tmake_file} alpha/t-vms"
951 extra_headers="arc-simd.h"
952 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
953 tmake_file="arc/t-arc-newlib arc/t-arc"
954 case x"${with_cpu}" in
955 xarc600|xarc601|xarc700)
956 target_cpu_default="TARGET_CPU_$with_cpu"
959 if test x${with_endian} = x; then
961 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
962 *) with_endian=little ;;
965 case ${with_endian} in
967 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
969 case ${with_endian} in
970 big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
973 arc*-*-linux-uclibc*)
974 extra_headers="arc-simd.h"
975 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file}"
976 tmake_file="${tmake_file} arc/t-arc-uClibc arc/t-arc"
977 tm_defines="${tm_defines} TARGET_SDATA_DEFAULT=0"
978 tm_defines="${tm_defines} TARGET_MMEDIUM_CALLS_DEFAULT=1"
979 case x"${with_cpu}" in
980 xarc600|xarc601|xarc700)
981 target_cpu_default="TARGET_CPU_$with_cpu"
984 if test x${with_endian} = x; then
986 arc*be-*-* | arc*eb-*-*) with_endian=big ;;
987 *) with_endian=little ;;
990 case ${with_endian} in
992 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
994 case ${with_endian} in
995 big*) tm_defines="DRIVER_ENDIAN_SELF_SPECS=\\\"%{!EL:%{!mlittle-endian:-mbig-endian}}\\\" ${tm_defines}"
999 tm_file="elfos.h arm/elf.h arm/aout.h ${tm_file} vx-common.h vxworks.h arm/vxworks.h"
1000 extra_options="${extra_options} arm/vxworks.opt"
1001 tmake_file="${tmake_file} arm/t-arm arm/t-vxworks"
1004 tm_file="dbxelf.h elfos.h netbsd.h netbsd-elf.h arm/elf.h arm/aout.h ${tm_file} arm/netbsd-elf.h"
1005 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1006 tmake_file="${tmake_file} arm/t-arm"
1008 arm*-*-linux-*) # ARM GNU/Linux with ELF
1009 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h arm/elf.h arm/linux-gas.h arm/linux-elf.h"
1010 extra_options="${extra_options} linux-android.opt"
1013 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1016 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
1017 tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1018 # Define multilib configuration for arm-linux-androideabi.
1021 tmake_file="$tmake_file arm/t-linux-androideabi"
1024 # The EABI requires the use of __cxa_atexit.
1025 default_use_cxa_atexit=yes
1026 with_tls=${with_tls:-gnu}
1028 arm*-*-uclinux*eabi*) # ARM ucLinux
1029 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/linux-gas.h arm/uclinux-elf.h glibc-stdint.h"
1030 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf arm/t-bpabi"
1031 tm_file="$tm_file arm/bpabi.h arm/uclinux-eabi.h arm/aout.h vxworks-dummy.h arm/arm.h"
1032 # The EABI requires the use of __cxa_atexit.
1033 default_use_cxa_atexit=yes
1035 arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtems*)
1038 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
1040 default_use_cxa_atexit=yes
1041 tm_file="dbxelf.h elfos.h arm/unknown-elf.h arm/elf.h arm/bpabi.h"
1042 tmake_file="${tmake_file} arm/t-arm arm/t-arm-elf"
1045 tm_file="$tm_file newlib-stdint.h"
1046 tmake_file="${tmake_file} arm/t-bpabi"
1050 tm_file="${tm_file} rtems.h arm/rtems-eabi.h newlib-stdint.h"
1051 tmake_file="${tmake_file} arm/t-bpabi arm/t-rtems-eabi"
1054 tm_file="${tm_file} arm/symbian.h"
1055 # We do not include t-bpabi for Symbian OS because the system
1056 # provides its own implementation of the BPABI functions.
1057 tmake_file="${tmake_file} arm/t-symbian"
1060 tm_file="${tm_file} arm/aout.h vxworks-dummy.h arm/arm.h"
1063 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/rtems.h rtems.h newlib-stdint.h"
1064 tmake_file="${tmake_file} avr/t-avr avr/t-multilib avr/t-rtems"
1065 extra_gcc_objs="driver-avr.o avr-devices.o"
1066 extra_objs="avr-devices.o avr-log.o"
1069 tm_file="elfos.h avr/elf.h avr/avr-arch.h avr/avr.h dbxelf.h avr/avr-stdint.h"
1070 if test x${with_avrlibc} != xno; then
1071 tm_file="${tm_file} ${cpu_type}/avrlibc.h"
1072 tm_defines="${tm_defines} WITH_AVRLIBC"
1074 tmake_file="${tmake_file} avr/t-avr avr/t-multilib"
1076 extra_gcc_objs="driver-avr.o avr-devices.o"
1077 extra_objs="avr-devices.o avr-log.o"
1080 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1081 tmake_file=bfin/t-bfin-elf
1085 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/uclinux.h"
1086 tmake_file=bfin/t-bfin-uclinux
1089 bfin*-linux-uclibc*)
1090 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h gnu-user.h linux.h glibc-stdint.h bfin/linux.h ./linux-sysroot-suffix.h"
1091 tmake_file="bfin/t-bfin-linux t-slibgcc t-linux"
1095 tm_file="${tm_file} dbxelf.h elfos.h bfin/elf.h bfin/rtems.h rtems.h newlib-stdint.h"
1096 tmake_file="${tmake_file} bfin/t-rtems"
1099 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h bfin/elf.h"
1104 tm_file="elfos.h ${tm_file}"
1105 tmake_file="${tmake_file} cr16/t-cr16 "
1108 crisv32-*-elf | crisv32-*-none)
1109 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1110 tmake_file="cris/t-cris"
1111 target_cpu_default=32
1113 extra_options="${extra_options} cris/elf.opt"
1116 cris-*-elf | cris-*-none)
1117 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1118 tmake_file="cris/t-cris cris/t-elfmulti"
1120 extra_options="${extra_options} cris/elf.opt"
1123 crisv32-*-linux* | cris-*-linux*)
1124 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h cris/linux.h"
1125 tmake_file="${tmake_file} cris/t-cris cris/t-linux"
1126 extra_options="${extra_options} cris/linux.opt"
1129 target_cpu_default=10
1132 target_cpu_default=32
1137 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1138 tmake_file="epiphany/t-epiphany"
1139 extra_options="${extra_options} fused-madd.opt"
1140 extra_objs="$extra_objs mode-switch-use.o resolve-sw-modes.o"
1141 tm_defines="${tm_defines} EPIPHANY_STACK_OFFSET=${with_stack_offset:-8}"
1142 extra_headers="epiphany_intrinsics.h"
1145 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1148 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1149 tmake_file=frv/t-frv
1152 tm_file="dbxelf.h elfos.h ${tm_file} \
1153 gnu-user.h linux.h glibc-stdint.h frv/linux.h"
1154 tmake_file="${tmake_file} frv/t-frv frv/t-linux"
1159 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1160 tmake_file="${tmake_file} moxie/t-moxie"
1165 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h glibc-stdint.h moxie/uclinux.h"
1166 tmake_file="${tmake_file} moxie/t-moxie"
1169 tmake_file="${tmake_file} moxie/t-moxie"
1170 tm_file="moxie/moxie.h dbxelf.h elfos.h moxie/rtems.h rtems.h newlib-stdint.h"
1175 tm_file="${tm_file} dbxelf.h elfos.h moxie/moxiebox.h newlib-stdint.h"
1176 tmake_file="${tmake_file} moxie/t-moxiebox"
1179 tmake_file="${tmake_file} h8300/t-h8300 h8300/t-rtems"
1180 tm_file="h8300/h8300.h dbxelf.h elfos.h h8300/elf.h h8300/rtems.h rtems.h newlib-stdint.h"
1183 tmake_file="h8300/t-h8300"
1184 tm_file="h8300/h8300.h dbxelf.h elfos.h newlib-stdint.h h8300/elf.h"
1187 target_cpu_default="MASK_PA_11|MASK_PA_20"
1188 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \
1189 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
1194 target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
1195 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h pa/pa-linux.h \
1196 pa/pa32-regs.h pa/pa32-linux.h"
1197 tmake_file="${tmake_file} pa/t-linux"
1200 target_cpu_default="MASK_PA_11"
1201 tm_file="${tm_file} dbxelf.h elfos.h openbsd.h openbsd-stdint.h openbsd-libpthread.h \
1202 pa/pa-openbsd.h pa/pa32-regs.h pa/pa32-openbsd.h"
1203 extra_options="${extra_options} openbsd.opt"
1207 hppa[12]*-*-hpux10*)
1209 hppa1.1-*-* | hppa2*-*-*)
1210 target_cpu_default="MASK_PA_11"
1213 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1214 pa/pa-hpux.h pa/pa-hpux10.h"
1215 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux10.opt"
1218 tm_file="${tm_file} pa/pa-hpux1010.h"
1219 extra_options="${extra_options} pa/pa-hpux1010.opt"
1222 use_gcc_stdint=provide
1223 tm_file="${tm_file} hpux-stdint.h"
1224 tmake_file="t-slibgcc"
1225 case ${enable_threads} in
1227 if test x$have_pthread_h = xyes ; then
1228 tmake_file="${tmake_file} pa/t-dce-thr"
1232 tmake_file="${tmake_file} pa/t-dce-thr"
1237 if test "x$with_dwarf2" != x; then
1238 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1243 target_cpu_default="MASK_PA_11|MASK_PA_20"
1244 if test x$gnu_ld = xyes
1246 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1248 tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h \
1249 pa/pa64-regs.h pa/pa-hpux.h pa/pa-hpux1010.h \
1253 tm_file="${tm_file} pa/pa-hpux1111.h pa/pa-64.h pa/pa64-hpux.h"
1254 extra_options="${extra_options} pa/pa-hpux1111.opt"
1257 tm_file="${tm_file} pa/pa-hpux1131.h pa/pa-64.h pa/pa64-hpux.h"
1258 extra_options="${extra_options} pa/pa-hpux1131.opt"
1261 tm_file="${tm_file} pa/pa-64.h pa/pa64-hpux.h"
1264 extra_options="${extra_options} pa/pa-hpux.opt \
1265 pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
1266 tmake_file="t-slibgcc"
1267 case x${enable_threads} in
1275 use_gcc_stdint=provide
1276 tm_file="${tm_file} hpux-stdint.h"
1280 tm_file="${tm_file} hpux-stdint.h"
1284 hppa[12]*-*-hpux11*)
1286 hppa1.1-*-* | hppa2*-*-*)
1287 target_cpu_default="MASK_PA_11"
1290 tm_file="${tm_file} pa/pa32-regs.h dbxelf.h pa/som.h \
1291 pa/pa-hpux.h pa/pa-hpux1010.h pa/pa-hpux11.h"
1292 extra_options="${extra_options} pa/pa-hpux.opt pa/pa-hpux1010.opt \
1296 tm_file="${tm_file} pa/pa-hpux1111.h"
1297 extra_options="${extra_options} pa/pa-hpux1111.opt"
1300 tm_file="${tm_file} pa/pa-hpux1131.h"
1301 extra_options="${extra_options} pa/pa-hpux1131.opt"
1304 tmake_file="t-slibgcc"
1305 case x${enable_threads} in
1314 use_gcc_stdint=provide
1315 tm_file="${tm_file} hpux-stdint.h"
1319 tm_file="${tm_file} hpux-stdint.h"
1322 if test "x$with_dwarf2" != x; then
1323 echo "Warning: dwarf2 debug format is not supported for this target, --with-dwarf2 ignored" 1>&2
1327 i[34567]86-*-darwin*)
1329 # Baseline choice for a machine that allows m64 support.
1330 with_cpu=${with_cpu:-core2}
1331 tmake_file="${tmake_file} t-slibgcc"
1334 with_cpu=${with_cpu:-core2}
1335 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
1336 tm_file="${tm_file} ${cpu_type}/darwin64.h"
1339 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h"
1342 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h"
1345 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/rdos.h"
1348 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h newlib-stdint.h i386/i386elf.h i386/x86-64.h i386/rdos.h i386/rdos64.h"
1349 tmake_file="i386/t-i386elf t-svr4"
1351 i[34567]86-*-dragonfly*)
1352 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/dragonfly.h"
1353 tmake_file="${tmake_file} i386/t-crtstuff"
1355 x86_64-*-dragonfly*)
1356 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h"
1357 tmake_file="${tmake_file} i386/t-crtstuff"
1359 i[34567]86-*-freebsd*)
1360 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
1363 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"
1365 i[34567]86-*-netbsdelf*)
1366 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
1367 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1370 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"
1371 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1373 i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
1374 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"
1375 extra_options="${extra_options} openbsd.opt"
1376 # needed to unconfuse gdb
1377 tmake_file="${tmake_file} t-openbsd i386/t-openbsd"
1378 # we need collect2 until our bug is fixed...
1381 i[34567]86-*-openbsd*)
1382 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1383 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/openbsdelf.h"
1384 extra_options="${extra_options} openbsd.opt"
1389 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h"
1390 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h i386/x86-64.h i386/openbsdelf.h"
1391 extra_options="${extra_options} openbsd.opt"
1395 i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu)
1396 # Intel 80386's running GNU/*
1397 # with ELF format using glibc 2
1398 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h"
1400 i[34567]86-*-linux*)
1401 tm_file="${tm_file} linux.h linux-android.h"
1402 extra_options="${extra_options} linux-android.opt"
1403 # Assume modern glibc
1404 default_gnu_indirect_function=yes
1405 if test x$enable_targets = xall; then
1406 tm_file="${tm_file} i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h i386/linux-common.h i386/linux64.h"
1407 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1408 tmake_file="${tmake_file} i386/t-linux64"
1409 x86_multilibs="${with_multilib_list}"
1410 if test "$x86_multilibs" = "default"; then
1411 x86_multilibs="m64,m32"
1413 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1414 for x86_multilib in ${x86_multilibs}; do
1415 case ${x86_multilib} in
1417 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1420 echo "--with-multilib-list=${x86_with_multilib} not supported."
1424 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1426 if test x$with_cpu = x; then
1427 if test x$with_cpu_64 = x; then
1431 case " $x86_cpus $x86_archs $x86_64_archs " in
1435 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1436 echo "$x86_cpus $x86_archs $x86_64_archs " 1>&2
1442 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h i386/linux-common.h i386/linux.h"
1445 i[34567]86-*-knetbsd*-gnu)
1446 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h knetbsd-gnu.h i386/knetbsd-gnu.h"
1448 i[34567]86-*-kfreebsd*-gnu)
1449 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kfreebsd-gnu.h i386/kfreebsd-gnu.h"
1451 i[34567]86-*-kopensolaris*-gnu)
1452 tm_file="${tm_file} i386/gnu-user-common.h i386/gnu-user.h kopensolaris-gnu.h i386/kopensolaris-gnu.h"
1455 tm_file="$tm_file i386/gnu-user-common.h i386/gnu-user.h gnu.h i386/gnu.h"
1459 x86_64-*-linux* | x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu)
1460 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h gnu-user.h glibc-stdint.h \
1461 i386/x86-64.h i386/gnu-user-common.h i386/gnu-user64.h"
1464 tm_file="${tm_file} linux.h linux-android.h i386/linux-common.h i386/linux64.h"
1465 extra_options="${extra_options} linux-android.opt"
1466 # Assume modern glibc
1467 default_gnu_indirect_function=yes
1469 x86_64-*-kfreebsd*-gnu)
1470 tm_file="${tm_file} kfreebsd-gnu.h i386/kfreebsd-gnu64.h"
1472 x86_64-*-knetbsd*-gnu)
1473 tm_file="${tm_file} knetbsd-gnu.h"
1476 tmake_file="${tmake_file} i386/t-linux64"
1477 x86_multilibs="${with_multilib_list}"
1478 if test "$x86_multilibs" = "default"; then
1481 x86_multilibs="mx32"
1484 x86_multilibs="m64,m32"
1488 x86_multilibs=`echo $x86_multilibs | sed -e 's/,/ /g'`
1489 for x86_multilib in ${x86_multilibs}; do
1490 case ${x86_multilib} in
1492 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG},${x86_multilib}"
1495 echo "--with-multilib-list=${x86_with_multilib} not supported."
1499 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
1501 i[34567]86-pc-msdosdjgpp*)
1502 xm_file=i386/xm-djgpp.h
1503 tm_file="dbxcoff.h ${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/djgpp.h i386/djgpp-stdint.h"
1504 native_system_header_dir=/dev/env/DJDIR/include
1505 extra_options="${extra_options} i386/djgpp.opt"
1510 i[34567]86-*-lynxos*)
1512 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/lynx.h lynx.h"
1513 tmake_file="${tmake_file} t-lynx"
1514 extra_options="${extra_options} lynx.opt"
1519 i[34567]86-*-nto-qnx*)
1520 tm_file="${tm_file} i386/att.h dbxelf.h tm-dwarf2.h elfos.h i386/unix.h i386/nto.h"
1521 extra_options="${extra_options} i386/nto.opt"
1525 i[34567]86-*-rtems*)
1526 tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h i386/i386elf.h i386/rtemself.h rtems.h newlib-stdint.h"
1527 tmake_file="${tmake_file} i386/t-rtems"
1529 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
1530 # Set default arch_32 to pentium4, tune_32 to generic like the other
1531 # i386 targets, although config.guess defaults to i386-pc-solaris2*.
1532 with_arch_32=${with_arch_32:-pentium4}
1533 with_tune_32=${with_tune_32:-generic}
1534 tm_file="${tm_file} i386/unix.h i386/att.h ${sol2_tm_file_head} i386/x86-64.h ${sol2_tm_file_tail}"
1535 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1536 tmake_file="$tmake_file i386/t-sol2"
1538 if test x$with_cpu = x; then
1539 if test x$with_cpu_64 = x; then
1543 case " $x86_cpus $x86_archs $x86_64_archs " in
1547 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1548 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1554 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
1555 tm_file="${tm_file} i386/unix.h i386/att.h elfos.h vx-common.h"
1558 tm_file="${tm_file} vxworksae.h i386/vxworks.h i386/vxworksae.h"
1559 tmake_file="${tmake_file} i386/t-vxworks i386/t-vxworksae"
1562 tm_file="${tm_file} vxworks.h i386/vxworks.h"
1563 tmake_file="${tmake_file} i386/t-vxworks"
1567 i[34567]86-*-cygwin*)
1568 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h i386/cygwin-stdint.h"
1569 xm_file=i386/xm-cygwin.h
1570 tmake_file="${tmake_file} i386/t-cygming t-slibgcc"
1571 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1572 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1573 extra_objs="winnt.o winnt-stubs.o"
1574 c_target_objs="${c_target_objs} msformat-c.o"
1575 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1576 if test x$enable_threads = xyes; then
1579 default_use_cxa_atexit=yes
1584 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/cygwin.h i386/cygwin-w64.h i386/cygwin-stdint.h"
1585 xm_file=i386/xm-cygwin.h
1586 tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64"
1587 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1588 extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt"
1589 extra_objs="winnt.o winnt-stubs.o"
1590 c_target_objs="${c_target_objs} msformat-c.o"
1591 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1592 if test x$enable_threads = xyes; then
1595 default_use_cxa_atexit=yes
1597 tm_defines="${tm_defines} TARGET_CYGWIN64=1"
1599 i[34567]86-*-mingw* | x86_64-*-mingw*)
1600 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h"
1601 xm_file=i386/xm-mingw32.h
1602 c_target_objs="${c_target_objs} winnt-c.o"
1603 cxx_target_objs="${cxx_target_objs} winnt-c.o"
1604 target_has_targetcm="yes"
1606 x86_64-*-* | *-w64-*)
1612 if test x$enable_threads = xposix ; then
1613 tm_file="${tm_file} i386/mingw-pthread.h"
1615 tm_file="${tm_file} i386/mingw32.h"
1616 # This makes the logic if mingw's or the w64 feature set has to be used
1619 user_headers_inc_next_post="${user_headers_inc_next_post} float.h"
1620 user_headers_inc_next_pre="${user_headers_inc_next_pre} stddef.h stdarg.h"
1621 tm_file="${tm_file} i386/mingw-w64.h"
1622 if test x$enable_targets = xall; then
1623 tm_defines="${tm_defines} TARGET_BI_ARCH=1"
1624 if test x$with_cpu = x; then
1625 if test x$with_cpu_64 = x; then
1629 case " $x86_cpus $x86_archs $x86_64_archs " in
1633 echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
1634 echo "$x86_cpus $x86_archs $x86_64_archs" 1>&2
1644 tm_file="${tm_file} i386/mingw-stdint.h"
1645 tmake_file="${tmake_file} t-winnt i386/t-cygming t-slibgcc"
1648 tmake_file="${tmake_file} i386/t-mingw-w64"
1651 tmake_file="${tmake_file} i386/t-mingw-w32"
1654 native_system_header_dir=/mingw/include
1655 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1656 extra_options="${extra_options} i386/cygming.opt i386/mingw.opt"
1659 extra_options="${extra_options} i386/mingw-w64.opt"
1664 extra_objs="winnt.o winnt-stubs.o"
1665 c_target_objs="${c_target_objs} msformat-c.o"
1666 cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
1669 default_use_cxa_atexit=yes
1671 case ${enable_threads} in
1681 tm_file="${tm_file} i386/crtdll.h"
1683 *mingw32msv* | *mingw*)
1687 i[34567]86-*-interix[3-9]*)
1688 tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h"
1689 tmake_file="${tmake_file} i386/t-interix"
1690 extra_options="${extra_options} rpath.opt i386/interix.opt"
1691 extra_objs="winnt.o winnt-stubs.o"
1692 target_gtfiles="\$(srcdir)/config/i386/winnt.c"
1693 if test x$enable_threads = xyes ; then
1696 if test x$stabs = xyes ; then
1697 tm_file="${tm_file} dbxcoff.h"
1701 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h ia64/sysv4.h ia64/elf.h"
1702 tmake_file="ia64/t-ia64"
1703 target_cpu_default="0"
1704 if test x$gas = xyes
1706 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1708 if test x$gnu_ld = xyes
1710 target_cpu_default="${target_cpu_default}|MASK_GNU_LD"
1714 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
1715 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1716 tmake_file="${tmake_file} ia64/t-ia64"
1719 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ia64/sysv4.h ia64/linux.h"
1720 tmake_file="${tmake_file} ia64/t-ia64 ia64/t-linux t-libunwind"
1721 target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
1724 tm_file="${tm_file} dbxelf.h elfos.h ia64/sysv4.h ia64/hpux.h"
1725 tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc"
1726 target_cpu_default="MASK_GNU_AS"
1727 case x$enable_threads in
1733 c_target_objs="ia64-c.o"
1734 cxx_target_objs="ia64-c.o"
1735 extra_options="${extra_options} ia64/ilp32.opt hpux11.opt"
1737 tm_file="${tm_file} hpux-stdint.h"
1740 tm_file="${tm_file} ia64/hpux-unix2003.h"
1745 tm_file="${tm_file} elfos.h ia64/sysv4.h vms/vms.h ia64/vms.h"
1746 tmake_file="${tmake_file} ia64/t-ia64"
1747 target_cpu_default="0"
1748 if test x$gas = xyes
1750 target_cpu_default="${target_cpu_default}|MASK_GNU_AS"
1752 extra_options="${extra_options} ia64/vms.opt"
1755 tm_file="elfos.h newlib-stdint.h iq2000/iq2000.h"
1756 out_file=iq2000/iq2000.c
1757 md_file=iq2000/iq2000.md
1760 tm_file="dbxelf.h elfos.h ${tm_file}"
1761 tmake_file="${tmake_file} lm32/t-lm32"
1764 tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h newlib-stdint.h"
1765 tmake_file="${tmake_file} lm32/t-lm32"
1766 tmake_file="${tmake_file} lm32/t-rtems"
1769 tm_file="dbxelf.h elfos.h ${tm_file} gnu-user.h linux.h lm32/uclinux-elf.h"
1770 tmake_file="${tmake_file} lm32/t-lm32"
1773 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
1776 tm_file="dbxelf.h elfos.h newlib-stdint.h m32r/little.h ${tm_file}"
1779 tm_file="dbxelf.h elfos.h ${tm_file} m32r/rtems.h rtems.h newlib-stdint.h"
1780 tmake_file="${tmake_file} m32r/t-m32r"
1783 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h ${tm_file} m32r/linux.h"
1784 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1786 if test x$enable_threads = xyes; then
1791 tm_file="dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m32r/little.h ${tm_file} m32r/linux.h"
1792 tmake_file="${tmake_file} m32r/t-linux t-slibgcc"
1794 if test x$enable_threads = xyes; then
1798 m68k-*-elf* | fido-*-elf*)
1801 # Check that $with_cpu makes sense.
1806 echo "Cannot accept --with-cpu=$with_cpu"
1813 default_m68k_cpu=68020
1817 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h newlib-stdint.h m68k/m68kemb.h m68k/m68020-elf.h"
1818 tm_defines="${tm_defines} MOTOROLA=1"
1819 tmake_file="m68k/t-floatlib m68k/t-m68kbare m68k/t-m68kelf"
1820 # Add multilibs for targets other than fido.
1825 tmake_file="$tmake_file m68k/t-mlibs"
1830 default_m68k_cpu=68020
1832 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
1833 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1834 tm_defines="${tm_defines} MOTOROLA=1"
1837 default_m68k_cpu=68020
1839 # needed to unconfuse gdb
1840 tm_defines="${tm_defines} OBSD_OLD_GAS"
1841 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h m68k/openbsd.h"
1842 extra_options="${extra_options} openbsd.opt"
1843 tmake_file="t-openbsd m68k/t-openbsd"
1844 # we need collect2 until our bug is fixed...
1847 m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux
1848 # with uClibc, using the new GNU/Linux-style
1850 default_m68k_cpu=68020
1852 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h flat.h m68k/linux.h m68k/uclinux.h ./sysroot-suffix.h"
1853 extra_options="${extra_options} m68k/uclinux.opt"
1854 tm_defines="${tm_defines} MOTOROLA=1"
1855 tmake_file="m68k/t-floatlib m68k/t-uclinux m68k/t-mlibs"
1857 m68k-*-linux*) # Motorola m68k's running GNU/Linux
1858 # with ELF format using glibc 2
1859 # aka the GNU/Linux C library 6.
1860 default_m68k_cpu=68020
1862 with_arch=${with_arch:-m68k}
1863 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h m68k/linux.h ./sysroot-suffix.h"
1864 extra_options="${extra_options} m68k/ieee.opt"
1865 tm_defines="${tm_defines} MOTOROLA=1"
1866 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-linux m68k/t-mlibs"
1869 default_m68k_cpu=68020
1871 tmake_file="${tmake_file} m68k/t-floatlib m68k/t-m68kbare m68k/t-crtstuff m68k/t-rtems m68k/t-mlibs"
1872 tm_file="${tm_file} m68k/m68k-none.h m68k/m68kelf.h dbxelf.h elfos.h m68k/m68kemb.h m68k/m68020-elf.h m68k/rtemself.h rtems.h newlib-stdint.h"
1873 tm_defines="${tm_defines} MOTOROLA=1"
1876 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file} mcore/mcore-elf.h"
1877 tmake_file=mcore/t-mcore
1881 tm_file="dbxelf.h elfos.h ${tm_file}"
1882 tmake_file=mep/t-mep
1883 c_target_objs="mep-pragma.o"
1884 cxx_target_objs="mep-pragma.o"
1885 if test -d "${srcdir}/../newlib/libc/include" &&
1886 test "x$with_headers" = x; then
1894 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1897 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1900 tm_file="${tm_file} dbxelf.h gnu-user.h linux.h microblaze/linux.h"
1901 tm_file="${tm_file} glibc-stdint.h"
1902 c_target_objs="${c_target_objs} microblaze-c.o"
1903 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1904 tmake_file="${tmake_file} microblaze/t-microblaze"
1905 tmake_file="${tmake_file} microblaze/t-microblaze-linux"
1907 microblaze*-*-rtems*)
1910 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1913 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1916 tm_file="${tm_file} dbxelf.h"
1917 tm_file="${tm_file} microblaze/rtems.h rtems.h newlib-stdint.h"
1918 c_target_objs="${c_target_objs} microblaze-c.o"
1919 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1920 tmake_file="${tmake_file} microblaze/t-microblaze"
1921 tmake_file="${tmake_file} microblaze/t-rtems"
1926 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=0"
1929 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=4321"
1932 tm_file="${tm_file} dbxelf.h newlib-stdint.h"
1933 c_target_objs="${c_target_objs} microblaze-c.o"
1934 cxx_target_objs="${cxx_target_objs} microblaze-c.o"
1935 tmake_file="${tmake_file} microblaze/t-microblaze"
1937 mips*-*-netbsd*) # NetBSD/mips, either endian.
1938 target_cpu_default="MASK_ABICALLS"
1939 tm_file="elfos.h ${tm_file} mips/elf.h netbsd.h netbsd-elf.h mips/netbsd.h"
1940 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
1943 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h mips/mti-linux.h"
1944 extra_options="${extra_options} linux-android.opt"
1945 tmake_file="${tmake_file} mips/t-mti-linux"
1946 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1950 mips64*-*-linux* | mipsisa64*-*-linux*)
1951 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h"
1952 extra_options="${extra_options} linux-android.opt"
1953 tmake_file="${tmake_file} mips/t-linux64"
1954 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
1956 mips64el-st-linux-gnu)
1957 tm_file="${tm_file} mips/st.h"
1958 tmake_file="${tmake_file} mips/t-st"
1960 mips64octeon*-*-linux*)
1961 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
1962 target_cpu_default=MASK_SOFT_FLOAT_ABI
1964 mipsisa64r2*-*-linux*)
1965 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
1971 mips*-*-linux*) # Linux MIPS, either endian.
1972 tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h"
1973 extra_options="${extra_options} linux-android.opt"
1974 if test x$enable_targets = xall; then
1975 tmake_file="${tmake_file} mips/t-linux64"
1977 tm_file="${tm_file} mips/linux-common.h"
1980 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
1983 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
1987 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
1988 tmake_file="mips/t-mti-elf"
1989 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1992 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
1993 tmake_file="mips/t-sde"
1994 extra_options="${extra_options} mips/sde.opt"
1995 case "${with_newlib}" in
1997 # newlib / libgloss.
2000 # MIPS toolkit libraries.
2001 tm_file="$tm_file mips/sdemtk.h"
2002 tmake_file="$tmake_file mips/t-sdemtk"
2003 case ${enable_threads} in
2005 thread_file='mipssde'
2012 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2015 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2018 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2021 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2025 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2026 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2027 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2028 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*)
2029 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2030 tmake_file="mips/t-isa3264"
2033 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2036 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2039 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2042 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2046 mipsisa32*-*-elfoabi*)
2047 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2048 tm_file="${tm_file} mips/elfoabi.h"
2050 mipsisa64*-*-elfoabi*)
2051 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2052 tm_file="${tm_file} mips/elfoabi.h"
2055 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2059 mipsisa64sr71k-*-elf*)
2060 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2061 tmake_file=mips/t-sr71k
2062 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2064 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2065 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2066 tmake_file="mips/t-elf mips/t-sb1"
2067 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2069 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2070 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2071 tmake_file="mips/t-elf"
2073 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2074 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2075 tmake_file="mips/t-elf"
2076 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2078 mips64-*-elf* | mips64el-*-elf*)
2079 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2080 tmake_file="mips/t-elf"
2081 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2083 mips64vr-*-elf* | mips64vrel-*-elf*)
2084 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2085 tmake_file=mips/t-vr
2086 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2088 mips64orion-*-elf* | mips64orionel-*-elf*)
2089 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2090 tmake_file="mips/t-elf"
2091 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2094 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2095 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2098 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2099 tmake_file="${tmake_file} mips/t-vxworks"
2101 mipstx39-*-elf* | mipstx39el-*-elf*)
2102 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2103 tmake_file="mips/t-r3900"
2105 mmix-knuth-mmixware)
2106 tm_file="${tm_file} newlib-stdint.h"
2110 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2111 if test x$stabs = xyes
2113 tm_file="${tm_file} dbx.h"
2119 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2120 c_target_objs="msp430-c.o"
2121 cxx_target_objs="msp430-c.o"
2122 tmake_file="${tmake_file} msp430/t-msp430"
2125 target_cpu_default="0"
2126 tm_defines="${tm_defines}"
2127 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2128 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2131 target_cpu_default="0|MASK_BIG_ENDIAN"
2132 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2133 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2134 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2137 tm_file="elfos.h ${tm_file}"
2138 tmake_file="${tmake_file} nios2/t-nios2"
2141 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2144 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2145 extra_options="${extra_options} nios2/elf.opt"
2148 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2149 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2154 tm_file="${tm_file} newlib-stdint.h"
2157 # port not yet contributed
2158 #powerpc-*-openbsd*)
2159 # tmake_file="${tmake_file} rs6000/t-fprules"
2163 extra_options="${extra_options} rs6000/darwin.opt"
2165 *-darwin1[0-9]* | *-darwin[8-9]*)
2166 tmake_file="${tmake_file} rs6000/t-darwin8"
2167 tm_file="${tm_file} rs6000/darwin8.h"
2170 tm_file="${tm_file} rs6000/darwin7.h"
2175 tmake_file="${tmake_file} t-slibgcc"
2176 extra_headers=altivec.h
2178 powerpc64-*-darwin*)
2179 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2180 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2181 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2182 extra_headers=altivec.h
2184 powerpc*-*-freebsd*)
2185 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2186 extra_options="${extra_options} rs6000/sysv4.opt"
2187 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2190 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2191 tmake_file="${tmake_file} rs6000/t-freebsd64"
2192 extra_options="${extra_options} rs6000/linux64.opt"
2195 tm_file="${tm_file} rs6000/freebsd.h"
2200 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2201 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2202 tmake_file="${tmake_file} rs6000/t-netbsd"
2203 extra_options="${extra_options} rs6000/sysv4.opt"
2206 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabispe.h"
2207 extra_options="${extra_options} rs6000/sysv4.opt"
2208 tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2211 powerpc-*-eabisimaltivec*)
2212 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h rs6000/eabialtivec.h"
2213 extra_options="${extra_options} rs6000/sysv4.opt"
2214 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2218 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h"
2219 extra_options="${extra_options} rs6000/sysv4.opt"
2220 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2224 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2225 extra_options="${extra_options} rs6000/sysv4.opt"
2226 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2228 powerpc-*-eabialtivec*)
2229 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/eabialtivec.h"
2230 extra_options="${extra_options} rs6000/sysv4.opt"
2231 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2234 powerpc-xilinx-eabi*)
2235 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/singlefp.h rs6000/xfpu.h rs6000/xilinx.h"
2236 extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2237 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2241 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h"
2242 extra_options="${extra_options} rs6000/sysv4.opt"
2243 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2247 tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h"
2248 extra_options="${extra_options} rs6000/sysv4.opt"
2249 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2252 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2253 extra_options="${extra_options} rs6000/sysv4.opt"
2254 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2255 extra_objs="$extra_objs rs6000-linux.o"
2258 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2262 powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2263 echo "*** Configuration ${target} not supported" 1>&2
2266 powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2269 powerpc64*-*-linux*)
2270 test x$with_cpu != x || cpu_is_64bit=yes
2274 case ${maybe_biarch}:${enable_targets}:${cpu_is_64bit} in
2275 always:* | yes:*powerpc64* | yes:all:* | yes:*:yes)
2276 if test x$cpu_is_64bit = xyes; then
2277 tm_file="${tm_file} rs6000/default64.h"
2279 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2280 tmake_file="$tmake_file rs6000/t-linux64"
2283 tmake_file="$tmake_file rs6000/t-linux64le"
2284 case ${enable_targets} in
2285 all | *powerpc64-* | *powerpc-*)
2286 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2289 case ${enable_targets} in
2290 all | *powerpc64le-* | *powerpcle-*)
2291 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2294 extra_options="${extra_options} rs6000/linux64.opt"
2297 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2298 tmake_file="$tmake_file rs6000/t-linux"
2302 powerpc*-*-linux*ppc476*)
2303 tm_file="${tm_file} rs6000/476.h"
2304 extra_options="${extra_options} rs6000/476.opt" ;;
2305 powerpc*-*-linux*altivec*)
2306 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2307 powerpc*-*-linux*spe*)
2308 tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2309 powerpc*-*-linux*paired*)
2310 tm_file="${tm_file} rs6000/750cl.h" ;;
2312 if test x${enable_secureplt} = xyes; then
2313 tm_file="rs6000/secureplt.h ${tm_file}"
2316 powerpc-wrs-vxworks|powerpc-wrs-vxworksae|powerpc-wrs-vxworksmils)
2317 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2318 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2319 extra_options="${extra_options} rs6000/sysv4.opt"
2320 extra_headers=ppc-asm.h
2323 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksmils.h"
2324 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2327 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2328 tmake_file="${tmake_file} rs6000/t-vxworksae"
2331 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2337 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2338 tmake_file="t-lynx rs6000/t-lynx"
2339 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2345 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2346 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2347 extra_options="${extra_options} rs6000/sysv4.opt"
2349 powerpcle-*-eabisim*)
2350 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/e500.h rs6000/eabisim.h"
2351 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2352 extra_options="${extra_options} rs6000/sysv4.opt"
2356 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h rs6000/eabi.h rs6000/e500.h"
2357 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2358 extra_options="${extra_options} rs6000/sysv4.opt"
2361 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2362 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2363 tmake_file="rs6000/t-aix43 t-slibgcc"
2364 extra_options="${extra_options} rs6000/aix64.opt"
2367 use_gcc_stdint=provide
2370 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2371 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2372 extra_options="${extra_options} rs6000/aix64.opt"
2373 tmake_file="rs6000/t-aix43 t-slibgcc"
2379 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2380 tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2381 tmake_file="rs6000/t-aix52 t-slibgcc"
2382 extra_options="${extra_options} rs6000/aix64.opt"
2388 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2389 tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2390 tmake_file="rs6000/t-aix52 t-slibgcc"
2391 extra_options="${extra_options} rs6000/aix64.opt"
2395 extra_headers=altivec.h
2397 rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2398 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2399 tmake_file="rs6000/t-aix52 t-slibgcc"
2400 extra_options="${extra_options} rs6000/aix64.opt"
2404 extra_headers=altivec.h
2407 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2408 target_has_targetm_common=no
2409 c_target_objs="rl78-c.o"
2410 cxx_target_objs="rl78-c.o"
2411 tmake_file="${tmake_file} rl78/t-rl78"
2414 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2415 tmake_file="${tmake_file} rx/t-rx"
2418 default_gnu_indirect_function=yes
2419 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2420 if test x$enable_targets = xall; then
2421 tmake_file="${tmake_file} s390/t-linux64"
2425 default_gnu_indirect_function=yes
2426 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2427 tm_p_file="linux-protos.h s390/s390-protos.h"
2428 md_file=s390/s390.md
2429 extra_modes=s390/s390-modes.def
2430 out_file=s390/s390.c
2431 tmake_file="${tmake_file} s390/t-linux64"
2434 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2435 tm_p_file=s390/s390-protos.h
2436 md_file=s390/s390.md
2437 extra_modes=s390/s390-modes.def
2438 out_file=s390/s390.c
2440 extra_options="${extra_options} s390/tpf.opt"
2442 sh-*-elf* | sh[12346l]*-*-elf* | \
2443 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2444 sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2445 sh64-*-netbsd* | sh64l*-*-netbsd*)
2446 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2447 if test x${with_endian} = x; then
2449 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2450 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2451 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2452 shl* | sh64l* | sh*-*-linux* | \
2453 sh5l* | sh-superh-elf) with_endian=little,big ;;
2454 sh[1234]*-*-*) with_endian=big ;;
2455 *) with_endian=big,little ;;
2458 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2459 # First word : the default endian.
2460 # Second word: the secondary endian (optional).
2461 case ${with_endian} in
2462 big) TM_ENDIAN_CONFIG=mb ;;
2463 little) TM_ENDIAN_CONFIG=ml ;;
2464 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2465 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2466 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2468 case ${with_endian} in
2469 little*) tm_file="sh/little.h ${tm_file}" ;;
2471 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2473 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2474 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2476 tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h"
2477 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2480 sh*-superh-elf) if test x$with_libgloss != xno; then
2482 tm_file="${tm_file} sh/newlib.h"
2484 tm_file="${tm_file} sh/embed-elf.h"
2485 tm_file="${tm_file} sh/superh.h"
2486 extra_options="${extra_options} sh/superh.opt" ;;
2487 *) if test x$with_newlib = xyes \
2488 && test x$with_libgloss = xyes; then
2489 tm_file="${tm_file} sh/newlib.h"
2491 tm_file="${tm_file} sh/embed-elf.h" ;;
2495 # SHmedia, 32-bit ABI
2496 tmake_file="${tmake_file} sh/t-sh64"
2499 # SHmedia, 64-bit ABI
2500 tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5-64"
2505 tmake_file="${tmake_file} sh/t-sh64"
2506 tm_file="${tm_file} sh/sh64.h"
2507 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2510 tmake_file="${tmake_file} sh/t-sh64"
2511 tm_file="${tm_file} sh/sh64.h"
2512 if test x$with_newlib = xyes; then
2513 tm_file="${tm_file} newlib-stdint.h"
2515 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2518 tm_file="${tm_file} newlib-stdint.h"
2521 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2522 case `echo ${target} | sed 's/e[lb]-/-/'` in
2523 sh64*-*-netbsd*) sh_cpu_target=sh5-64media ;;
2524 sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;;
2525 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2526 sh4a_single*) sh_cpu_target=sh4a-single ;;
2527 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2528 sh4al) sh_cpu_target=sh4al ;;
2529 sh4a*) sh_cpu_target=sh4a ;;
2530 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2531 sh4_single*) sh_cpu_target=sh4-single ;;
2532 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2533 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2534 sh3e*) sh_cpu_target=sh3e ;;
2535 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2536 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2537 sh2a_single*) sh_cpu_target=sh2a-single ;;
2538 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2539 sh2a*) sh_cpu_target=sh2a ;;
2540 sh2e*) sh_cpu_target=sh2e ;;
2541 sh2*) sh_cpu_target=sh2 ;;
2542 *) sh_cpu_target=sh1 ;;
2544 # did the user say --without-fp ?
2545 if test x$with_fp = xno; then
2546 case ${sh_cpu_target} in
2547 sh5-*media) sh_cpu_target=${sh_cpu_target}-nofpu ;;
2549 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2550 sh4*) sh_cpu_target=sh4-nofpu ;;
2551 sh3*) sh_cpu_target=sh3 ;;
2552 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2553 sh2*) sh_cpu_target=sh2 ;;
2554 *) echo --without-fp not available for $target: ignored
2556 tm_defines="$tm_defines STRICT_NOFPU=1"
2558 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2559 case $sh_cpu_default in
2560 sh5-64media-nofpu | sh5-64media | \
2561 sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2562 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2563 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2564 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2565 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2566 "") sh_cpu_default=${sh_cpu_target} ;;
2567 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2569 sh_multilibs=${with_multilib_list}
2570 if test "$sh_multilibs" = "default" ; then
2572 sh64-superh-linux* | \
2573 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2574 sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2575 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2576 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2577 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2578 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2580 if test x$with_fp = xno; then
2581 sh_multilibs="`echo $sh_multilibs|sed -e s/m4/sh4-nofpu/ -e s/,m4-[^,]*//g -e s/,m[23]e// -e s/m2a,m2a-single/m2a-nofpu/ -e s/m5-..m....,//g`"
2584 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2585 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2586 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2587 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2588 for sh_multilib in ${sh_multilibs}; do
2589 case ${sh_multilib} in
2590 m1 | m2 | m2e | m3 | m3e | \
2591 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2592 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2593 m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2594 m5-64media | m5-64media-nofpu | \
2595 m5-32media | m5-32media-nofpu | \
2596 m5-compact | m5-compact-nofpu)
2597 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2598 # It is passed to MULTIILIB_OPTIONS verbatim.
2599 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2600 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2602 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2603 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2604 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2606 echo "with_multilib_list=${sh_multilib} not supported."
2611 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2612 if test x${enable_incomplete_targets} = xyes ; then
2613 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"
2615 tm_file="$tm_file ./sysroot-suffix.h"
2616 tmake_file="$tmake_file t-sysroot-suffix"
2619 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2620 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2623 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2624 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2627 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2630 tmake_file="sparc/t-sparc sparc/t-leon"
2633 tmake_file="sparc/t-sparc sparc/t-leon3"
2636 tmake_file="sparc/t-sparc sparc/t-elf"
2641 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2642 tmake_file="${tmake_file} sparc/t-sparc sparc/t-elf sparc/t-rtems"
2645 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2646 extra_options="${extra_options} sparc/long-double-switch.opt"
2649 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2652 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2655 tmake_file="${tmake_file} sparc/t-sparc"
2658 if test x$enable_targets = xall; then
2659 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2660 tmake_file="${tmake_file} sparc/t-linux64"
2662 tm_file="${tm_file} sparc/linux.h"
2663 tmake_file="${tmake_file} sparc/t-linux"
2667 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2668 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2669 extra_options="${extra_options} sparc/long-double-switch.opt"
2670 tmake_file="${tmake_file} sparc/t-sparc"
2673 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2675 sparc64-*-* | sparcv9-*-*)
2676 tm_file="sparc/default-64.h ${tm_file}"
2679 test x$with_cpu != x || with_cpu=v9
2682 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2685 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2686 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2689 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2690 extra_options="${extra_options}"
2691 tmake_file="${tmake_file} sparc/t-sparc"
2694 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2695 extra_options="${extra_options}"
2696 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2699 tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/default-64.h sparc/linux64.h sparc/tso.h"
2700 extra_options="${extra_options} sparc/long-double-switch.opt"
2701 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2703 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2704 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2705 extra_options="${extra_options} sparc/long-double-switch.opt"
2706 case "x$with_cpu" in
2708 x) with_cpu=ultrasparc ;;
2709 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2711 tmake_file="${tmake_file} sparc/t-sparc"
2714 tm_file="sparc/biarch64.h ${tm_file}"
2715 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2716 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2717 extra_options="${extra_options} sparc/long-double-switch.opt"
2718 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2721 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2722 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2723 extra_options="${extra_options} openbsd.opt"
2724 extra_options="${extra_options}"
2727 tmake_file="${tmake_file} sparc/t-sparc"
2730 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2731 tmake_file="spu/t-spu-elf"
2732 native_system_header_dir=/include
2733 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2734 extra_modes=spu/spu-modes.def
2735 c_target_objs="${c_target_objs} spu-c.o"
2736 cxx_target_objs="${cxx_target_objs} spu-c.o"
2739 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2740 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2741 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2745 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2746 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2747 tm_file="${tm_file} ./sysroot-suffix.h"
2748 tmake_file="t-sysroot-suffix t-slibgcc"
2749 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2753 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2754 tmake_file="${tmake_file} tilegx/t-tilegx"
2755 extra_objs="${extra_objs} mul-tables.o"
2756 c_target_objs="${c_target_objs} tilegx-c.o"
2757 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2758 extra_headers="feedback.h"
2761 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2766 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2767 tmake_file="${tmake_file} tilepro/t-tilepro"
2768 extra_objs="${extra_objs} mul-tables.o"
2769 c_target_objs="${c_target_objs} tilepro-c.o"
2770 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2771 extra_headers="feedback.h"
2774 target_cpu_default="TARGET_CPU_generic"
2775 tm_file="dbxelf.h elfos.h v850/v850.h"
2776 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2777 tmake_file="${tmake_file} v850/t-v850"
2778 tmake_file="${tmake_file} v850/t-rtems"
2780 c_target_objs="v850-c.o"
2781 cxx_target_objs="v850-c.o"
2786 target_cpu_default="TARGET_CPU_v850e3v5"
2789 target_cpu_default="TARGET_CPU_v850e2v3"
2792 target_cpu_default="TARGET_CPU_v850e2"
2794 v850e1-*-* | v850es-*-*)
2795 target_cpu_default="TARGET_CPU_v850e1"
2798 target_cpu_default="TARGET_CPU_v850e"
2801 target_cpu_default="TARGET_CPU_generic"
2804 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
2805 if test x$stabs = xyes
2807 tm_file="${tm_file} dbx.h"
2810 c_target_objs="v850-c.o"
2811 cxx_target_objs="v850-c.o"
2815 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
2816 extra_options="${extra_options} vax/elf.opt"
2819 tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2820 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
2823 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h"
2824 extra_options="${extra_options} openbsd.opt"
2828 # For historical reasons, the target files omit the 'x'.
2829 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
2830 tm_p_file=stormy16/stormy16-protos.h
2831 md_file=stormy16/stormy16.md
2832 out_file=stormy16/stormy16.c
2833 extra_options=stormy16/stormy16.opt
2834 tmake_file="stormy16/t-stormy16"
2837 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
2838 extra_options="${extra_options} xtensa/elf.opt"
2841 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
2842 tmake_file="${tmake_file} xtensa/t-xtensa"
2845 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
2850 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
2851 c_target_objs="m32c-pragma.o"
2852 cxx_target_objs="m32c-pragma.o"
2855 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2856 c_target_objs="m32c-pragma.o"
2857 cxx_target_objs="m32c-pragma.o"
2860 echo "*** Configuration ${target} not supported" 1>&2
2866 i[34567]86-*-linux* | x86_64-*-linux*)
2867 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
2869 i[34567]86-*-* | x86_64-*-*)
2870 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
2872 powerpc*-*-* | rs6000-*-*)
2873 tm_file="${tm_file} rs6000/option-defaults.h"
2876 if [ "$target_has_targetcm" = "no" ]; then
2877 c_target_objs="$c_target_objs default-c.o"
2878 cxx_target_objs="$cxx_target_objs default-c.o"
2881 if [ "$common_out_file" = "" ]; then
2882 if [ "$target_has_targetm_common" = "yes" ]; then
2883 common_out_file="$cpu_type/$cpu_type-common.c"
2885 common_out_file="default-common.c"
2889 # Support for --with-cpu and related options (and a few unrelated options,
2893 echo "--with-cpu must be passed a value" 1>&2
2898 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
2899 # to generic if there is no processor scheduler model for the target.
2902 arch_without_sse2=no
2903 arch_without_64bit=no
2906 if test $fbsd_major -ge 6; then
2912 arch_without_sse2=yes
2913 arch_without_64bit=yes
2918 arch_without_sse2=yes
2919 arch_without_64bit=yes
2924 arch_without_sse2=yes
2925 arch_without_64bit=yes
2928 arch_without_sse2=yes
2929 arch_without_64bit=yes
2930 case ${target_noncanonical} in
2943 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
2953 i686-*-* | i786-*-*)
2954 case ${target_noncanonical} in
2979 amdfam10-*|barcelona-*)
2983 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
2987 k8-*|opteron-*|athlon64-*|athlon_fx-*)
2991 athlon_xp-*|athlon_mp-*|athlon_4-*)
2994 arch_without_sse2=yes
2995 arch_without_64bit=yes
2997 athlon_tbird-*|athlon-*)
3000 arch_without_sse2=yes
3005 arch_without_sse2=yes
3010 arch_without_sse2=yes
3012 pentium3-*|pentium3m-*)
3015 arch_without_sse2=yes
3017 pentium4-*|pentium4m-*)
3056 arch_without_sse2=yes
3061 arch_without_sse2=yes
3062 arch_without_64bit=yes
3067 case ${target_noncanonical} in
3092 amdfam10-*|barcelona-*)
3096 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3100 k8-*|opteron-*|athlon_64-*)
3132 # If there is no $with_cpu option, try to infer one from ${target}.
3133 # This block sets nothing except for with_cpu.
3134 if test x$with_cpu = x ; then
3136 i[34567]86-*-*|x86_64-*-*)
3154 frv-*-*linux* | frv400-*-*linux*)
3161 case "$with_arch" in
3163 with_cpu=${default_cf_cpu}
3166 with_cpu=m${default_m68k_cpu}
3171 if test x$enable_e500_double = xyes; then
3189 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3195 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3197 i[34567]86-*-*|x86_64-*-*)
3198 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3199 if test x$with_cpu_32 = x; then
3200 with_cpu_32=$with_cpu
3202 if test x$with_cpu_64 = x; then
3203 with_cpu_64=$with_cpu
3211 # Support for --with-arch and related options (and a few unrelated options,
3213 case ${with_arch} in
3215 echo "--with-arch must be passed a value" 1>&2
3220 # If there is no $with_arch option, try to infer one from ${target}.
3221 # This block sets nothing except for with_arch.
3222 if test x$with_arch = x ; then
3224 i[34567]86-*-darwin*|x86_64-*-darwin*)
3225 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3226 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3229 # --with-fpmath sets the default ISA to SSE2, which is the same
3230 # ISA supported by Pentium 4.
3231 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3240 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3248 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3250 i[34567]86-*-darwin*|x86_64-*-darwin*)
3251 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3252 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3254 i[34567]86-*-*|x86_64-*-*)
3255 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3256 if test x$with_arch_32 = x; then
3257 with_arch_32=$with_arch
3259 if test x$with_arch_64 = x; then
3260 if test $arch_without_64bit = yes; then
3261 # Set the default 64bit arch to x86-64 if the default arch
3262 # doesn't support 64bit.
3265 with_arch_64=$with_arch
3269 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3270 # Set the default 64bit arch to x86-64 if the default arch
3271 # doesn't support 64bit and we need 64bit ISA.
3272 with_arch_32=$with_arch
3280 # Infer a default setting for --with-float.
3281 if test x$with_float = x; then
3283 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3284 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3285 # comply with IEEE 754.
3291 # Infer a default setting for --with-fpu.
3292 if test x$with_fpu = x; then
3294 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3295 # The R5900 FPU only supports single precision.
3301 # Support --with-fpmath.
3302 if test x$with_fpmath != x; then
3304 i[34567]86-*-* | x86_64-*-*)
3305 case ${with_fpmath} in
3307 tm_file="${tm_file} i386/avxmath.h"
3310 tm_file="${tm_file} i386/ssemath.h"
3313 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3319 echo "--with-fpmath isn't supported for $target." 1>&2
3325 # Similarly for --with-schedule.
3326 if test x$with_schedule = x; then
3329 # Override default PA8000 scheduling model.
3330 with_schedule=7100LC
3335 # Infer a default setting for --with-llsc.
3336 if test x$with_llsc = x; then
3338 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3339 # The R5900 doesn't support LL(D) and SC(D).
3343 # The kernel emulates LL and SC where necessary.
3349 # Validate and mark as valid any --with options supported
3350 # by this target. In order to use a particular --with option
3351 # you must list it in supported_defaults; validating the value
3352 # is optional. This case statement should set nothing besides
3353 # supported_defaults.
3358 supported_defaults="abi cpu arch"
3359 for which in cpu arch; do
3361 eval "val=\$with_$which"
3362 base_val=`echo $val | sed -e 's/\+.*//'`
3363 ext_val=`echo $val | sed -e 's/[a-z0-9\-]\+//'`
3365 if [ $which = arch ]; then
3366 def=aarch64-arches.def
3367 pattern=AARCH64_ARCH
3369 def=aarch64-cores.def
3370 pattern=AARCH64_CORE
3373 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3375 # Find the base CPU or ARCH id in aarch64-cores.def or
3376 # aarch64-arches.def
3377 if [ x"$base_val" = x ] \
3378 || grep "^$pattern(\"$base_val\"," \
3379 ${srcdir}/config/aarch64/$def \
3382 if [ $which = arch ]; then
3383 base_id=`grep "^$pattern(\"$base_val\"," \
3384 ${srcdir}/config/aarch64/$def | \
3385 sed -e 's/^[^,]*,[ ]*//' | \
3387 # Extract the architecture flags from aarch64-arches.def
3388 ext_mask=`grep "^$pattern(\"$base_val\"," \
3389 ${srcdir}/config/aarch64/$def | \
3393 base_id=`grep "^$pattern(\"$base_val\"," \
3394 ${srcdir}/config/aarch64/$def | \
3395 sed -e 's/^[^,]*,[ ]*//' | \
3399 while [ x"$ext_val" != x ]
3401 ext_val=`echo $ext_val | sed -e 's/\+//'`
3402 ext=`echo $ext_val | sed -e 's/\+.*//'`
3403 base_ext=`echo $ext | sed -e 's/^no//'`
3405 if [ x"$base_ext" = x ] \
3406 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3407 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3410 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3411 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3412 sed -e 's/^[^,]*,[ ]*//' | \
3414 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3415 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3416 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3417 sed -e 's/,.*$//' | \
3420 if [ $ext = $base_ext ]; then
3422 ext_mask="("$ext_mask") | ("$ext_on")"
3424 # Removing extension
3425 ext_mask="("$ext_mask") & ~("$ext_off")"
3430 echo "Unknown extension used in --with-$which=$val" 1>&2
3433 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3436 ext_mask="(("$ext_mask") << 6)"
3437 if [ x"$base_id" != x ]; then
3438 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3442 echo "Unknown $which used in --with-$which=$val" 1>&2
3449 supported_defaults="cpu tune"
3450 for which in cpu tune; do
3451 eval "val=\$with_$which"
3454 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3455 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3459 echo "Unknown CPU used in --with-$which=$val" 1>&2
3466 arc*-*-*) # was: arc*-*-linux-uclibc)
3467 supported_defaults="cpu"
3469 arc600|arc601|arc700)
3471 *) echo "Unknown cpu type"
3478 supported_defaults="arch cpu float tune fpu abi mode tls"
3479 for which in cpu tune; do
3480 # See if it matches any of the entries in arm-cores.def
3481 eval "val=\$with_$which"
3482 if [ x"$val" = x ] \
3483 || grep "^ARM_CORE(\"$val\"," \
3484 ${srcdir}/config/arm/arm-cores.def \
3487 new_val=`grep "^ARM_CORE(\"$val\"," \
3488 ${srcdir}/config/arm/arm-cores.def | \
3489 sed -e 's/^[^,]*,[ ]*//' | \
3491 eval "target_${which}_cname=$new_val"
3492 echo "For $val real value is $new_val"
3495 echo "Unknown CPU used in --with-$which=$val" 1>&2
3500 # See if it matches any of the entries in arm-arches.def
3501 if [ x"$with_arch" = x ] \
3502 || grep "^ARM_ARCH(\"$with_arch\"," \
3503 ${srcdir}/config/arm/arm-arches.def \
3508 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
3512 case "$with_float" in
3514 | soft | hard | softfp)
3518 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3523 # see if it matches any of the entries in arm-fpus.def
3524 if [ x"$with_fpu" = x ] \
3525 || grep "^ARM_FPU(\"$with_fpu\"," \
3526 ${srcdir}/config/arm/arm-fpus.def \
3531 echo "Unknown fpu used in --with-fpu=$with_fpu" 1>&2
3537 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3541 echo "Unknown ABI used in --with-abi=$with_abi"
3546 case "$with_mode" in
3552 echo "Unknown mode used in --with-mode=$with_mode"
3563 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3568 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3569 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3573 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3574 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3578 # Add extra multilibs
3579 if test "x$with_multilib_list" != x; then
3580 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3581 for arm_multilib in ${arm_multilibs}; do
3582 case ${arm_multilib} in
3584 # Note that arm/t-aprofile is a
3585 # stand-alone make file fragment to be
3586 # used only with itself. We do not
3587 # specifically use the
3588 # TM_MULTILIB_OPTION framework because
3589 # this shorthand is more
3590 # pragmatic. Additionally it is only
3591 # designed to work without any
3592 # with-cpu, with-arch with-mode
3593 # with-fpu or with-float options.
3594 if test "x$with_arch" != x \
3595 || test "x$with_cpu" != x \
3596 || test "x$with_float" != x \
3597 || test "x$with_fpu" != x \
3598 || test "x$with_mode" != x ; then
3599 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
3602 tmake_file="${tmake_file} arm/t-aprofile"
3608 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3617 supported_defaults=cpu
3622 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3628 fido-*-* | m68k*-*-*)
3629 supported_defaults="arch cpu"
3630 case "$with_arch" in
3632 m68k_arch_family="$with_arch"
3635 echo "Invalid --with-arch=$with_arch" 1>&2
3640 # We always have a $with_cpu setting here.
3642 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3643 m68k_cpu_ident=$with_cpu
3646 m68k_cpu_ident=m68020
3647 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3650 m68k_cpu_ident=m68020
3651 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3654 # We need the C identifier rather than the string.
3655 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3656 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
3657 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
3658 ${srcdir}/config/m68k/m68k-devices.def`
3659 if [ x"$m68k_cpu_ident" = x ] ; then
3660 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
3663 with_cpu="mcpu=$with_cpu"
3669 supported_defaults="arch schedule"
3671 case "$with_arch" in
3672 "" | 1.0 | 1.1 | 2.0)
3676 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
3681 case "$with_schedule" in
3682 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
3686 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
3692 i[34567]86-*-* | x86_64-*-*)
3693 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
3694 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3695 eval "val=\$with_$which"
3696 case " $x86_archs " in
3704 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
3713 if test x${val} != x; then
3714 case " $x86_64_archs " in
3719 # Allow $x86_cpus --with-cpu=/--with-tune=
3722 case " $x86_cpus " in
3727 echo "Unknown CPU given in --with-$which=$val." 1>&2
3733 echo "Unknown CPU given in --with-$which=$val." 1>&2
3746 supported_defaults="abi arch arch_32 arch_64 float fpu nan tune tune_32 tune_64 divide llsc mips-plt synci"
3748 case ${with_float} in
3753 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3759 "" | single | double)
3763 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
3773 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
3779 "" | 32 | o64 | n32 | 64 | eabi)
3783 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
3788 case ${with_divide} in
3789 "" | breaks | traps)
3793 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
3798 case ${with_llsc} in
3809 echo "Unknown llsc type used in --with-llsc" 1>&2
3814 case ${with_mips_plt} in
3819 with_mips_plt=no-plt
3824 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
3829 case ${with_synci} in
3839 echo "Unknown synci type used in --with-synci" 1>&2
3846 supported_defaults="arch nds32_lib"
3848 # process --with-arch
3849 case "${with_arch}" in
3854 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v3 v3m" 1>&2
3859 # process --with-nds32-lib
3860 case "${with_nds32_lib}" in
3862 # the default library is newlib
3863 with_nds32_lib=newlib
3872 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
3878 powerpc*-*-* | rs6000-*-*)
3879 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64"
3881 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3882 eval "val=\$with_$which"
3884 default32 | default64)
3889 echo "$val only valid for --with-cpu and --with-tune." 1>&2
3893 with_which="with_$which"
3897 tm_defines="${tm_defines} CONFIG_PPC405CR"
3898 eval "with_$which=405"
3900 "" | common | native \
3901 | power | power[2345678] | power6x | powerpc | powerpc64 \
3902 | rios | rios1 | rios2 | rsc | rsc1 | rs64a \
3903 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
3904 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
3905 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
3906 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
3907 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
3911 echo "Unknown cpu used in --with-$which=$val." 1>&2
3918 "" | elfv1 | elfv2 )
3922 echo "Unknown ABI used in --with-abi=$with_abi"
3929 supported_defaults="arch mode tune"
3931 for which in arch tune; do
3932 eval "val=\$with_$which"
3934 "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12)
3938 echo "Unknown cpu used in --with-$which=$val." 1>&2
3944 case ${with_mode} in
3949 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
3955 sh[123456ble]-*-* | sh-*-*)
3956 supported_defaults="cpu"
3957 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
3958 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
3961 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3963 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
3966 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
3967 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
3968 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
3969 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
3975 supported_defaults="cpu float tune"
3977 for which in cpu tune; do
3978 eval "val=\$with_$which"
3980 "" | sparc | sparcv9 | sparc64 \
3982 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
3983 | sparclite | f930 | f934 | sparclite86x \
3984 | sparclet | tsc701 \
3985 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
3986 | niagara3 | niagara4)
3990 echo "Unknown cpu used in --with-$which=$val" 1>&2
3996 case ${with_float} in
4001 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4008 supported_defaults="arch tune"
4010 for which in arch tune; do
4011 eval "val=\$with_$which"
4013 "" | cell | celledp)
4017 echo "Unknown cpu used in --with-$which=$val." 1>&2
4025 supported_defaults="arch"
4027 case ${with_arch} in
4028 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4032 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4039 supported_defaults=cpu
4041 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4045 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4052 # Set some miscellaneous flags for particular targets.
4053 target_cpu_default2=
4056 if test x"$target_cpu_cname" != x
4058 target_cpu_default2=$target_cpu_cname
4063 if test x$target_cpu_cname = x
4065 target_cpu_default2=TARGET_CPU_generic
4067 target_cpu_default2=TARGET_CPU_$target_cpu_cname
4072 if test x$gas = xyes
4074 target_cpu_default2="MASK_GAS"
4078 fido*-*-* | m68k*-*-*)
4079 target_cpu_default2=$m68k_cpu_ident
4080 tmake_file="m68k/t-opts $tmake_file"
4081 if [ x"$m68k_arch_family" != x ]; then
4082 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4086 i[34567]86-*-darwin* | x86_64-*-darwin*)
4088 i[34567]86-*-linux* | x86_64-*-linux*)
4089 tmake_file="$tmake_file i386/t-linux"
4091 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4092 tmake_file="$tmake_file i386/t-kfreebsd"
4095 tmake_file="$tmake_file i386/t-gnu"
4097 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4099 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4101 i[34567]86-*-mingw* | x86_64-*-mingw*)
4103 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4105 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4111 if test x$gnu_ld = xyes
4113 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4117 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4120 tmake_file="mips/t-mips $tmake_file"
4123 powerpc*-*-* | rs6000-*-*)
4124 # FIXME: The PowerPC port uses the value set at compile time,
4125 # although it's only cosmetic.
4126 if test "x$with_cpu" != x
4128 target_cpu_default2="\\\"$with_cpu\\\""
4130 out_file=rs6000/rs6000.c
4131 c_target_objs="${c_target_objs} rs6000-c.o"
4132 cxx_target_objs="${cxx_target_objs} rs6000-c.o"
4133 tmake_file="rs6000/t-rs6000 ${tmake_file}"
4136 sh[123456ble]*-*-* | sh-*-*)
4137 c_target_objs="${c_target_objs} sh-c.o"
4138 cxx_target_objs="${cxx_target_objs} sh-c.o"
4142 # Some standard aliases.
4147 xsparcv9 | xsparc64)
4152 if test x$with_tune = x ; then
4163 # The SPARC port checks this value at compile-time.
4164 target_cpu_default2="TARGET_CPU_$with_cpu"
4168 case "x$with_cpu" in
4171 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4172 target_cpu_default2="TARGET_CPU_$with_cpu"
4175 target_cpu_default2="TARGET_CPU_v850e1"
4182 all_defaults="abi cpu cpu_32 cpu_64 arch arch_32 arch_64 tune tune_32 tune_64 schedule float mode fpu nan divide llsc mips-plt synci tls"
4183 for option in $all_defaults
4185 eval "val=\$with_"`echo $option | sed s/-/_/g`
4186 if test -n "$val"; then
4187 case " $supported_defaults " in
4191 echo "This target does not support --with-$option." 2>&1
4192 echo "Valid --with options are: $supported_defaults" 2>&1
4199 t="{ \"$option\", \"$val\" }"
4201 t="${t}, { \"$option\", \"$val\" }"
4208 configure_default_options="{ { NULL, NULL} }"
4210 configure_default_options="{ ${t} }"
4213 if test "$target_cpu_default2" != ""
4215 if test "$target_cpu_default" != ""
4217 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4219 target_cpu_default=$target_cpu_default2