diff options
Diffstat (limited to 'libgcc/config.host')
-rw-r--r-- | libgcc/config.host | 585 |
1 files changed, 443 insertions, 142 deletions
diff --git a/libgcc/config.host b/libgcc/config.host index 08c00a37f97..8af99f57987 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -58,8 +58,12 @@ # Defaults to "$cpu_type/sfp-machine.h" if it exists, # no-sfp-machine.h otherwise. # tmake_file A list of machine-description-specific -# makefile-fragments, if different from -# "$cpu_type/t-$cpu_type". +# makefile fragments. +# tm_defines List of target macros to define for all compilations. +# tm_file A list of target macro files used only for code +# built for the target, not the host. These files +# are relative to $srcdir/config and must not have +# the same names as files in $srcdir/../gcc/config. # unwind_header The name of the header file declaring the unwind # runtime interface routines. @@ -67,6 +71,8 @@ asm_hidden_op=.hidden enable_execute_stack= extra_parts= tmake_file= +tm_file= +tm_define= md_unwind_header=no-unwind.h unwind_header=unwind-generic.h @@ -163,7 +169,7 @@ esac case ${host} in *-*-darwin*) asm_hidden_op=.private_extern - tmake_file="$tmake_file t-darwin ${cpu_type}/t-darwin t-slibgcc-darwin" + tmake_file="$tmake_file t-darwin ${cpu_type}/t-darwin t-libgcc-pic t-slibgcc-darwin" extra_parts=crt3.o ;; *-*-freebsd[12] | *-*-freebsd[12].* | *-*-freebsd*aout*) @@ -179,22 +185,56 @@ case ${host} in # This is the generic ELF configuration of FreeBSD. Later # machine-specific sections may refine and add to this # configuration. - tmake_file="$tmake_file t-eh-dw2-dip" + tmake_file="$tmake_file t-freebsd t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver" + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" + case ${target_thread_file} in + posix) + tmake_file="${tmake_file} t-freebsd-thread" + # Before 5.0, FreeBSD can't bind shared libraries to -lc + # when "optionally" threaded via weak pthread_* checks. + case ${host} in + *-*-freebsd[34] | *-*-freebsd[34].*) + tmake_file="${tmake_file} t-slibgcc-nolc-override" + ;; + esac + ;; + esac ;; *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu) - tmake_file="$tmake_file t-eh-dw2-dip" + tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-eh-dw2-dip t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-linux" extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o" ;; +*-*-lynxos*) + tmake_file="$tmake_file t-lynx $cpu_type/t-crtstuff t-crtstuff-pic t-libgcc-pic" + extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" + ;; *-*-netbsd*) + tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver" + # NetBSD 1.7 and later are set up to use GCC's crtstuff for + # ELF configurations. We will clear extra_parts in the + # a.out configurations. + case ${host} in + *-*-netbsd*1.[7-9]* | *-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*) + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" + ;; + esac ;; *-*-openbsd*) + tmake_file="$tmake_file t-crtstuff-pic t-libgcc-pic" + case ${target_thread_file} in + posix) + tmake_file="$tmake_file t-openbsd-thread" + ;; + esac ;; *-*-rtems*) + tmake_file="$tmake_file t-rtems" + extra_parts="crtbegin.o crtend.o" ;; *-*-solaris2*) # Unless linker support and dl_iterate_phdr are present, # unwind-dw2-fde-dip.c automatically falls back to unwind-dw2-fde.c. - tmake_file="$tmake_file t-sol2 t-eh-dw2-dip t-slibgcc t-slibgcc-elf-ver" + tmake_file="$tmake_file t-sol2 t-eh-dw2-dip t-libgcc-pic t-slibgcc t-slibgcc-elf-ver" if test $with_gnu_ld = yes; then tmake_file="$tmake_file t-slibgcc-gld" else @@ -213,14 +253,22 @@ case ${host} in extra_parts="$extra_parts crt1.o gcrt1.o" ;; *) - tmake_file="$tmake_file t-crtin" extra_parts="$extra_parts crt1.o crti.o crtn.o gcrt1.o" ;; esac ;; +*-*-uclinux*) + extra_parts="crtbegin.o crtend.o" + ;; +*-*-*vms*) + tmake_file="vms/t-vms" + extra_parts="vcrt0.o pcrt0.o crtbegin.o crtbeginS.o crtend.o crtendS.o" + ;; *-*-vxworks*) + tmake_file=t-vxworks ;; *-*-elf) + extra_parts="crtbegin.o crtend.o" ;; esac @@ -239,17 +287,19 @@ esac case ${host} in alpha*-*-linux*) - tmake_file="${tmake_file} t-crtfm" + tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee t-crtfm alpha/t-linux" extra_parts="$extra_parts crtfastmath.o" md_unwind_header=alpha/linux-unwind.h ;; alpha*-*-freebsd*) - tmake_file="${tmake_file} t-crtfm" - extra_parts="$extra_parts crtfastmath.o" + tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee t-crtfm" + extra_parts="$extra_parts crtbeginT.o crtfastmath.o" ;; alpha*-*-netbsd*) + tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee" ;; alpha*-*-openbsd*) + tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee" ;; alpha*-dec-osf5.1*) tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee t-crtfm t-slibgcc alpha/t-slibgcc-osf" @@ -258,32 +308,40 @@ alpha*-dec-osf5.1*) tmake_file="${tmake_file} alpha/t-osf-pthread" ;; esac - extra_parts="${extra_parts} qrnnd.o crtfastmath.o gthr-posix.o" + extra_parts="${extra_parts} crtfastmath.o" md_unwind_header=alpha/osf5-unwind.h ;; alpha64-dec-*vms*) - tmake_file="vms/t-vms vms/t-vms64 alpha/t-vms" + tmake_file="$tmake_file alpha/t-alpha alpha/t-ieee alpha/t-vms t-slibgcc-vms" + extra_parts="$extra_parts vms-dwarf2.o vms-dwarf2eh.o" md_unwind_header=alpha/vms-unwind.h ;; alpha*-dec-*vms*) - tmake_file="vms/t-vms alpha/t-vms" + tmake_file="$tmake_file alpha/t-alpha alpha/t-ieee alpha/t-vms t-slibgcc-vms" + extra_parts="$extra_parts vms-dwarf2.o vms-dwarf2eh.o" md_unwind_header=alpha/vms-unwind.h ;; arm-wrs-vxworks) - tmake_file=t-fdpbit + tmake_file="$tmake_file arm/t-arm arm/t-vxworks t-fdpbit" + extra_parts="$extra_parts crti.o crtn.o" ;; arm*-*-freebsd*) - tmake_file=t-fdpbit + tmake_file="$tmake_file arm/t-arm arm/t-strongarm-elf t-fdpbit" ;; arm*-*-netbsdelf*) + tmake_file="$tmake_file arm/t-arm arm/t-netbsd t-slibgcc-gld-nover" ;; arm*-*-linux*) # ARM GNU/Linux with ELF - tmake_file="${tmake_file} t-fixedpoint-gnu-prefix" + tmake_file="${tmake_file} arm/t-arm t-fixedpoint-gnu-prefix" case ${host} in arm*-*-linux-*eabi) - tmake_file="${tmake_file} arm/t-bpabi" + tmake_file="${tmake_file} arm/t-elf arm/t-bpabi arm/t-linux-eabi t-slibgcc-libgcc" + tm_file="$tm_file arm/bpabi-lib.h" unwind_header=config/arm/unwind-arm.h ;; + *) + tmake_file="$tmake_file arm/t-linux" + ;; esac tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" ;; @@ -292,121 +350,192 @@ arm*-*-uclinux*) # ARM ucLinux case ${host} in arm*-*-uclinux*eabi) tmake_file="${tmake_file} arm/t-bpabi" + tm_file="$tm_file arm/bpabi-lib.h" unwind_header=config/arm/unwind-arm.h ;; esac - tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + extra_parts="$extra_parts crti.o crtn.o" ;; arm*-*-ecos-elf) - tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + extra_parts="$extra_parts crti.o crtn.o" ;; -arm*-*-eabi* | arm*-*-symbianelf* ) - tmake_file="${tmake_file} t-fixedpoint-gnu-prefix" +arm*-*-eabi* | arm*-*-symbianelf* | arm*-*-rtemseabi*) + tmake_file="${tmake_file} arm/t-arm arm/t-elf t-fixedpoint-gnu-prefix" + tm_file="$tm_file arm/bpabi-lib.h" case ${host} in - arm*-*-eabi*) + arm*-*-eabi* | arm*-*-rtemseabi*) tmake_file="${tmake_file} arm/t-bpabi" + extra_parts="crtbegin.o crtend.o crti.o crtn.o" ;; arm*-*-symbianelf*) - tmake_file="${tmake_file} arm/t-symbian" + tmake_file="${tmake_file} arm/t-symbian t-slibgcc-nolc-override" + tm_file="$tm_file arm/symbian-lib.h" + # Symbian OS provides its own startup code. ;; esac tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" unwind_header=config/arm/unwind-arm.h ;; arm*-*-rtems*) - tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + extra_parts="$extra_parts crti.o crtn.o" ;; arm*-*-elf) - tmake_file="$tmake_file t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + tmake_file="$tmake_file arm/t-arm arm/t-elf t-softfp-sfdf t-softfp-excl arm/t-softfp t-softfp" + extra_parts="$extra_parts crti.o crtn.o" ;; arm*-wince-pe*) + tmake_file="$tmake_file arm/t-arm arm/t-wince-pe" ;; avr-*-rtems*) - tmake_file=t-fpbit + tmake_file="$tmake_file avr/t-avr avr/t-rtems t-fpbit" + tm_file="$tm_file avr/avr-lib.h" + # Don't use default. + extra_parts= ;; avr-*-*) # Make HImode functions for AVR tmake_file="${cpu_type}/t-avr t-fpbit" + tm_file="$tm_file avr/avr-lib.h" ;; bfin*-elf*) - tmke_file=t-fdpbit + tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-libgcc-pic t-fdpbit" + extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o crtlibid.o" ;; bfin*-uclinux*) - tmake_file=t-fdpbit + tmake_file="bfin/t-bfin bfin/t-crtlibid bfin/t-crtstuff t-libgcc-pic t-fdpbit" + extra_parts="$extra_parts crtbeginS.o crtendS.o crtlibid.o" md_unwind_header=bfin/linux-unwind.h ;; bfin*-linux-uclibc*) - tmake_file=t-fdpbit + tmake_file="$tmake_file bfin/t-bfin bfin/t-crtstuff t-libgcc-pic t-fdpbit bfin/t-linux" # No need to build crtbeginT.o on uClibc systems. Should probably # be moved to the OS specific section above. extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o" md_unwind_header=bfin/linux-unwind.h ;; bfin*-rtems*) - tmake_file=t-fdpbit + tmake_file="$tmake_file bfin/t-bfin t-fdpbit" + extra_parts="$extra_parts crti.o crtn.o" ;; bfin*-*) - tmake_file=t-fdpbit + tmake_file="$tmake_file bfin/t-bfin t-fdpbit" + extra_parts="crtbegin.o crtend.o crti.o crtn.o" ;; -crisv32-*-elf | crisv32-*-none | cris-*-elf | cris-*-none) - tmake_file=t-fdpbit - extra_parts="crtbegin.o crtend.o" +crisv32-*-elf) + tmake_file="$tmake_file cris/t-cris t-fdpbit" + ;; +cris-*-elf) + tmake_file="$tmake_file cris/t-cris t-fdpbit cris/t-elfmulti" ;; cris-*-linux* | crisv32-*-linux*) - tmake_file=t-fdpbit + tmake_file="$tmake_file cris/t-cris t-fdpbit cris/t-linux" ;; -fido-*-elf) +epiphany-*-elf*) + tmake_file="epiphany/t-epiphany t-fdpbit epiphany/t-custom-eqsf" + extra_parts="$extra_parts crti.o crtint.o crtrunc.o crtm1reg-r43.o crtm1reg-r63.o crtn.o" ;; fr30-*-elf) - tmake_file=t-fdpbit + tmake_file="$tmake_file fr30/t-fr30 t-fdpbit" + extra_parts="$extra_parts crti.o crtn.o" ;; frv-*-elf) - tmake_file=t-fdpbit + tmake_file="$tmake_file frv/t-frv t-fdpbit" + tm_file="$tm_file frv/frv-abi.h" + # Don't use crtbegin.o, crtend.o. + extra_parts="frvbegin.o frvend.o" ;; frv-*-*linux*) - tmake_file=t-fdpbit + tmake_file="$tmake_file frv/t-frv frv/t-linux t-fdpbit" + tm_file="$tm_file frv/frv-abi.h" ;; h8300-*-rtems*) - tmake_file=t-fpbit + tmake_file="$tmake_file h8300/t-h8300 t-fpbit" + tm_file="$tm_file h8300/h8300-lib.h" + extra_parts="$extra_parts crti.o crtn.o" ;; h8300-*-elf*) - tmake_file=t-fpbit + tmake_file="$tmake_file h8300/t-h8300 t-fpbit" + tm_file="$tm_file h8300/h8300-lib.h" + extra_parts="$extra_parts crti.o crtn.o" ;; hppa*64*-*-linux*) + tmake_file="$tmake_file pa/t-linux pa/t-linux64" ;; hppa*-*-linux*) + tmake_file="$tmake_file pa/t-linux t-slibgcc-libgcc" + # Set the libgcc version number + if test x$enable_sjlj_exceptions = xyes; then + tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" + else + tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" + fi md_unwind_header=pa/linux-unwind.h ;; hppa[12]*-*-hpux10*) + tmake_file="$tmake_file pa/t-hpux pa/t-hpux10 t-libgcc-pic t-slibgcc" + # Set the libgcc version number + if test x$enable_sjlj_exceptions = xyes; then + tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" + else + tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" + fi + tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux" md_unwind_header=pa/hpux-unwind.h ;; hppa*64*-*-hpux11*) + tmake_file="$tmake_file pa/t-hpux pa/t-pa64 pa/t-stublib pa/t-stublib64 t-libgcc-pic t-slibgcc" + # Set the libgcc version number + if test x$enable_sjlj_exceptions = xyes; then + tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" + else + tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" + fi + tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux" + extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o \ + libgcc_stub.a" md_unwind_header=pa/hpux-unwind.h ;; hppa[12]*-*-hpux11*) + tmake_file="$tmake_file pa/t-hpux pa/t-stublib t-libgcc-pic t-slibgcc" + # Set the libgcc version number + if test x$enable_sjlj_exceptions = xyes; then + tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver" + else + tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver" + fi + tmake_file="$tmake_file pa/t-slibgcc-hpux t-slibgcc-hpux" + extra_parts="libgcc_stub.a" md_unwind_header=pa/hpux-unwind.h ;; i[34567]86-*-darwin*) tmake_file="$tmake_file i386/t-crtpc i386/t-crtfm" + tm_file="$tm_file i386/darwin-lib.h" extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" ;; x86_64-*-darwin*) - tmake_file="t-darwin ${cpu_type}/t-darwin64 i386/t-crtpc i386/t-crtfm t-slibgcc-darwin" + tmake_file="$tmake_file i386/t-crtpc i386/t-crtfm" + tm_file="$tm_file i386/darwin-lib.h" extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" ;; i[34567]86-*-elf*) + tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" ;; x86_64-*-elf*) + tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" ;; i[34567]86-*-freebsd*) - tmake_file="${tmake_file} i386/t-freebsd" + tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff" ;; x86_64-*-freebsd*) - tmake_file="${tmake_file} i386/t-freebsd" + tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff" ;; i[34567]86-*-netbsdelf*) ;; x86_64-*-netbsd*) + tmake_file="${tmake_file} i386/t-crtstuff" ;; i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123]) ;; @@ -414,31 +543,33 @@ i[34567]86-*-openbsd*) ;; i[34567]86-*-linux*) extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" - tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm t-dfprules" + tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules" md_unwind_header=i386/linux-unwind.h ;; i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu* | i[34567]86-*-kopensolaris*-gnu) extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" - tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm t-dfprules" + tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules" ;; x86_64-*-linux*) extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" - tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm t-dfprules" + tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules" md_unwind_header=i386/linux-unwind.h ;; x86_64-*-kfreebsd*-gnu | x86_64-*-knetbsd*-gnu) extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" - tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm t-dfprules" + tmake_file="${tmake_file} i386/t-crtpc i386/t-crtfm i386/t-crtstuff t-dfprules" ;; i[34567]86-pc-msdosdjgpp*) ;; i[34567]86-*-lynxos*) ;; i[34567]86-*-nto-qnx*) + tmake_file="$tmake_file i386/t-nto t-libgcc-pic" + extra_parts=crtbegin.o ;; i[34567]86-*-rtems*) - extra_parts="crtbegin.o crtend.o crti.o crtn.o" - tmake_file="${tmake_file} t-crtin i386/t-softfp i386/t-crtstuff t-rtems" + tmake_file="$tmake_file i386/t-softfp i386/t-crtstuff" + extra_parts="$extra_parts crti.o crtn.o" ;; i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*) tmake_file="$tmake_file i386/t-crtpc i386/t-crtfm" @@ -449,86 +580,164 @@ i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae) ;; i[34567]86-*-cygwin*) extra_parts="crtbegin.o crtend.o crtfastmath.o" - tmake_file="i386/t-cygming i386/t-crtfm t-dfprules" + # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h + if test x$enable_sjlj_exceptions = xyes; then + tmake_eh_file="i386/t-sjlj-eh" + else + tmake_eh_file="i386/t-dw2-eh" + fi + # Shared libgcc DLL install dir depends on cross/native build. + if test x${build} = x${host} ; then + tmake_dlldir_file="i386/t-dlldir" + else + tmake_dlldir_file="i386/t-dlldir-x" + fi + tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-cygwin i386/t-crtfm i386/t-chkstk t-dfprules" + case ${target_thread_file} in + posix) + tmake_file="i386/t-mingw-pthread $tmake_file" + ;; + esac ;; i[34567]86-*-mingw*) extra_parts="crtbegin.o crtend.o crtfastmath.o" - tmake_file="i386/t-cygming i386/t-crtfm t-dfprules" + case ${target_thread_file} in + win32) + tmake_file="$tmake_file i386/t-gthr-win32" + ;; + esac + # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h + if test x$enable_sjlj_exceptions = xyes; then + tmake_eh_file="i386/t-sjlj-eh" + else + tmake_eh_file="i386/t-dw2-eh" + fi + # Shared libgcc DLL install dir depends on cross/native build. + if test x${build} = x${host} ; then + tmake_dlldir_file="i386/t-dlldir" + else + tmake_dlldir_file="i386/t-dlldir-x" + fi + tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-cygming i386/t-mingw32 i386/t-crtfm i386/t-chkstk t-dfprules" md_unwind_header=i386/w32-unwind.h ;; x86_64-*-mingw*) - tmake_file="t-dfprules i386/t-crtfm" + case ${target_thread_file} in + win32) + tmake_file="$tmake_file i386/t-gthr-win32" + ;; + esac + # This has to match the logic for DWARF2_UNWIND_INFO in gcc/config/i386/cygming.h + if test x$enable_sjlj_exceptions = xyes; then + tmake_eh_file="i386/t-sjlj-eh" + else + tmake_eh_file="i386/t-dw2-eh" + fi + # Shared libgcc DLL install dir depends on cross/native build. + if test x${build} = x${host} ; then + tmake_dlldir_file="i386/t-dlldir" + else + tmake_dlldir_file="i386/t-dlldir-x" + fi + tmake_file="${tmake_file} ${tmake_eh_file} ${tmake_dlldir_file} i386/t-slibgcc-cygming i386/t-mingw32 t-dfprules i386/t-crtfm i386/t-chkstk" extra_parts="$extra_parts crtfastmath.o" ;; i[34567]86-*-interix3*) + tmake_file="$tmake_file i386/t-interix i386/t-chkstk" ;; ia64*-*-elf*) - extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" + extra_parts="$extra_parts crtbeginS.o crtendS.o crtfastmath.o" tmake_file="ia64/t-ia64 ia64/t-eh-ia64 t-crtfm" ;; ia64*-*-freebsd*) - extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" - tmake_file="ia64/t-ia64 ia64/t-eh-ia64 t-crtfm" + extra_parts="$extra_parts crtfastmath.o" + tmake_file="$tmake_file ia64/t-ia64 ia64/t-eh-ia64 t-crtfm" ;; ia64*-*-linux*) + # Don't use crtbeginT.o from *-*-linux* default. extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o" - tmake_file="ia64/t-ia64 t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat ia64/t-eh-ia64 t-libunwind ia64/t-glibc" + tmake_file="$tmake_file ia64/t-ia64 t-crtfm t-softfp-tf ia64/t-softfp t-softfp ia64/t-softfp-compat ia64/t-eh-ia64 t-libunwind ia64/t-linux" if test x$with_system_libunwind != xyes ; then - tmake_file="${tmake_file} t-libunwind-elf ia64/t-glibc-libunwind" + tmake_file="${tmake_file} t-libunwind-elf ia64/t-linux-libunwind" fi md_unwind_header=ia64/linux-unwind.h ;; ia64*-*-hpux*) - tmake_file="ia64/t-hpux" + tmake_file="ia64/t-ia64 ia64/t-hpux t-slibgcc ia64/t-slibgcc-hpux t-slibgcc-hpux" ;; ia64-hp-*vms*) - tmake_file="vms/t-vms vms/t-vms64 ia64/t-eh-ia64 ia64/t-vms" + tmake_file="$tmake_file ia64/t-ia64 ia64/t-eh-ia64 ia64/t-vms t-slibgcc-vms" + extra_parts="$extra_parts crtinitS.o" md_unwind_header=ia64/vms-unwind.h ;; iq2000*-*-elf*) tmake_file=t-fdpbit + # Don't use default. + extra_parts= ;; -lm32-*-elf*|lm32-*-rtems*) - extra_parts="crtbegin.o crtend.o crti.o crtn.o" +lm32-*-elf*) + extra_parts="$extra_parts crti.o crtn.o" tmake_file="lm32/t-lm32 lm32/t-elf t-softfp-sfdf t-softfp" ;; +lm32-*-rtems*) + tmake_file="$tmake_file lm32/t-lm32 lm32/t-elf t-softfp-sfdf t-softfp" + extra_parts="$extra_parts crti.o crtn.o" + ;; lm32-*-uclinux*) - extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o" - tmake_file="lm32/t-lm32 lm32/t-uclinux t-softfp-sfdf t-softfp" + extra_parts="$extra_parts crtbegin.o crtendS.o crtbeginT.o" + tmake_file="lm32/t-lm32 lm32/t-uclinux t-libgcc-pic t-softfp-sfdf t-softfp" ;; -m32r-*-elf*|m32r-*-rtems*) +m32r-*-elf*) tmake_file=t-fdpbit ;; +m32r-*-rtems*) + tmake_file="$tmake_file m32r/t-m32r t-fdpbit" + ;; m32rle-*-elf*) tmake_file=t-fdpbit ;; m32r-*-linux*) - tmake_file=t-fdpbit + tmake_file="$tmake_file m32r/t-linux t-fdpbit" ;; m32rle-*-linux*) - tmake_file=t-fdpbit + tmake_file="$tmake_file m32r/t-linux t-fdpbit" ;; -m68k-*-elf*) +m68k-*-elf* | fido-*-elf) + tmake_file="$tmake_file m68k/t-floatlib" ;; m68k*-*-netbsdelf*) ;; m68k*-*-openbsd*) ;; m68k-*-uclinux*) # Motorola m68k/ColdFire running uClinux with uClibc + tmake_file="$tmake_file m68k/t-floatlib" md_unwind_header=m68k/linux-unwind.h ;; m68k-*-linux*) # Motorola m68k's running GNU/Linux # with ELF format using glibc 2 # aka the GNU/Linux C library 6. + tmake_file="$tmake_file m68k/t-floatlib" + # If not configured with --enable-sjlj-exceptions, bump the + # libgcc version number. + if test x$enable_sjlj_exceptions != xyes; then + tmake_file="$tmake_file m68k/t-slibgcc-elf-ver" + fi md_unwind_header=m68k/linux-unwind.h ;; m68k-*-rtems*) + tmake_file="$tmake_file m68k/t-floatlib" + extra_parts="$extra_parts crti.o crtn.o" ;; mcore-*-elf) - tmake_file=t-fdpbit + tmake_file="mcore/t-mcore t-fdpbit" + extra_parts="$extra_parts crti.o crtn.o" + ;; +microblaze*-linux*) + tmake_file="$tmake_file t-slibgcc-nolc-override microblaze/t-microblaze t-fdpbit" ;; microblaze*-*-*) tmake_file="microblaze/t-microblaze t-fdpbit" + extra_parts="crtbegin.o crtend.o crti.o crtn.o" ;; mips-sgi-irix6.5*) tmake_file="$tmake_file mips/t-irix6 t-crtfm mips/t-tpbit t-slibgcc mips/t-slibgcc-irix" @@ -550,47 +759,57 @@ mips*-*-linux*) # Linux MIPS, either endian. mips*-*-openbsd*) ;; mips*-sde-elf*) + tmake_file="mips/t-crtstuff mips/t-mips16" case "${with_newlib}" in yes) # newlib / libgloss. ;; *) # MIPS toolkit libraries. - tmake_file=mips/t-sdemtk + tmake_file="$tmake_file mips/t-sdemtk" ;; esac - tmake_file="$tmake_file mips/t-mips16" + extra_parts="$extra_parts crti.o crtn.o" ;; mipsisa32-*-elf* | mipsisa32el-*-elf* | \ mipsisa32r2-*-elf* | mipsisa32r2el-*-elf* | \ mipsisa64-*-elf* | mipsisa64el-*-elf* | \ mipsisa64r2-*-elf* | mipsisa64r2el-*-elf*) - tmake_file="$tmake_file mips/t-mips16" + tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16" + extra_parts="$extra_parts crti.o crtn.o" ;; mipsisa64sr71k-*-elf*) - tmake_file=t-fdpbit + tmake_file="mips/t-elf mips/t-crtstuff t-fdpbit" + extra_parts="$extra_parts crti.o crtn.o" ;; mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*) - tmake_file="$tmake_file mips/t-mips16" + tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16" + extra_parts="$extra_parts crti.o crtn.o" ;; mips-*-elf* | mipsel-*-elf*) - tmake_file="$tmake_file mips/t-mips16" + tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16" + extra_parts="$extra_parts crti.o crtn.o" ;; mips64-*-elf* | mips64el-*-elf*) - tmake_file="$tmake_file mips/t-mips16" + tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16" + extra_parts="$extra_parts crti.o crtn.o" ;; mips64vr-*-elf* | mips64vrel-*-elf*) + tmake_file="$tmake_file mips/t-elf mips/t-vr mips/t-crtstuff" + extra_parts="$extra_parts crti.o crtn.o" ;; mips64orion-*-elf* | mips64orionel-*-elf*) - tmake_file="$tmake_file mips/t-mips16" + tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16" + extra_parts="$extra_parts crti.o crtn.o" ;; mips*-*-rtems*) - tmake_file="$tmake_file mips/t-mips16" + tmake_file="$tmake_file mips/t-elf mips/t-crtstuff mips/t-mips16" + extra_parts="$extra_parts crti.o crtn.o" ;; mips-wrs-vxworks) ;; mipstx39-*-elf* | mipstx39el-*-elf*) - tmake_file="$tmake_file mips/t-mips16" + tmake_file="$tmake_file mips/t-crtstuff mips/t-mips16" ;; mmix-knuth-mmixware) extra_parts="crti.o crtn.o crtbegin.o crtend.o" @@ -599,12 +818,17 @@ mmix-knuth-mmixware) mn10300-*-*) tmake_file=t-fdpbit ;; -moxie-*-*) +moxie-*-elf | moxie-*-uclinux*) tmake_file="moxie/t-moxie t-softfp-sfdf t-softfp-excl t-softfp" - extra_parts="crtbegin.o crtend.o crti.o crtn.o" + extra_parts="$extra_parts crti.o crtn.o" + ;; +moxie-*-rtems*) + tmake_file="$tmake_file moxie/t-moxie t-softfp-sfdf t-softfp-excl t-softfp" + # Don't use default. + extra_parts= ;; pdp11-*-*) - tmake_file=t-fdpbit + tmake_file="pdp11/t-pdp11 t-fdpbit" ;; picochip-*-*) tmake_file="picochip/t-picochip t-fpbit" @@ -623,72 +847,86 @@ powerpc-*-darwin*) extra_parts="$extra_parts crt2.o" ;; powerpc64-*-darwin*) - tmake_file="$tmake_file rs6000/t-ibm-ldouble" + tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble" extra_parts="$extra_parts crt2.o" ;; powerpc-*-freebsd*) - tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp t-slibgcc-libgcc" + extra_parts="$extra_parts crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; powerpc-*-netbsd*) + tmake_file="$tmake_file rs6000/t-crtstuff" ;; powerpc-*-eabispe*) - tmake_file="${tmake_file} rs6000/t-ppccomm" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic" + extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; powerpc-*-eabisimaltivec*) - tmake_file="rs6000/t-ppccomm-ldbl t-fdpbit" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ppccomm-ldbl rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" + extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; powerpc-*-eabisim*) - tmake_file="rs6000/t-ppccomm-ldbl t-fdpbit" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ppccomm-ldbl rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" + extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; powerpc-*-elf*) - tmake_file="rs6000/t-ppccomm-ldbl t-fdpbit" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ppccomm-ldbl rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" + extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; powerpc-*-eabialtivec*) - tmake_file="rs6000/t-ppccomm-ldbl t-fdpbit" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ppccomm-ldbl rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" + extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; powerpc-xilinx-eabi*) - tmake_file="rs6000/t-ppccomm-ldbl t-fdpbit" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ppccomm-ldbl rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" + extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; powerpc-*-eabi*) - tmake_file="${tmake_file} rs6000/t-ppccomm t-fdpbit" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" + extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; powerpc-*-rtems*) - tmake_file="rs6000/t-ppccomm-ldbl t-fdpbit" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ppccomm-ldbl rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" + extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; powerpc-*-linux* | powerpc64-*-linux*) - tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128 t-softfp-sfdf t-softfp-excl t-dfprules rs6000/t-ppc64-fp t-softfp" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-crtstuff rs6000/t-linux t-softfp-sfdf t-softfp-excl t-dfprules rs6000/t-ppc64-fp t-softfp t-slibgcc-libgcc" + extra_parts="$extra_parts ecrti.o ecrtn.o ncrti.o ncrtn.o" md_unwind_header=rs6000/linux-unwind.h ;; powerpc-wrs-vxworks|powerpc-wrs-vxworksae) tmake_file="rs6000/t-ppccomm-ldbl t-fdpbit" ;; powerpc-*-lynxos*) - tmake_file=t-fdpbit + tmake_file="$tmake_file t-fdpbit" ;; powerpcle-*-elf*) - tmake_file="rs6000/t-ppccomm-ldbl t-fdpbit" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ppccomm-ldbl rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" + extra_parts="$extra_parts crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; powerpcle-*-eabisim*) - tmake_file="rs6000/t-ppccomm-ldbl t-fdpbit" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ppccomm-ldbl rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" + extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; powerpcle-*-eabi*) - tmake_file="rs6000/t-ppccomm-ldbl t-fdpbit" + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ppccomm-ldbl rs6000/t-crtstuff t-crtstuff-pic t-fdpbit" + extra_parts="$extra_parts crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" ;; rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*) md_unwind_header=rs6000/aix-unwind.h - tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-ibm-ldouble" + tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-ibm-ldouble rs6000/t-slibgcc-aix" ;; rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*) md_unwind_header=rs6000/aix-unwind.h - tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-ibm-ldouble" + tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-ibm-ldouble rs6000/t-slibgcc-aix" ;; rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*) md_unwind_header=rs6000/aix-unwind.h - tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-ibm-ldouble" + tmake_file="t-fdpbit rs6000/t-ppc64-fp rs6000/t-ibm-ldouble rs6000/t-slibgcc-aix" ;; rx-*-elf) - extra_parts="crtbegin.o crtend.o" tmake_file="rx/t-rx t-fdpbit" + tm_file="$tm_file rx/rx-abi.h rx/rx-lib.h" ;; s390-*-linux*) tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi" @@ -699,37 +937,60 @@ s390x-*-linux*) md_unwind_header=s390/linux-unwind.h ;; s390x-ibm-tpf*) - tmake_file="${tmake_file} s390/t-crtstuff s390/t-tpf t-eh-dw2-dip" + tmake_file="${tmake_file} s390/t-crtstuff t-libgcc-pic t-eh-dw2-dip" + extra_parts="crtbeginS.o crtendS.o" md_unwind_header=s390/tpf-unwind.h ;; score-*-elf) tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp" + extra_parts="$extra_parts crti.o crtn.o" ;; -sh-*-elf* | sh[12346l]*-*-elf* | \ - sh-*-linux* | sh[2346lbe]*-*-linux* | \ - sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ - sh64-*-netbsd* | sh64l*-*-netbsd*) - case ${host} in - sh*-*-linux*) - tmake_file="${tmake_file} sh/t-linux t-fdpbit" - md_unwind_header=sh/linux-unwind.h +sh-*-elf* | sh[12346l]*-*-elf*) + tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit" + extra_parts="$extra_parts crt1.o crti.o crtn.o crtbeginS.o crtendS.o \ + libic_invalidate_array_4-100.a \ + libic_invalidate_array_4-200.a \ + libic_invalidate_array_4a.a \ + libgcc-Os-4-200.a libgcc-4-300.a" + case ${host} in sh64*-*-*) + tmake_file="$tmake_file sh/t-sh64" ;; - sh*-*-netbsd*) - # NetBSD's C library includes a fast software FP library that - # has support for setting/setting the rounding mode, exception - # mask, etc. Therefore, we don't want to include software FP - # in libgcc. + esac + case ${host} in + sh*-superh-elf) + tmake_file="$tmake_file sh/t-superh" + extra_parts="$extra_parts crt1-mmu.o gcrt1-mmu.o gcrt1.o" + ;; + esac + ;; +sh-*-linux* | sh[2346lbe]*-*-linux*) + tmake_file="${tmake_file} sh/t-sh t-slibgcc-libgcc sh/t-linux t-fdpbit" + case ${host} in sh64*-*-linux*) + tmake_file="$tmake_file sh/t-sh64" ;; - sh*-*-*) - tmake_file=t-fdpbit + esac + md_unwind_header=sh/linux-unwind.h + ;; +sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \ + sh64-*-netbsd* | sh64l*-*-netbsd*) + tmake_file="$tmake_file sh/t-sh sh/t-netbsd" + case ${host} in + sh5*-*-netbsd* | sh64*-netbsd*) + tmake_file="$tmake_file sh/t-sh64" ;; esac + # NetBSD's C library includes a fast software FP library that + # has support for setting/setting the rounding mode, exception + # mask, etc. Therefore, we don't want to include software FP + # in libgcc. ;; sh-*-rtems*) - tmake_file=t-fdpbit + tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit" + extra_parts="$extra_parts crt1.o crti.o crtn.o crtbeginS.o crtendS.o \ + $sh_ic_extra_parts $sh_opt_extra_parts" ;; sh-wrs-vxworks) - tmake_file=t-fdpbit + tmake_file="$tmake_file sh/t-sh t-crtstuff-pic t-fdpbit" ;; sparc-*-netbsdelf*) ;; @@ -743,22 +1004,37 @@ sparc-*-elf*) tmake_file="sparc/t-softmul" ;; esac - tmake_file="${tmake_file} t-fdpbit t-crtin t-crtfm" - extra_parts="crtbegin.o crtend.o crti.o crtn.o crtfastmath.o" + tmake_file="${tmake_file} t-fdpbit t-crtfm" + extra_parts="$extra_parts crti.o crtn.o crtfastmath.o" ;; sparc-*-linux*) # SPARC's running GNU/Linux, libc6 + tmake_file="${tmake_file} t-crtfm" + if test "${host_address}" = 64; then + tmake_file="$tmake_file sparc/t-linux64" + fi case ${host} in *-leon*) - tmake_file=t-fdpbit + tmake_file="${tmake_file} t-fdpbit" + ;; + *) + tmake_file="${tmake_file} sparc/t-linux" ;; esac + case ${host} in + *-leon[3-9]*) + ;; + *) + if test "${host_address}" = 32; then + tmake_file="$tmake_file sparc/t-softmul" + fi + ;; + esac extra_parts="$extra_parts crtfastmath.o" - tmake_file="${tmake_file} t-crtfm" md_unwind_header=sparc/linux-unwind.h ;; sparc-*-rtems*) - tmake_file="sparc/t-elf t-crtin t-crtfm t-rtems t-fdpbit" - extra_parts="crtbegin.o crtend.o crti.o crtn.o crtfastmath.o" + tmake_file="$tmake_file sparc/t-elf sparc/t-softmul t-crtfm t-fdpbit" + extra_parts="$extra_parts crti.o crtn.o crtfastmath.o" ;; sparc*-*-solaris2*) tmake_file="$tmake_file t-crtfm" @@ -766,60 +1042,83 @@ sparc*-*-solaris2*) md_unwind_header=sparc/sol2-unwind.h ;; sparc64-*-elf*) - tmake_file="${tmake_file} t-crtin t-crtfm" - extra_parts="crtbegin.o crtend.o crti.o crtn.o crtfastmath.o" + tmake_file="${tmake_file} t-crtfm" + extra_parts="$extra_parts crti.o crtn.o crtfastmath.o" ;; sparc64-*-rtems*) - tmake_file="sparc/t-elf t-crtin t-crtfm t-rtems" - extra_parts="crtbegin.o crtend.o crti.o crtn.o crtfastmath.o" + tmake_file="$tmake_file sparc/t-elf t-crtfm" + extra_parts="$extra_parts crti.o crtn.o crtfastmath.o" ;; sparc-wrs-vxworks) ;; sparc64-*-freebsd*|ultrasparc-*-freebsd*) tmake_file="$tmake_file t-crtfm" - extra_parts="crtbegin.o crtbeginS.o crtend.o crtendS.o crtfastmath.o" + extra_parts="$extra_parts crtfastmath.o" ;; sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux extra_parts="$extra_parts crtfastmath.o" - tmake_file="${tmake_file} t-crtfm" + tmake_file="${tmake_file} t-crtfm sparc/t-linux" + if test "${host_address}" = 64; then + tmake_file="${tmake_file} sparc/t-linux64" + fi + if test "${host_address}" = 32; then + tmake_file="${tmake_file} sparc/t-softmul" + fi md_unwind_header=sparc/linux-unwind.h ;; sparc64-*-netbsd*) ;; spu-*-elf*) - tmake_file="t-fdpbit spu/t-elf" + tmake_file="$tmake_file spu/t-elf t-libgcc-pic t-fdpbit" + extra_parts="$extra_parts \ + libgcc_cachemgr.a libgcc_cachemgr_nonatomic.a \ + libgcc_cache8k.a libgcc_cache16k.a libgcc_cache32k.a \ + libgcc_cache64k.a libgcc_cache128k.a" + ;; +tic6x-*-uclinux) + tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp c6x/t-elf c6x/t-uclinux t-crtstuff-pic t-libgcc-pic t-slibgcc t-slibgcc-gld t-slibgcc-elf-ver t-gnu-prefix" + tm_file="$tm_file c6x/c6x-abi.h" + extra_parts="crtbeginS.o crtendS.o crti.o crtn.o" + unwind_header=config/c6x/unwind-c6x.h ;; -tic6x-*-*) - tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp t-gnu-prefix c6x/t-c6x-elf" +tic6x-*-elf) + tmake_file="${tmake_file} t-softfp-sfdf t-softfp-excl t-softfp t-gnu-prefix c6x/t-elf" + tm_file="$tm_file c6x/c6x-abi.h" + extra_parts="$extra_parts crtbeginS.o crtendS.o crti.o crtn.o" unwind_header=config/c6x/unwind-c6x.h ;; v850*-*-*) - tmake_file=t-fdpbit + tmake_file="v850/t-v850 t-fdpbit" ;; vax-*-linux*) + tmake_file="$tmake_file vax/t-linux" ;; vax-*-netbsdelf*) ;; vax-*-openbsd*) ;; xstormy16-*-elf) - tmake_file=t-fdpbit + tmake_file="stormy16/t-stormy16 t-fdpbit" ;; xtensa*-*-elf*) - tmake_file=xtensa/t-xtensa + tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-elf" + extra_parts="$extra_parts crti.o crtn.o" ;; xtensa*-*-linux*) - tmake_file=xtensa/t-xtensa + tmake_file="$tmake_file xtensa/t-xtensa xtensa/t-linux" md_unwind_header=xtensa/linux-unwind.h ;; am33_2.0-*-linux*) + # Don't need crtbeginT.o from *-*-linux* default. extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o" - tmake_file=t-fdpbit + tmake_file="$tmake_file t-fdpbit" ;; m32c-*-elf*|m32c-*-rtems*) + tmake_file="$tmake_file m32c/t-m32c" ;; mep*-*-*) - tmake_file=t-fdpbit + tmake_file="mep/t-mep t-fdpbit" + extra_parts="crtbegin.o crtend.o" ;; *) echo "*** Configuration ${host} not supported" 1>&2 @@ -829,9 +1128,10 @@ esac case ${host} in i[34567]86-*-linux* | x86_64-*-linux* | \ - i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | \ + i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \ + i[34567]86-*-knetbsd*-gnu | \ i[34567]86-*-gnu*) - tmake_file="${tmake_file} t-tls" + tmake_file="${tmake_file} t-tls i386/t-linux" if test "$libgcc_cv_cfi" = "yes"; then tmake_file="${tmake_file} t-stack i386/t-stack-i386" fi @@ -860,5 +1160,6 @@ i[34567]86-*-linux* | x86_64-*-linux*) if test "${host_address}" = 64; then tmake_file="${tmake_file} i386/${host_address}/t-softfp-compat" fi + tm_file="${tm_file} i386/value-unwind.h" ;; esac |