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 mips*-*-linux*) # Linux MIPS, either endian.
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"
1955 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
1958 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
1960 mips64el-st-linux-gnu)
1961 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
1962 tm_file="${tm_file} mips/st.h"
1963 tmake_file="${tmake_file} mips/t-st"
1964 enable_mips_multilibs="yes"
1966 mips64octeon*-*-linux*)
1967 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
1968 tm_defines="${tm_defines} MIPS_CPU_STRING_DEFAULT=\\\"octeon\\\""
1969 target_cpu_default=MASK_SOFT_FLOAT_ABI
1970 enable_mips_multilibs="yes"
1972 mipsisa64r2*-*-linux*)
1973 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
1974 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
1975 enable_mips_multilibs="yes"
1977 mips64*-*-linux* | mipsisa64*-*-linux*)
1978 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_N32"
1979 enable_mips_multilibs="yes"
1982 if test x$enable_targets = xall; then
1983 enable_mips_multilibs="yes"
1985 if test x$enable_mips_multilibs = xyes; then
1986 tmake_file="${tmake_file} mips/t-linux64"
1990 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h mips/mti-elf.h"
1991 tmake_file="mips/t-mti-elf"
1992 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
1995 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h mips/sde.h"
1996 tmake_file="mips/t-sde"
1997 extra_options="${extra_options} mips/sde.opt"
1998 case "${with_newlib}" in
2000 # newlib / libgloss.
2003 # MIPS toolkit libraries.
2004 tm_file="$tm_file mips/sdemtk.h"
2005 tmake_file="$tmake_file mips/t-sdemtk"
2006 case ${enable_threads} in
2008 thread_file='mipssde'
2015 tm_defines="MIPS_ISA_DEFAULT=33 MIPS_ABI_DEFAULT=ABI_32"
2018 tm_defines="MIPS_ISA_DEFAULT=32 MIPS_ABI_DEFAULT=ABI_32"
2021 tm_defines="MIPS_ISA_DEFAULT=65 MIPS_ABI_DEFAULT=ABI_N32"
2024 tm_defines="MIPS_ISA_DEFAULT=64 MIPS_ABI_DEFAULT=ABI_N32"
2028 mipsisa32-*-elf* | mipsisa32el-*-elf* | \
2029 mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \
2030 mipsisa64-*-elf* | mipsisa64el-*-elf* | \
2031 mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*)
2032 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2033 tmake_file="mips/t-isa3264"
2036 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=33"
2039 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=32"
2042 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=65"
2045 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64"
2049 mipsisa32*-*-elfoabi*)
2050 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_32"
2051 tm_file="${tm_file} mips/elfoabi.h"
2053 mipsisa64*-*-elfoabi*)
2054 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_O64"
2055 tm_file="${tm_file} mips/elfoabi.h"
2058 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2062 mipsisa64sr71k-*-elf*)
2063 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2064 tmake_file=mips/t-sr71k
2065 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sr71000\\\" MIPS_ABI_DEFAULT=ABI_EABI"
2067 mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
2068 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2069 tmake_file="mips/t-elf mips/t-sb1"
2070 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=64 MIPS_CPU_STRING_DEFAULT=\\\"sb1\\\" MIPS_ABI_DEFAULT=ABI_O64"
2072 mips-*-elf* | mipsel-*-elf* | mipsr5900-*-elf* | mipsr5900el-*-elf*)
2073 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2074 tmake_file="mips/t-elf"
2076 mips64r5900-*-elf* | mips64r5900el-*-elf*)
2077 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/n32-elf.h"
2078 tmake_file="mips/t-elf"
2079 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
2081 mips64-*-elf* | mips64el-*-elf*)
2082 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h"
2083 tmake_file="mips/t-elf"
2084 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2086 mips64vr-*-elf* | mips64vrel-*-elf*)
2087 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/vr.h mips/elf.h"
2088 tmake_file=mips/t-vr
2089 tm_defines="${tm_defines} MIPS_ABI_DEFAULT=ABI_EABI"
2091 mips64orion-*-elf* | mips64orionel-*-elf*)
2092 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elforion.h mips/elf.h"
2093 tmake_file="mips/t-elf"
2094 tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_O64"
2097 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/elf.h mips/rtems.h rtems.h"
2098 tmake_file="${tmake_file} mips/t-elf mips/t-rtems"
2101 tm_file="elfos.h ${tm_file} mips/elf.h vx-common.h vxworks.h mips/vxworks.h"
2102 tmake_file="${tmake_file} mips/t-vxworks"
2104 mipstx39-*-elf* | mipstx39el-*-elf*)
2105 tm_file="elfos.h newlib-stdint.h ${tm_file} mips/r3900.h mips/elf.h"
2106 tmake_file="mips/t-r3900"
2108 mmix-knuth-mmixware)
2109 tm_file="${tm_file} newlib-stdint.h"
2113 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2114 if test x$stabs = xyes
2116 tm_file="${tm_file} dbx.h"
2122 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2123 c_target_objs="msp430-c.o"
2124 cxx_target_objs="msp430-c.o"
2125 tmake_file="${tmake_file} msp430/t-msp430"
2128 target_cpu_default="0"
2129 tm_defines="${tm_defines}"
2130 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2131 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2134 target_cpu_default="0|MASK_BIG_ENDIAN"
2135 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2136 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2137 tmake_file="nds32/t-nds32 nds32/t-mlibs"
2140 tm_file="elfos.h ${tm_file}"
2141 tmake_file="${tmake_file} nios2/t-nios2"
2144 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h nios2/linux.h "
2147 tm_file="${tm_file} newlib-stdint.h nios2/elf.h"
2148 extra_options="${extra_options} nios2/elf.opt"
2151 tm_file="${tm_file} newlib-stdint.h nios2/rtems.h rtems.h"
2152 tmake_file="${tmake_file} t-rtems nios2/t-rtems"
2157 tm_file="${tm_file} newlib-stdint.h"
2160 # port not yet contributed
2161 #powerpc-*-openbsd*)
2162 # tmake_file="${tmake_file} rs6000/t-fprules"
2166 extra_options="${extra_options} rs6000/darwin.opt"
2168 *-darwin1[0-9]* | *-darwin[8-9]*)
2169 tmake_file="${tmake_file} rs6000/t-darwin8"
2170 tm_file="${tm_file} rs6000/darwin8.h"
2173 tm_file="${tm_file} rs6000/darwin7.h"
2178 tmake_file="${tmake_file} t-slibgcc"
2179 extra_headers=altivec.h
2181 powerpc64-*-darwin*)
2182 extra_options="${extra_options} ${cpu_type}/darwin.opt"
2183 tmake_file="${tmake_file} ${cpu_type}/t-darwin64 t-slibgcc"
2184 tm_file="${tm_file} ${cpu_type}/darwin8.h ${cpu_type}/darwin64.h"
2185 extra_headers=altivec.h
2187 powerpc*-*-freebsd*)
2188 tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h"
2189 extra_options="${extra_options} rs6000/sysv4.opt"
2190 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2193 tm_file="${tm_file} rs6000/default64.h rs6000/freebsd64.h"
2194 tmake_file="${tmake_file} rs6000/t-freebsd64"
2195 extra_options="${extra_options} rs6000/linux64.opt"
2198 tm_file="${tm_file} rs6000/freebsd.h"
2203 tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h freebsd-spec.h rs6000/sysv4.h rs6000/netbsd.h"
2204 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2205 tmake_file="${tmake_file} rs6000/t-netbsd"
2206 extra_options="${extra_options} rs6000/sysv4.opt"
2209 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"
2210 extra_options="${extra_options} rs6000/sysv4.opt"
2211 tmake_file="rs6000/t-spe rs6000/t-ppccomm"
2214 powerpc-*-eabisimaltivec*)
2215 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"
2216 extra_options="${extra_options} rs6000/sysv4.opt"
2217 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2221 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"
2222 extra_options="${extra_options} rs6000/sysv4.opt"
2223 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2227 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h"
2228 extra_options="${extra_options} rs6000/sysv4.opt"
2229 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2231 powerpc-*-eabialtivec*)
2232 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"
2233 extra_options="${extra_options} rs6000/sysv4.opt"
2234 tmake_file="rs6000/t-fprules rs6000/t-ppcendian rs6000/t-ppccomm"
2237 powerpc-xilinx-eabi*)
2238 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"
2239 extra_options="${extra_options} rs6000/sysv4.opt rs6000/xilinx.opt"
2240 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm rs6000/t-xilinx"
2244 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"
2245 extra_options="${extra_options} rs6000/sysv4.opt"
2246 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2250 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"
2251 extra_options="${extra_options} rs6000/sysv4.opt"
2252 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm"
2255 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h rs6000/sysv4.h"
2256 extra_options="${extra_options} rs6000/sysv4.opt"
2257 tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
2258 extra_objs="$extra_objs rs6000-linux.o"
2261 tm_file="${tm_file} rs6000/sysv4le.h" ;;
2265 powerpc64*-*-linux*spe* | powerpc64*-*-linux*paired*)
2266 echo "*** Configuration ${target} not supported" 1>&2
2269 powerpc*-*-linux*spe* | powerpc*-*-linux*paired*)
2272 powerpc64*-*-linux*)
2273 test x$with_cpu != x || cpu_is_64bit=yes
2277 case ${maybe_biarch}:${enable_targets}:${cpu_is_64bit} in
2278 always:* | yes:*powerpc64* | yes:all:* | yes:*:yes)
2279 if test x$cpu_is_64bit = xyes; then
2280 tm_file="${tm_file} rs6000/default64.h"
2282 tm_file="rs6000/biarch64.h ${tm_file} rs6000/linux64.h glibc-stdint.h"
2283 tmake_file="$tmake_file rs6000/t-linux64"
2286 tmake_file="$tmake_file rs6000/t-linux64le"
2287 case ${enable_targets} in
2288 all | *powerpc64-* | *powerpc-*)
2289 tmake_file="$tmake_file rs6000/t-linux64lebe" ;;
2292 case ${enable_targets} in
2293 all | *powerpc64le-* | *powerpcle-*)
2294 tmake_file="$tmake_file rs6000/t-linux64bele" ;;
2297 extra_options="${extra_options} rs6000/linux64.opt"
2300 tm_file="${tm_file} rs6000/linux.h glibc-stdint.h"
2301 tmake_file="$tmake_file rs6000/t-linux"
2305 powerpc*-*-linux*ppc476*)
2306 tm_file="${tm_file} rs6000/476.h"
2307 extra_options="${extra_options} rs6000/476.opt" ;;
2308 powerpc*-*-linux*altivec*)
2309 tm_file="${tm_file} rs6000/linuxaltivec.h" ;;
2310 powerpc*-*-linux*spe*)
2311 tm_file="${tm_file} rs6000/linuxspe.h rs6000/e500.h" ;;
2312 powerpc*-*-linux*paired*)
2313 tm_file="${tm_file} rs6000/750cl.h" ;;
2315 if test x${enable_secureplt} = xyes; then
2316 tm_file="rs6000/secureplt.h ${tm_file}"
2319 powerpc-wrs-vxworks|powerpc-wrs-vxworksae|powerpc-wrs-vxworksmils)
2320 tm_file="${tm_file} elfos.h freebsd-spec.h rs6000/sysv4.h"
2321 tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-ppccomm rs6000/t-vxworks"
2322 extra_options="${extra_options} rs6000/sysv4.opt"
2323 extra_headers=ppc-asm.h
2326 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksmils.h"
2327 tmake_file="${tmake_file} rs6000/t-vxworksmils"
2330 tm_file="${tm_file} vx-common.h vxworksae.h rs6000/vxworks.h rs6000/e500.h rs6000/vxworksae.h"
2331 tmake_file="${tmake_file} rs6000/t-vxworksae"
2334 tm_file="${tm_file} vx-common.h vxworks.h rs6000/vxworks.h rs6000/e500.h"
2340 tm_file="${tm_file} dbxelf.h elfos.h rs6000/sysv4.h rs6000/lynx.h lynx.h"
2341 tmake_file="t-lynx rs6000/t-lynx"
2342 extra_options="${extra_options} rs6000/sysv4.opt lynx.opt"
2348 tm_file="${tm_file} dbxelf.h elfos.h usegas.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/sysv4le.h"
2349 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2350 extra_options="${extra_options} rs6000/sysv4.opt"
2352 powerpcle-*-eabisim*)
2353 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"
2354 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2355 extra_options="${extra_options} rs6000/sysv4.opt"
2359 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"
2360 tmake_file="rs6000/t-fprules rs6000/t-ppcgas rs6000/t-ppccomm"
2361 extra_options="${extra_options} rs6000/sysv4.opt"
2364 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
2365 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix43.h rs6000/xcoff.h rs6000/aix-stdint.h"
2366 tmake_file="rs6000/t-aix43 t-slibgcc"
2367 extra_options="${extra_options} rs6000/aix64.opt"
2370 use_gcc_stdint=provide
2373 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
2374 tm_file="rs6000/biarch64.h ${tm_file} rs6000/aix.h rs6000/aix51.h rs6000/xcoff.h rs6000/aix-stdint.h"
2375 extra_options="${extra_options} rs6000/aix64.opt"
2376 tmake_file="rs6000/t-aix43 t-slibgcc"
2382 rs6000-ibm-aix5.2.* | powerpc-ibm-aix5.2.*)
2383 tm_file="${tm_file} rs6000/aix.h rs6000/aix52.h rs6000/xcoff.h rs6000/aix-stdint.h"
2384 tmake_file="rs6000/t-aix52 t-slibgcc"
2385 extra_options="${extra_options} rs6000/aix64.opt"
2391 rs6000-ibm-aix5.3.* | powerpc-ibm-aix5.3.*)
2392 tm_file="${tm_file} rs6000/aix.h rs6000/aix53.h rs6000/xcoff.h rs6000/aix-stdint.h"
2393 tmake_file="rs6000/t-aix52 t-slibgcc"
2394 extra_options="${extra_options} rs6000/aix64.opt"
2398 extra_headers=altivec.h
2400 rs6000-ibm-aix[6789].* | powerpc-ibm-aix[6789].*)
2401 tm_file="${tm_file} rs6000/aix.h rs6000/aix61.h rs6000/xcoff.h rs6000/aix-stdint.h"
2402 tmake_file="rs6000/t-aix52 t-slibgcc"
2403 extra_options="${extra_options} rs6000/aix64.opt"
2407 extra_headers=altivec.h
2410 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2411 target_has_targetm_common=no
2412 c_target_objs="rl78-c.o"
2413 cxx_target_objs="rl78-c.o"
2414 tmake_file="${tmake_file} rl78/t-rl78"
2417 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2418 tmake_file="${tmake_file} rx/t-rx"
2421 default_gnu_indirect_function=yes
2422 tm_file="s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2423 if test x$enable_targets = xall; then
2424 tmake_file="${tmake_file} s390/t-linux64"
2428 default_gnu_indirect_function=yes
2429 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h s390/linux.h"
2430 tm_p_file="linux-protos.h s390/s390-protos.h"
2431 md_file=s390/s390.md
2432 extra_modes=s390/s390-modes.def
2433 out_file=s390/s390.c
2434 tmake_file="${tmake_file} s390/t-linux64"
2437 tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h s390/tpf.h"
2438 tm_p_file=s390/s390-protos.h
2439 md_file=s390/s390.md
2440 extra_modes=s390/s390-modes.def
2441 out_file=s390/s390.c
2443 extra_options="${extra_options} s390/tpf.opt"
2445 sh-*-elf* | sh[12346l]*-*-elf* | \
2446 sh-*-linux* | sh[2346lbe]*-*-linux* | \
2447 sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
2448 sh64-*-netbsd* | sh64l*-*-netbsd*)
2449 tmake_file="${tmake_file} sh/t-sh sh/t-elf"
2450 if test x${with_endian} = x; then
2452 sh[1234]*be-*-* | sh[1234]*eb-*-*) with_endian=big ;;
2453 shbe-*-* | sheb-*-*) with_endian=big,little ;;
2454 sh[1234]l* | sh[34]*-*-linux*) with_endian=little ;;
2455 shl* | sh64l* | sh*-*-linux* | \
2456 sh5l* | sh-superh-elf) with_endian=little,big ;;
2457 sh[1234]*-*-*) with_endian=big ;;
2458 *) with_endian=big,little ;;
2461 # TM_ENDIAN_CONFIG is used by t-sh to determine multilibs.
2462 # First word : the default endian.
2463 # Second word: the secondary endian (optional).
2464 case ${with_endian} in
2465 big) TM_ENDIAN_CONFIG=mb ;;
2466 little) TM_ENDIAN_CONFIG=ml ;;
2467 big,little) TM_ENDIAN_CONFIG="mb ml" ;;
2468 little,big) TM_ENDIAN_CONFIG="ml mb" ;;
2469 *) echo "with_endian=${with_endian} not supported."; exit 1 ;;
2471 case ${with_endian} in
2472 little*) tm_file="sh/little.h ${tm_file}" ;;
2474 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h"
2476 sh*-*-linux*) tmake_file="${tmake_file} sh/t-linux"
2477 tm_file="${tm_file} gnu-user.h linux.h glibc-stdint.h sh/linux.h" ;;
2479 tm_file="${tm_file} netbsd.h netbsd-elf.h sh/netbsd-elf.h"
2480 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2483 sh*-superh-elf) if test x$with_libgloss != xno; then
2485 tm_file="${tm_file} sh/newlib.h"
2487 tm_file="${tm_file} sh/embed-elf.h"
2488 tm_file="${tm_file} sh/superh.h"
2489 extra_options="${extra_options} sh/superh.opt" ;;
2490 *) if test x$with_newlib = xyes \
2491 && test x$with_libgloss = xyes; then
2492 tm_file="${tm_file} sh/newlib.h"
2494 tm_file="${tm_file} sh/embed-elf.h" ;;
2498 # SHmedia, 32-bit ABI
2499 tmake_file="${tmake_file} sh/t-sh64"
2502 # SHmedia, 64-bit ABI
2503 tmake_file="${tmake_file} sh/t-sh64 sh/t-netbsd-sh5-64"
2508 tmake_file="${tmake_file} sh/t-sh64"
2509 tm_file="${tm_file} sh/sh64.h"
2510 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2513 tmake_file="${tmake_file} sh/t-sh64"
2514 tm_file="${tm_file} sh/sh64.h"
2515 if test x$with_newlib = xyes; then
2516 tm_file="${tm_file} newlib-stdint.h"
2518 extra_headers="shmedia.h ushmedia.h sshmedia.h"
2521 tm_file="${tm_file} newlib-stdint.h"
2524 # sed el/eb endian suffixes away to avoid confusion with sh[23]e
2525 case `echo ${target} | sed 's/e[lb]-/-/'` in
2526 sh64*-*-netbsd*) sh_cpu_target=sh5-64media ;;
2527 sh64* | sh5*-*-netbsd*) sh_cpu_target=sh5-32media ;;
2528 sh4a_single_only*) sh_cpu_target=sh4a-single-only ;;
2529 sh4a_single*) sh_cpu_target=sh4a-single ;;
2530 sh4a_nofpu*) sh_cpu_target=sh4a-nofpu ;;
2531 sh4al) sh_cpu_target=sh4al ;;
2532 sh4a*) sh_cpu_target=sh4a ;;
2533 sh4_single_only*) sh_cpu_target=sh4-single-only ;;
2534 sh4_single*) sh_cpu_target=sh4-single ;;
2535 sh4_nofpu*) sh_cpu_target=sh4-nofpu ;;
2536 sh4* | sh-superh-*) sh_cpu_target=sh4 ;;
2537 sh3e*) sh_cpu_target=sh3e ;;
2538 sh*-*-netbsd* | sh3*) sh_cpu_target=sh3 ;;
2539 sh2a_single_only*) sh_cpu_target=sh2a-single-only ;;
2540 sh2a_single*) sh_cpu_target=sh2a-single ;;
2541 sh2a_nofpu*) sh_cpu_target=sh2a-nofpu ;;
2542 sh2a*) sh_cpu_target=sh2a ;;
2543 sh2e*) sh_cpu_target=sh2e ;;
2544 sh2*) sh_cpu_target=sh2 ;;
2545 *) sh_cpu_target=sh1 ;;
2547 # did the user say --without-fp ?
2548 if test x$with_fp = xno; then
2549 case ${sh_cpu_target} in
2550 sh5-*media) sh_cpu_target=${sh_cpu_target}-nofpu ;;
2552 sh4a* ) sh_cpu_target=sh4a-nofpu ;;
2553 sh4*) sh_cpu_target=sh4-nofpu ;;
2554 sh3*) sh_cpu_target=sh3 ;;
2555 sh2a*) sh_cpu_target=sh2a-nofpu ;;
2556 sh2*) sh_cpu_target=sh2 ;;
2557 *) echo --without-fp not available for $target: ignored
2559 tm_defines="$tm_defines STRICT_NOFPU=1"
2561 sh_cpu_default="`echo $with_cpu|sed s/^m/sh/|tr A-Z_ a-z-`"
2562 case $sh_cpu_default in
2563 sh5-64media-nofpu | sh5-64media | \
2564 sh5-32media-nofpu | sh5-32media | sh5-compact-nofpu | sh5-compact | \
2565 sh2a-single-only | sh2a-single | sh2a-nofpu | sh2a | \
2566 sh4a-single-only | sh4a-single | sh4a-nofpu | sh4a | sh4al | \
2567 sh4-single-only | sh4-single | sh4-nofpu | sh4 | sh4-300 | \
2568 sh3e | sh3 | sh2e | sh2 | sh1) ;;
2569 "") sh_cpu_default=${sh_cpu_target} ;;
2570 *) echo "with_cpu=$with_cpu not supported"; exit 1 ;;
2572 sh_multilibs=${with_multilib_list}
2573 if test "$sh_multilibs" = "default" ; then
2575 sh64-superh-linux* | \
2576 sh[1234]*) sh_multilibs=${sh_cpu_target} ;;
2577 sh64* | sh5*) sh_multilibs=m5-32media,m5-32media-nofpu,m5-compact,m5-compact-nofpu,m5-64media,m5-64media-nofpu ;;
2578 sh-superh-*) sh_multilibs=m4,m4-single,m4-single-only,m4-nofpu ;;
2579 sh*-*-linux*) sh_multilibs=m1,m2,m2a,m3e,m4 ;;
2580 sh*-*-netbsd*) sh_multilibs=m3,m3e,m4 ;;
2581 *) sh_multilibs=m1,m2,m2e,m4,m4-single,m4-single-only,m2a,m2a-single ;;
2583 if test x$with_fp = xno; then
2584 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`"
2587 target_cpu_default=SELECT_`echo ${sh_cpu_default}|tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`
2588 tm_defines=${tm_defines}' SH_MULTILIB_CPU_DEFAULT=\"'`echo $sh_cpu_default|sed s/sh/m/`'\"'
2589 tm_defines="$tm_defines SUPPORT_`echo $sh_cpu_default | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2590 sh_multilibs=`echo $sh_multilibs | sed -e 's/,/ /g' -e 's/^[Ss][Hh]/m/' -e 's/ [Ss][Hh]/ m/g' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz-`
2591 for sh_multilib in ${sh_multilibs}; do
2592 case ${sh_multilib} in
2593 m1 | m2 | m2e | m3 | m3e | \
2594 m4 | m4-single | m4-single-only | m4-nofpu | m4-300 |\
2595 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al | \
2596 m2a | m2a-single | m2a-single-only | m2a-nofpu | \
2597 m5-64media | m5-64media-nofpu | \
2598 m5-32media | m5-32media-nofpu | \
2599 m5-compact | m5-compact-nofpu)
2600 # TM_MULTILIB_CONFIG is used by t-sh for the non-endian multilib definition
2601 # It is passed to MULTIILIB_OPTIONS verbatim.
2602 TM_MULTILIB_CONFIG="${TM_MULTILIB_CONFIG}/${sh_multilib}"
2603 tm_defines="$tm_defines SUPPORT_`echo $sh_multilib | sed 's/^m/sh/' | tr abcdefghijklmnopqrstuvwxyz- ABCDEFGHIJKLMNOPQRSTUVWXYZ_`=1"
2605 \!*) # TM_MULTILIB_EXCEPTIONS_CONFIG is used by t-sh
2606 # It is passed the MULTILIB_EXCEPTIONS verbatim.
2607 TM_MULTILIB_EXCEPTIONS_CONFIG="${TM_MULTILIB_EXCEPTIONS_CONFIG} `echo $sh_multilib | sed 's/^!//'`" ;;
2609 echo "with_multilib_list=${sh_multilib} not supported."
2614 TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's:^/::'`
2615 if test x${enable_incomplete_targets} = xyes ; then
2616 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"
2618 tm_file="$tm_file ./sysroot-suffix.h"
2619 tmake_file="$tmake_file t-sysroot-suffix"
2622 tmake_file="${tmake_file} sh/t-sh sh/t-rtems"
2623 tm_file="${tm_file} dbxelf.h elfos.h sh/elf.h sh/embed-elf.h sh/rtemself.h rtems.h newlib-stdint.h"
2626 tmake_file="$tmake_file sh/t-sh sh/t-vxworks"
2627 tm_file="${tm_file} elfos.h sh/elf.h sh/embed-elf.h vx-common.h vxworks.h sh/vxworks.h"
2630 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp-elf.h"
2633 tmake_file="sparc/t-sparc sparc/t-leon"
2636 tmake_file="sparc/t-sparc sparc/t-leon3"
2639 tmake_file="sparc/t-sparc sparc/t-elf"
2644 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h newlib-stdint.h"
2645 tmake_file="${tmake_file} sparc/t-sparc sparc/t-elf sparc/t-rtems"
2648 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h gnu-user.h linux.h glibc-stdint.h sparc/tso.h"
2649 extra_options="${extra_options} sparc/long-double-switch.opt"
2652 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon"
2655 tmake_file="${tmake_file} sparc/t-sparc sparc/t-leon3"
2658 tmake_file="${tmake_file} sparc/t-sparc"
2661 if test x$enable_targets = xall; then
2662 tm_file="sparc/biarch64.h ${tm_file} sparc/linux64.h"
2663 tmake_file="${tmake_file} sparc/t-linux64"
2665 tm_file="${tm_file} sparc/linux.h"
2666 tmake_file="${tmake_file} sparc/t-linux"
2670 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2671 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2672 extra_options="${extra_options} sparc/long-double-switch.opt"
2673 tmake_file="${tmake_file} sparc/t-sparc"
2676 tm_file="sparc/biarch64.h ${tm_file} ${sol2_tm_file} sparc/tso.h"
2678 sparc64-*-* | sparcv9-*-*)
2679 tm_file="sparc/default-64.h ${tm_file}"
2682 test x$with_cpu != x || with_cpu=v9
2685 tmake_file="${tmake_file} sparc/t-sparc sparc/t-sol2"
2688 tm_file="${tm_file} elfos.h sparc/sysv4.h vx-common.h vxworks.h sparc/vxworks.h"
2689 tmake_file="${tmake_file} sparc/t-sparc sparc/t-vxworks"
2692 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h"
2693 extra_options="${extra_options}"
2694 tmake_file="${tmake_file} sparc/t-sparc"
2697 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h sparc/sysv4.h sparc/sp64-elf.h sparc/rtemself.h rtems.h"
2698 extra_options="${extra_options}"
2699 tmake_file="${tmake_file} sparc/t-sparc sparc/t-rtems-64"
2702 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"
2703 extra_options="${extra_options} sparc/long-double-switch.opt"
2704 tmake_file="${tmake_file} sparc/t-sparc sparc/t-linux64"
2706 sparc64-*-freebsd*|ultrasparc-*-freebsd*)
2707 tm_file="${tm_file} ${fbsd_tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/freebsd.h"
2708 extra_options="${extra_options} sparc/long-double-switch.opt"
2709 case "x$with_cpu" in
2711 x) with_cpu=ultrasparc ;;
2712 *) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
2714 tmake_file="${tmake_file} sparc/t-sparc"
2717 tm_file="sparc/biarch64.h ${tm_file}"
2718 tm_file="${tm_file} dbxelf.h elfos.h sparc/sysv4.h netbsd.h netbsd-elf.h sparc/netbsd-elf.h"
2719 extra_options="${extra_options} netbsd.opt netbsd-elf.opt"
2720 extra_options="${extra_options} sparc/long-double-switch.opt"
2721 tmake_file="${tmake_file} sparc/t-sparc sparc/t-netbsd64"
2724 tm_file="sparc/openbsd1-64.h ${tm_file} dbxelf.h elfos.h sparc/sysv4.h sparc/sp64-elf.h"
2725 tm_file="${tm_file} openbsd.h openbsd-stdint.h openbsd-libpthread.h sparc/openbsd64.h"
2726 extra_options="${extra_options} openbsd.opt"
2727 extra_options="${extra_options}"
2730 tmake_file="${tmake_file} sparc/t-sparc"
2733 tm_file="dbxelf.h elfos.h spu/spu-elf.h spu/spu.h newlib-stdint.h"
2734 tmake_file="spu/t-spu-elf"
2735 native_system_header_dir=/include
2736 extra_headers="spu_intrinsics.h spu_internals.h vmx2spu.h spu_mfcio.h vec_types.h spu_cache.h"
2737 extra_modes=spu/spu-modes.def
2738 c_target_objs="${c_target_objs} spu-c.o"
2739 cxx_target_objs="${cxx_target_objs} spu-c.o"
2742 tm_file="elfos.h ${tm_file} c6x/elf-common.h c6x/elf.h"
2743 tm_file="${tm_file} dbxelf.h tm-dwarf2.h newlib-stdint.h"
2744 tmake_file="c6x/t-c6x c6x/t-c6x-elf"
2748 tm_file="elfos.h ${tm_file} gnu-user.h linux.h c6x/elf-common.h c6x/uclinux-elf.h"
2749 tm_file="${tm_file} dbxelf.h tm-dwarf2.h glibc-stdint.h"
2750 tm_file="${tm_file} ./sysroot-suffix.h"
2751 tmake_file="t-sysroot-suffix t-slibgcc"
2752 tmake_file="${tmake_file} c6x/t-c6x c6x/t-c6x-elf c6x/t-c6x-uclinux"
2756 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilegx/linux.h ${tm_file}"
2757 tmake_file="${tmake_file} tilegx/t-tilegx"
2758 extra_objs="${extra_objs} mul-tables.o"
2759 c_target_objs="${c_target_objs} tilegx-c.o"
2760 cxx_target_objs="${cxx_target_objs} tilegx-c.o"
2761 extra_headers="feedback.h"
2764 tm_defines="${tm_defines} TARGET_BIG_ENDIAN_DEFAULT=1"
2769 tm_file="elfos.h gnu-user.h linux.h glibc-stdint.h tilepro/linux.h ${tm_file}"
2770 tmake_file="${tmake_file} tilepro/t-tilepro"
2771 extra_objs="${extra_objs} mul-tables.o"
2772 c_target_objs="${c_target_objs} tilepro-c.o"
2773 cxx_target_objs="${cxx_target_objs} tilepro-c.o"
2774 extra_headers="feedback.h"
2777 target_cpu_default="TARGET_CPU_generic"
2778 tm_file="dbxelf.h elfos.h v850/v850.h"
2779 tm_file="${tm_file} rtems.h v850/rtems.h newlib-stdint.h"
2780 tmake_file="${tmake_file} v850/t-v850"
2781 tmake_file="${tmake_file} v850/t-rtems"
2783 c_target_objs="v850-c.o"
2784 cxx_target_objs="v850-c.o"
2789 target_cpu_default="TARGET_CPU_v850e3v5"
2792 target_cpu_default="TARGET_CPU_v850e2v3"
2795 target_cpu_default="TARGET_CPU_v850e2"
2797 v850e1-*-* | v850es-*-*)
2798 target_cpu_default="TARGET_CPU_v850e1"
2801 target_cpu_default="TARGET_CPU_v850e"
2804 target_cpu_default="TARGET_CPU_generic"
2807 tm_file="dbxelf.h elfos.h newlib-stdint.h v850/v850.h"
2808 if test x$stabs = xyes
2810 tm_file="${tm_file} dbx.h"
2813 c_target_objs="v850-c.o"
2814 cxx_target_objs="v850-c.o"
2818 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h vax/elf.h vax/linux.h"
2819 extra_options="${extra_options} vax/elf.opt"
2822 tm_file="${tm_file} elfos.h netbsd.h netbsd-elf.h vax/elf.h vax/netbsd-elf.h"
2823 extra_options="${extra_options} netbsd.opt netbsd-elf.opt vax/elf.opt"
2826 tm_file="vax/vax.h vax/openbsd1.h openbsd.h openbsd-stdint.h openbsd-pthread.h vax/openbsd.h"
2827 extra_options="${extra_options} openbsd.opt"
2831 # For historical reasons, the target files omit the 'x'.
2832 tm_file="dbxelf.h elfos.h newlib-stdint.h stormy16/stormy16.h"
2833 tm_p_file=stormy16/stormy16-protos.h
2834 md_file=stormy16/stormy16.md
2835 out_file=stormy16/stormy16.c
2836 extra_options=stormy16/stormy16.opt
2837 tmake_file="stormy16/t-stormy16"
2840 tm_file="${tm_file} dbxelf.h elfos.h newlib-stdint.h xtensa/elf.h"
2841 extra_options="${extra_options} xtensa/elf.opt"
2844 tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h xtensa/linux.h"
2845 tmake_file="${tmake_file} xtensa/t-xtensa"
2848 tm_file="mn10300/mn10300.h dbxelf.h elfos.h gnu-user.h linux.h glibc-stdint.h mn10300/linux.h"
2853 tm_file="dbxelf.h elfos.h ${tm_file} m32c/rtems.h rtems.h newlib-stdint.h"
2854 c_target_objs="m32c-pragma.o"
2855 cxx_target_objs="m32c-pragma.o"
2858 tm_file="dbxelf.h elfos.h newlib-stdint.h ${tm_file}"
2859 c_target_objs="m32c-pragma.o"
2860 cxx_target_objs="m32c-pragma.o"
2863 echo "*** Configuration ${target} not supported" 1>&2
2869 i[34567]86-*-linux* | x86_64-*-linux*)
2870 tmake_file="${tmake_file} i386/t-pmm_malloc i386/t-i386"
2872 i[34567]86-*-* | x86_64-*-*)
2873 tmake_file="${tmake_file} i386/t-gmm_malloc i386/t-i386"
2875 powerpc*-*-* | rs6000-*-*)
2876 tm_file="${tm_file} rs6000/option-defaults.h"
2879 if [ "$target_has_targetcm" = "no" ]; then
2880 c_target_objs="$c_target_objs default-c.o"
2881 cxx_target_objs="$cxx_target_objs default-c.o"
2884 if [ "$common_out_file" = "" ]; then
2885 if [ "$target_has_targetm_common" = "yes" ]; then
2886 common_out_file="$cpu_type/$cpu_type-common.c"
2888 common_out_file="default-common.c"
2892 # Support for --with-cpu and related options (and a few unrelated options,
2896 echo "--with-cpu must be passed a value" 1>&2
2901 # Set arch and cpu from ${target} and ${target_noncanonical}. Set cpu
2902 # to generic if there is no processor scheduler model for the target.
2905 arch_without_sse2=no
2906 arch_without_64bit=no
2909 if test $fbsd_major -ge 6; then
2915 arch_without_sse2=yes
2916 arch_without_64bit=yes
2921 arch_without_sse2=yes
2922 arch_without_64bit=yes
2927 arch_without_sse2=yes
2928 arch_without_64bit=yes
2931 arch_without_sse2=yes
2932 arch_without_64bit=yes
2933 case ${target_noncanonical} in
2946 pentium_mmx-*|winchip_c6-*|winchip2-*|c3-*)
2956 i686-*-* | i786-*-*)
2957 case ${target_noncanonical} in
2982 amdfam10-*|barcelona-*)
2986 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
2990 k8-*|opteron-*|athlon64-*|athlon_fx-*)
2994 athlon_xp-*|athlon_mp-*|athlon_4-*)
2997 arch_without_sse2=yes
2998 arch_without_64bit=yes
3000 athlon_tbird-*|athlon-*)
3003 arch_without_sse2=yes
3008 arch_without_sse2=yes
3013 arch_without_sse2=yes
3015 pentium3-*|pentium3m-*)
3018 arch_without_sse2=yes
3020 pentium4-*|pentium4m-*)
3059 arch_without_sse2=yes
3064 arch_without_sse2=yes
3065 arch_without_64bit=yes
3070 case ${target_noncanonical} in
3095 amdfam10-*|barcelona-*)
3099 k8_sse3-*|opteron_sse3-*|athlon64_sse3-*)
3103 k8-*|opteron-*|athlon_64-*)
3135 # If there is no $with_cpu option, try to infer one from ${target}.
3136 # This block sets nothing except for with_cpu.
3137 if test x$with_cpu = x ; then
3139 i[34567]86-*-*|x86_64-*-*)
3157 frv-*-*linux* | frv400-*-*linux*)
3164 case "$with_arch" in
3166 with_cpu=${default_cf_cpu}
3169 with_cpu=m${default_m68k_cpu}
3174 if test x$enable_e500_double = xyes; then
3192 with_cpu="`echo ${target} | sed 's/-.*$//'`"
3198 # Avoid overriding --with-cpu-32 and --with-cpu-64 values.
3200 i[34567]86-*-*|x86_64-*-*)
3201 if test x$with_cpu_32 != x || test x$with_cpu_64 != x; then
3202 if test x$with_cpu_32 = x; then
3203 with_cpu_32=$with_cpu
3205 if test x$with_cpu_64 = x; then
3206 with_cpu_64=$with_cpu
3214 # Support for --with-arch and related options (and a few unrelated options,
3216 case ${with_arch} in
3218 echo "--with-arch must be passed a value" 1>&2
3223 # If there is no $with_arch option, try to infer one from ${target}.
3224 # This block sets nothing except for with_arch.
3225 if test x$with_arch = x ; then
3227 i[34567]86-*-darwin*|x86_64-*-darwin*)
3228 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3229 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3232 # --with-fpmath sets the default ISA to SSE2, which is the same
3233 # ISA supported by Pentium 4.
3234 if test x$with_fpmath = x || test $arch_without_sse2 = no; then
3243 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3251 # Avoid overriding --with-arch-32 and --with-arch-64 values.
3253 i[34567]86-*-darwin*|x86_64-*-darwin*)
3254 # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
3255 # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
3257 i[34567]86-*-*|x86_64-*-*)
3258 if test x$with_arch_32 != x || test x$with_arch_64 != x; then
3259 if test x$with_arch_32 = x; then
3260 with_arch_32=$with_arch
3262 if test x$with_arch_64 = x; then
3263 if test $arch_without_64bit = yes; then
3264 # Set the default 64bit arch to x86-64 if the default arch
3265 # doesn't support 64bit.
3268 with_arch_64=$with_arch
3272 elif test $arch_without_64bit$need_64bit_isa = yesyes; then
3273 # Set the default 64bit arch to x86-64 if the default arch
3274 # doesn't support 64bit and we need 64bit ISA.
3275 with_arch_32=$with_arch
3283 # Infer a default setting for --with-float.
3284 if test x$with_float = x; then
3286 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3287 # The R5900 doesn't support 64-bit float. 32-bit float doesn't
3288 # comply with IEEE 754.
3294 # Infer a default setting for --with-fpu.
3295 if test x$with_fpu = x; then
3297 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3298 # The R5900 FPU only supports single precision.
3304 # Support --with-fpmath.
3305 if test x$with_fpmath != x; then
3307 i[34567]86-*-* | x86_64-*-*)
3308 case ${with_fpmath} in
3310 tm_file="${tm_file} i386/avxmath.h"
3313 tm_file="${tm_file} i386/ssemath.h"
3316 echo "Invalid --with-fpmath=$with_fpmath" 1>&2
3322 echo "--with-fpmath isn't supported for $target." 1>&2
3328 # Similarly for --with-schedule.
3329 if test x$with_schedule = x; then
3332 # Override default PA8000 scheduling model.
3333 with_schedule=7100LC
3338 # Infer a default setting for --with-llsc.
3339 if test x$with_llsc = x; then
3341 mips64r5900-*-* | mips64r5900el-*-* | mipsr5900-*-* | mipsr5900el-*-*)
3342 # The R5900 doesn't support LL(D) and SC(D).
3346 # The kernel emulates LL and SC where necessary.
3352 # Validate and mark as valid any --with options supported
3353 # by this target. In order to use a particular --with option
3354 # you must list it in supported_defaults; validating the value
3355 # is optional. This case statement should set nothing besides
3356 # supported_defaults.
3361 supported_defaults="abi cpu arch"
3362 for which in cpu arch; do
3364 eval "val=\$with_$which"
3365 base_val=`echo $val | sed -e 's/\+.*//'`
3366 ext_val=`echo $val | sed -e 's/[a-z0-9\-]\+//'`
3368 if [ $which = arch ]; then
3369 def=aarch64-arches.def
3370 pattern=AARCH64_ARCH
3372 def=aarch64-cores.def
3373 pattern=AARCH64_CORE
3376 ext_mask=AARCH64_CPU_DEFAULT_FLAGS
3378 # Find the base CPU or ARCH id in aarch64-cores.def or
3379 # aarch64-arches.def
3380 if [ x"$base_val" = x ] \
3381 || grep "^$pattern(\"$base_val\"," \
3382 ${srcdir}/config/aarch64/$def \
3385 if [ $which = arch ]; then
3386 base_id=`grep "^$pattern(\"$base_val\"," \
3387 ${srcdir}/config/aarch64/$def | \
3388 sed -e 's/^[^,]*,[ ]*//' | \
3390 # Extract the architecture flags from aarch64-arches.def
3391 ext_mask=`grep "^$pattern(\"$base_val\"," \
3392 ${srcdir}/config/aarch64/$def | \
3396 base_id=`grep "^$pattern(\"$base_val\"," \
3397 ${srcdir}/config/aarch64/$def | \
3398 sed -e 's/^[^,]*,[ ]*//' | \
3402 while [ x"$ext_val" != x ]
3404 ext_val=`echo $ext_val | sed -e 's/\+//'`
3405 ext=`echo $ext_val | sed -e 's/\+.*//'`
3406 base_ext=`echo $ext | sed -e 's/^no//'`
3408 if [ x"$base_ext" = x ] \
3409 || grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3410 ${srcdir}/config/aarch64/aarch64-option-extensions.def \
3413 ext_on=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3414 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3415 sed -e 's/^[^,]*,[ ]*//' | \
3417 ext_off=`grep "^AARCH64_OPT_EXTENSION(\"$base_ext\"," \
3418 ${srcdir}/config/aarch64/aarch64-option-extensions.def | \
3419 sed -e 's/^[^,]*,[ ]*[^,]*,[ ]*//' | \
3420 sed -e 's/,.*$//' | \
3423 if [ $ext = $base_ext ]; then
3425 ext_mask="("$ext_mask") | ("$ext_on")"
3427 # Removing extension
3428 ext_mask="("$ext_mask") & ~("$ext_off")"
3433 echo "Unknown extension used in --with-$which=$val" 1>&2
3436 ext_val=`echo $ext_val | sed -e 's/[a-z0-9]\+//'`
3439 ext_mask="(("$ext_mask") << 6)"
3440 if [ x"$base_id" != x ]; then
3441 target_cpu_cname="TARGET_CPU_$base_id | $ext_mask"
3445 echo "Unknown $which used in --with-$which=$val" 1>&2
3452 supported_defaults="cpu tune"
3453 for which in cpu tune; do
3454 eval "val=\$with_$which"
3457 | ev4 | ev45 | 21064 | ev5 | 21164 | ev56 | 21164a \
3458 | pca56 | 21164PC | 21164pc | ev6 | 21264 | ev67 \
3462 echo "Unknown CPU used in --with-$which=$val" 1>&2
3469 arc*-*-*) # was: arc*-*-linux-uclibc)
3470 supported_defaults="cpu"
3472 arc600|arc601|arc700)
3474 *) echo "Unknown cpu type"
3481 supported_defaults="arch cpu float tune fpu abi mode tls"
3482 for which in cpu tune; do
3483 # See if it matches any of the entries in arm-cores.def
3484 eval "val=\$with_$which"
3485 if [ x"$val" = x ] \
3486 || grep "^ARM_CORE(\"$val\"," \
3487 ${srcdir}/config/arm/arm-cores.def \
3490 new_val=`grep "^ARM_CORE(\"$val\"," \
3491 ${srcdir}/config/arm/arm-cores.def | \
3492 sed -e 's/^[^,]*,[ ]*//' | \
3494 eval "target_${which}_cname=$new_val"
3495 echo "For $val real value is $new_val"
3498 echo "Unknown CPU used in --with-$which=$val" 1>&2
3503 # See if it matches any of the entries in arm-arches.def
3504 if [ x"$with_arch" = x ] \
3505 || grep "^ARM_ARCH(\"$with_arch\"," \
3506 ${srcdir}/config/arm/arm-arches.def \
3511 echo "Unknown arch used in --with-arch=$with_arch" 1>&2
3515 case "$with_float" in
3517 | soft | hard | softfp)
3521 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3526 # see if it matches any of the entries in arm-fpus.def
3527 if [ x"$with_fpu" = x ] \
3528 || grep "^ARM_FPU(\"$with_fpu\"," \
3529 ${srcdir}/config/arm/arm-fpus.def \
3534 echo "Unknown fpu used in --with-fpu=$with_fpu" 1>&2
3540 | apcs-gnu | atpcs | aapcs | iwmmxt | aapcs-linux )
3544 echo "Unknown ABI used in --with-abi=$with_abi"
3549 case "$with_mode" in
3555 echo "Unknown mode used in --with-mode=$with_mode"
3566 echo "Unknown TLS method used in --with-tls=$with_tls" 1>&2
3571 if test "x$with_arch" != x && test "x$with_cpu" != x; then
3572 echo "Switch \"--with-arch\" may not be used with switch \"--with-cpu\"" 1>&2
3576 if test "x$with_cpu" != x && test "x$with_tune" != x; then
3577 echo "Switch \"--with-tune\" may not be used with switch \"--with-cpu\"" 1>&2
3581 # Add extra multilibs
3582 if test "x$with_multilib_list" != x; then
3583 arm_multilibs=`echo $with_multilib_list | sed -e 's/,/ /g'`
3584 for arm_multilib in ${arm_multilibs}; do
3585 case ${arm_multilib} in
3587 # Note that arm/t-aprofile is a
3588 # stand-alone make file fragment to be
3589 # used only with itself. We do not
3590 # specifically use the
3591 # TM_MULTILIB_OPTION framework because
3592 # this shorthand is more
3593 # pragmatic. Additionally it is only
3594 # designed to work without any
3595 # with-cpu, with-arch with-mode
3596 # with-fpu or with-float options.
3597 if test "x$with_arch" != x \
3598 || test "x$with_cpu" != x \
3599 || test "x$with_float" != x \
3600 || test "x$with_fpu" != x \
3601 || test "x$with_mode" != x ; then
3602 echo "Error: You cannot use any of --with-arch/cpu/fpu/float/mode with --with-multilib-list=aprofile" 1>&2
3605 tmake_file="${tmake_file} arm/t-aprofile"
3611 echo "Error: --with-multilib-list=${with_multilib_list} not supported." 1>&2
3620 supported_defaults=cpu
3625 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
3631 fido-*-* | m68k*-*-*)
3632 supported_defaults="arch cpu"
3633 case "$with_arch" in
3635 m68k_arch_family="$with_arch"
3638 echo "Invalid --with-arch=$with_arch" 1>&2
3643 # We always have a $with_cpu setting here.
3645 "m68000" | "m68010" | "m68020" | "m68030" | "m68040" | "m68060")
3646 m68k_cpu_ident=$with_cpu
3649 m68k_cpu_ident=m68020
3650 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_40"
3653 m68k_cpu_ident=m68020
3654 tm_defines="$tm_defines M68K_DEFAULT_TUNE=u68020_60"
3657 # We need the C identifier rather than the string.
3658 m68k_cpu_ident=`awk -v arg="\"$with_cpu\"" \
3659 'BEGIN { FS="[ \t]*[,()][ \t]*" }; \
3660 $1 == "M68K_DEVICE" && $2 == arg { print $3 }' \
3661 ${srcdir}/config/m68k/m68k-devices.def`
3662 if [ x"$m68k_cpu_ident" = x ] ; then
3663 echo "Unknown CPU used in --with-cpu=$with_cpu" 1>&2
3666 with_cpu="mcpu=$with_cpu"
3672 supported_defaults="arch schedule"
3674 case "$with_arch" in
3675 "" | 1.0 | 1.1 | 2.0)
3679 echo "Unknown architecture used in --with-arch=$with_arch" 1>&2
3684 case "$with_schedule" in
3685 "" | 700 | 7100 | 7100LC | 7200 | 7300 | 8000)
3689 echo "Unknown processor used in --with-schedule=$with_schedule." 1>&2
3695 i[34567]86-*-* | x86_64-*-*)
3696 supported_defaults="abi arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64"
3697 for which in arch arch_32 arch_64 cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3698 eval "val=\$with_$which"
3699 case " $x86_archs " in
3707 echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
3716 if test x${val} != x; then
3717 case " $x86_64_archs " in
3722 # Allow $x86_cpus --with-cpu=/--with-tune=
3725 case " $x86_cpus " in
3730 echo "Unknown CPU given in --with-$which=$val." 1>&2
3736 echo "Unknown CPU given in --with-$which=$val." 1>&2
3749 supported_defaults="abi arch arch_32 arch_64 float fpu nan tune tune_32 tune_64 divide llsc mips-plt synci"
3751 case ${with_float} in
3756 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
3762 "" | single | double)
3766 echo "Unknown fpu type used in --with-fpu=$with_fpu" 1>&2
3776 echo "Unknown NaN encoding used in --with-nan=$with_nan" 1>&2
3782 "" | 32 | o64 | n32 | 64 | eabi)
3786 echo "Unknown ABI used in --with-abi=$with_abi" 1>&2
3791 case ${with_divide} in
3792 "" | breaks | traps)
3796 echo "Unknown division check type use in --with-divide=$with_divide" 1>&2
3801 case ${with_llsc} in
3812 echo "Unknown llsc type used in --with-llsc" 1>&2
3817 case ${with_mips_plt} in
3822 with_mips_plt=no-plt
3827 echo "Unknown --with-mips-plt argument: $with_mips_plt" 1>&2
3832 case ${with_synci} in
3842 echo "Unknown synci type used in --with-synci" 1>&2
3849 supported_defaults="arch nds32_lib"
3851 # process --with-arch
3852 case "${with_arch}" in
3857 echo "Cannot accept --with-arch=$with_arch, available values are: v2 v3 v3m" 1>&2
3862 # process --with-nds32-lib
3863 case "${with_nds32_lib}" in
3865 # the default library is newlib
3866 with_nds32_lib=newlib
3875 echo "Cannot accept --with-nds32-lib=$with_nds32_lib, available values are: newlib mculib" 1>&2
3881 powerpc*-*-* | rs6000-*-*)
3882 supported_defaults="abi cpu cpu_32 cpu_64 float tune tune_32 tune_64"
3884 for which in cpu cpu_32 cpu_64 tune tune_32 tune_64; do
3885 eval "val=\$with_$which"
3887 default32 | default64)
3892 echo "$val only valid for --with-cpu and --with-tune." 1>&2
3896 with_which="with_$which"
3900 tm_defines="${tm_defines} CONFIG_PPC405CR"
3901 eval "with_$which=405"
3903 "" | common | native \
3904 | power | power[2345678] | power6x | powerpc | powerpc64 \
3905 | rios | rios1 | rios2 | rsc | rsc1 | rs64a \
3906 | 401 | 403 | 405 | 405fp | 440 | 440fp | 464 | 464fp \
3907 | 476 | 476fp | 505 | 601 | 602 | 603 | 603e | ec603e \
3908 | 604 | 604e | 620 | 630 | 740 | 750 | 7400 | 7450 \
3909 | a2 | e300c[23] | 854[08] | e500mc | e500mc64 | e5500 | e6500 \
3910 | titan | 801 | 821 | 823 | 860 | 970 | G3 | G4 | G5 | cell)
3914 echo "Unknown cpu used in --with-$which=$val." 1>&2
3921 "" | elfv1 | elfv2 )
3925 echo "Unknown ABI used in --with-abi=$with_abi"
3932 supported_defaults="arch mode tune"
3934 for which in arch tune; do
3935 eval "val=\$with_$which"
3937 "" | g5 | g6 | z900 | z990 | z9-109 | z9-ec | z10 | z196 | zEC12)
3941 echo "Unknown cpu used in --with-$which=$val." 1>&2
3947 case ${with_mode} in
3952 echo "Unknown architecture mode used in --with-mode=$with_mode." 1>&2
3958 sh[123456ble]-*-* | sh-*-*)
3959 supported_defaults="cpu"
3960 case "`echo $with_cpu | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ_ abcdefghijklmnopqrstuvwxyz- | sed s/sh/m/`" in
3961 "" | m1 | m2 | m2e | m3 | m3e | m4 | m4-single | m4-single-only | m4-nofpu )
3964 m2a | m2a-single | m2a-single-only | m2a-nofpu)
3966 m4a | m4a-single | m4a-single-only | m4a-nofpu | m4al)
3969 echo "Unknown CPU used in --with-cpu=$with_cpu, known values:" 1>&2
3970 echo "m1 m2 m2e m3 m3e m4 m4-single m4-single-only m4-nofpu" 1>&2
3971 echo "m4a m4a-single m4a-single-only m4a-nofpu m4al" 1>&2
3972 echo "m2a m2a-single m2a-single-only m2a-nofpu" 1>&2
3978 supported_defaults="cpu float tune"
3980 for which in cpu tune; do
3981 eval "val=\$with_$which"
3983 "" | sparc | sparcv9 | sparc64 \
3985 | v8 | supersparc | hypersparc | leon | leon3 | leon3v7 \
3986 | sparclite | f930 | f934 | sparclite86x \
3987 | sparclet | tsc701 \
3988 | v9 | ultrasparc | ultrasparc3 | niagara | niagara2 \
3989 | niagara3 | niagara4)
3993 echo "Unknown cpu used in --with-$which=$val" 1>&2
3999 case ${with_float} in
4004 echo "Unknown floating point type used in --with-float=$with_float" 1>&2
4011 supported_defaults="arch tune"
4013 for which in arch tune; do
4014 eval "val=\$with_$which"
4016 "" | cell | celledp)
4020 echo "Unknown cpu used in --with-$which=$val." 1>&2
4028 supported_defaults="arch"
4030 case ${with_arch} in
4031 "" | c62x | c64x | c64x+ | c67x | c67x+ | c674x)
4035 echo "Unknown arch used in --with-arch=$with_arch." 1>&2
4042 supported_defaults=cpu
4044 "" | v850e | v850e1 | v850e2 | v850es | v850e2v3 | v850e3v5)
4048 echo "Unknown cpu used in --with-cpu=$with_cpu" 1>&2
4055 # Set some miscellaneous flags for particular targets.
4056 target_cpu_default2=
4059 if test x"$target_cpu_cname" != x
4061 target_cpu_default2=$target_cpu_cname
4066 if test x$target_cpu_cname = x
4068 target_cpu_default2=TARGET_CPU_generic
4070 target_cpu_default2=TARGET_CPU_$target_cpu_cname
4075 if test x$gas = xyes
4077 target_cpu_default2="MASK_GAS"
4081 fido*-*-* | m68k*-*-*)
4082 target_cpu_default2=$m68k_cpu_ident
4083 tmake_file="m68k/t-opts $tmake_file"
4084 if [ x"$m68k_arch_family" != x ]; then
4085 tmake_file="m68k/t-$m68k_arch_family $tmake_file"
4089 i[34567]86-*-darwin* | x86_64-*-darwin*)
4091 i[34567]86-*-linux* | x86_64-*-linux*)
4092 tmake_file="$tmake_file i386/t-linux"
4094 i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
4095 tmake_file="$tmake_file i386/t-kfreebsd"
4098 tmake_file="$tmake_file i386/t-gnu"
4100 i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*)
4102 i[34567]86-*-cygwin* | x86_64-*-cygwin*)
4104 i[34567]86-*-mingw* | x86_64-*-mingw*)
4106 i[34567]86-*-dragonfly* | x86_64-*-dragonfly*)
4108 i[34567]86-*-freebsd* | x86_64-*-freebsd*)
4114 if test x$gnu_ld = xyes
4116 target_cpu_default2="MASK_SPLIT_ADDRESSES"
4120 tm_defines="TARGET_ENDIAN_DEFAULT=0 $tm_defines"
4123 tmake_file="mips/t-mips $tmake_file"
4126 powerpc*-*-* | rs6000-*-*)
4127 # FIXME: The PowerPC port uses the value set at compile time,
4128 # although it's only cosmetic.
4129 if test "x$with_cpu" != x
4131 target_cpu_default2="\\\"$with_cpu\\\""
4133 out_file=rs6000/rs6000.c
4134 c_target_objs="${c_target_objs} rs6000-c.o"
4135 cxx_target_objs="${cxx_target_objs} rs6000-c.o"
4136 tmake_file="rs6000/t-rs6000 ${tmake_file}"
4139 sh[123456ble]*-*-* | sh-*-*)
4140 c_target_objs="${c_target_objs} sh-c.o"
4141 cxx_target_objs="${cxx_target_objs} sh-c.o"
4145 # Some standard aliases.
4150 xsparcv9 | xsparc64)
4155 if test x$with_tune = x ; then
4166 # The SPARC port checks this value at compile-time.
4167 target_cpu_default2="TARGET_CPU_$with_cpu"
4171 case "x$with_cpu" in
4174 xv850e | xv850e1 | xv850e2 | xv850e2v3 | xv850e3v5)
4175 target_cpu_default2="TARGET_CPU_$with_cpu"
4178 target_cpu_default2="TARGET_CPU_v850e1"
4185 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"
4186 for option in $all_defaults
4188 eval "val=\$with_"`echo $option | sed s/-/_/g`
4189 if test -n "$val"; then
4190 case " $supported_defaults " in
4194 echo "This target does not support --with-$option." 2>&1
4195 echo "Valid --with options are: $supported_defaults" 2>&1
4202 t="{ \"$option\", \"$val\" }"
4204 t="${t}, { \"$option\", \"$val\" }"
4211 configure_default_options="{ { NULL, NULL} }"
4213 configure_default_options="{ ${t} }"
4216 if test "$target_cpu_default2" != ""
4218 if test "$target_cpu_default" != ""
4220 target_cpu_default="(${target_cpu_default}|${target_cpu_default2})"
4222 target_cpu_default=$target_cpu_default2