irix6-unwind.h: New file.
[gcc.git] / libgcc / config.host
index 2225e6790638d22483e96de47c777b1c3f9b552a..6ea74900c86b2b617f1f9252d4fa83f791da350d 100644 (file)
@@ -1,12 +1,12 @@
 # libgcc host-specific configuration file.
 # Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-# 2008 Free Software Foundation, Inc.
+# 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 
 #This file is part of GCC.
 
 #GCC is free software; you can redistribute it and/or modify it under
 #the terms of the GNU General Public License as published by the Free
-#Software Foundation; either version 2, or (at your option) any later
+#Software Foundation; either version 3, or (at your option) any later
 #version.
 
 #GCC is distributed in the hope that it will be useful, but WITHOUT
@@ -15,9 +15,8 @@
 #for more details.
 
 #You should have received a copy of the GNU General Public License
-#along with GCC; see the file COPYING.  If not, write to the Free
-#Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-#02110-1301, USA.
+#along with GCC; see the file COPYING3.  If not see
+#<http://www.gnu.org/licenses/>.
 
 # This is the libgcc host-specific configuration file
 # where a configuration type is mapped to different system-specific
 #                      The default is ".hidden".
 #  cpu_type            The name of the cpu, if different from the first
 #                      chunk of the canonical host name.
+#  enable_execute_stack The name of a source file implementing
+#                      __enable_execute_stack.
 #  extra_parts         List of extra object files that should be compiled
 #                      for this target machine.  This may be overridden
 #                      by setting EXTRA_PARTS in a tmake_file fragment.
 #                      If either is set, EXTRA_PARTS and
 #                      EXTRA_MULTILIB_PARTS inherited from the GCC
 #                      subdirectory will be ignored.
+#  md_unwind_header    The name of a header file defining
+#                      MD_FALLBACK_FRAME_STATE_FOR.
 #  tmake_file          A list of machine-description-specific
 #                      makefile-fragments, if different from
 #                      "$cpu_type/t-$cpu_type".
 
 asm_hidden_op=.hidden
+enable_execute_stack=
 extra_parts=
 tmake_file=
+md_unwind_header=no-unwind.h
 
 # Set default cpu_type so it can be updated in each machine entry.
 cpu_type=`echo ${host} | sed 's/-.*$//'`
@@ -85,6 +90,8 @@ fido-*-*)
        ;;
 frv*)  cpu_type=frv
        ;;
+moxie*)        cpu_type=moxie
+       ;;
 i[34567]86-*-*)
        cpu_type=i386
        ;;
@@ -96,11 +103,19 @@ ia64-*-*)
 hppa*-*-*)
        cpu_type=pa
        ;;
+lm32*-*-*)
+       cpu_type=lm32
+       ;;
 m32r*-*-*)
         cpu_type=m32r
         ;;
 m68k-*-*)
        ;;
+mep*-*-*)
+       ;;
+microblaze*-*-*)
+       cpu_type=microblaze
+       ;;
 mips*-*-*)
        cpu_type=mips
        ;;
@@ -159,12 +174,50 @@ case ${host} in
   ;;
 *-*-rtems*)
   ;;
+*-*-solaris2*)
+  tmake_file="$tmake_file t-sol2 t-slibgcc t-slibgcc-elf-ver"
+  if test $with_gnu_ld = yes; then
+    tmake_file="$tmake_file t-slibgcc-gld"
+  else
+    tmake_file="$tmake_file t-slibgcc-sld"
+  fi
+  # Add cpu-specific t-sol2 after t-slibgcc-* so it can augment SHLIB_MAPFILES.
+  tmake_file="$tmake_file $cpu_type/t-sol2"
+  extra_parts="gmon.o crtbegin.o crtend.o"
+  case ${host} in
+    i?86-*-solaris2.1[0-9]*)
+      # Solaris 10+/x86 provides crt1.o, crti.o, crtn.o, and gcrt1.o as
+      # part of the base system.
+      ;;
+    sparc*-*-solaris2.1[0-9]*)
+      # Solaris 10+/SPARC lacks crt1.o and gcrt1.o.
+      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
+  ;;
 *-*-vxworks*)
   ;;
 *-*-elf)
   ;;
 esac
 
+case ${host} in
+*-*-darwin* | *-*-freebsd* | *-*-netbsd* | *-*-openbsd* | *-*-solaris2* | \
+  alpha*-dec-osf5.1*)
+  enable_execute_stack=enable-execute-stack-mprotect.c
+  ;;
+i[34567]86-*-mingw* | x86_64-*-mingw*)
+  enable_execute_stack=config/i386/enable-execute-stack-mingw32.c
+  ;;
+*)
+  enable_execute_stack=enable-execute-stack-empty.c;
+  ;;
+esac
+
 case ${host} in
 # Support site-specific machine types.
 *local*)
@@ -173,9 +226,10 @@ case ${host} in
        then tmake_file=${cpu_type}/t-$rest
        fi
        ;;
-alpha*-*-linux* | alpha*-*-gnu*)
+alpha*-*-linux*)
        tmake_file="${tmake_file} alpha/t-crtfm"
        extra_parts="$extra_parts crtfastmath.o"
+       md_unwind_header=alpha/linux-unwind.h
        ;;
 alpha*-*-freebsd*)
        ;;
@@ -183,17 +237,23 @@ alpha*-*-netbsd*)
        ;;
 alpha*-*-openbsd*)
        ;;
-alpha*-dec-osf[45]*)
+alpha*-dec-osf5.1*)
+       tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee alpha/t-crtfm t-slibgcc alpha/t-slibgcc-osf"
+       case ${target_thread_file} in
+         posix)
+           tmake_file="${tmake_file} alpha/t-osf-pthread"
+           ;;
+       esac
+       extra_parts="${extra_parts} qrnnd.o crtfastmath.o gthr-posix.o"
+       md_unwind_header=alpha/osf5-unwind.h
        ;;
 alpha64-dec-*vms*)
+       tmake_file="vms/t-vms vms/t-vms64 alpha/t-vms"
+       md_unwind_header=alpha/vms-unwind.h
        ;;
 alpha*-dec-*vms*)
-       ;;
-arc-*-elf*)
-       ;;
-arm-*-coff* | armel-*-coff*)
-       ;;
-arm-semi-aof | armel-semi-aof)
+       tmake_file="vms/t-vms alpha/t-vms"
+       md_unwind_header=alpha/vms-unwind.h
        ;;
 arm-wrs-vxworks)
        ;;
@@ -201,8 +261,6 @@ arm*-*-freebsd*)
        ;;
 arm*-*-netbsdelf*)
        ;;
-arm*-*-netbsd*)
-       ;;
 arm*-*-linux*)                 # ARM GNU/Linux with ELF
        ;;
 arm*-*-uclinux*)               # ARM ucLinux
@@ -217,8 +275,6 @@ arm*-*-elf)
        ;;
 arm*-wince-pe*)
        ;;
-arm-*-pe*)
-       ;;
 avr-*-rtems*)
        ;;
 avr-*-*)
@@ -228,11 +284,13 @@ avr-*-*)
 bfin*-elf*)
         ;;
 bfin*-uclinux*)
+       md_unwind_header=bfin/linux-unwind.h
         ;;
 bfin*-linux-uclibc*)
        # 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*-*)
         ;;
@@ -241,8 +299,6 @@ crisv32-*-elf | crisv32-*-none | cris-*-elf | cris-*-none)
        ;;
 cris-*-linux* | crisv32-*-linux*)
        ;;
-crx-*-elf)
-       ;;
 fido-*-elf)
        ;;
 fr30-*-elf)
@@ -255,17 +311,19 @@ h8300-*-rtems*)
        ;;
 h8300-*-elf*)
        ;;
-h8300-*-*)
-       ;;
 hppa*64*-*-linux*)
        ;;
 hppa*-*-linux*)
+       md_unwind_header=pa/linux-unwind.h
        ;;
 hppa[12]*-*-hpux10*)
+       md_unwind_header=pa/hpux-unwind.h
        ;;
 hppa*64*-*-hpux11*)
+       md_unwind_header=pa/hpux-unwind.h
        ;;
 hppa[12]*-*-hpux11*)
+       md_unwind_header=pa/hpux-unwind.h
        ;;
 i[34567]86-*-darwin*)
        ;;
@@ -276,31 +334,29 @@ i[34567]86-*-elf*)
        ;;
 x86_64-*-elf*)
        ;;
-i[34567]86-*-aout*)
-       ;;
 i[34567]86-*-freebsd*)
+       tmake_file="${tmake_file} i386/t-freebsd"
        ;;
 x86_64-*-freebsd*)
+       tmake_file="${tmake_file} i386/t-freebsd"
        ;;
 i[34567]86-*-netbsdelf*)
        ;;
-i[34567]86-*-netbsd*)
-       ;;
 x86_64-*-netbsd*)
        ;;
 i[34567]86-*-openbsd2.*|i[34567]86-*openbsd3.[0123])
        ;;
 i[34567]86-*-openbsd*)
        ;;
-i[34567]86-*-coff*)
-       ;;
-i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i[34567]86-*-gnu*)
+i[34567]86-*-linux* | 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"
+       md_unwind_header=i386/linux-unwind.h
        ;;
 x86_64-*-linux* | 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"
+       md_unwind_header=i386/linux-unwind.h
        ;;
 i[34567]86-pc-msdosdjgpp*)
        ;;
@@ -316,27 +372,24 @@ i[3456x]86-*-netware*)
 i[34567]86-*-nto-qnx*)
        ;;
 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"
        ;;
 i[34567]86-*-solaris2*)
-       tmake_file="${tmake_file} i386/t-sol2"
-       case ${host} in
-       *-*-solaris2.1[0-9]*)
-               # Solaris 2.10 provides crt1.o, crti.o, crtn.o, and gcrt1.o as
-               # part of the base system.
-               extra_parts="gmon.o crtbegin.o crtend.o"
-               ;;
-       *)
-               extra_parts="crt1.o crti.o crtn.o gcrt1.o gmon.o crtbegin.o crtend.o"
-               ;;
-       esac
+       tmake_file="$tmake_file i386/t-crtfm"
+       extra_parts="$extra_parts crtfastmath.o"
+       md_unwind_header=i386/sol2-unwind.h
        ;;
 i[4567]86-wrs-vxworks|i[4567]86-wrs-vxworksae)
        ;;
-i[34567]86-*-pe)
+i[34567]86-*-cygwin*)
+       extra_parts="crtbegin.o crtend.o crtfastmath.o"
+       tmake_file="i386/t-cygming i386/t-crtfm"
        ;;
-i[34567]86-*-cygwin* | i[34567]86-*-mingw*)
+i[34567]86-*-mingw*)
        extra_parts="crtbegin.o crtend.o crtfastmath.o"
        tmake_file="i386/t-cygming i386/t-crtfm"
+       md_unwind_header=i386/w32-unwind.h
        ;;
 x86_64-*-mingw*)
        ;;
@@ -347,15 +400,30 @@ ia64*-*-elf*)
        tmake_file="ia64/t-ia64"
        ;;
 ia64*-*-freebsd*)
+       extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
+       tmake_file="ia64/t-ia64"
        ;;
 ia64*-*-linux*)
        extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
-       tmake_file="ia64/t-ia64 ia64/t-fprules-softfp ia64/t-softfp-compat"
+       tmake_file="ia64/t-ia64 t-softfp ia64/t-fprules-softfp ia64/t-softfp-compat"
+       md_unwind_header=ia64/linux-unwind.h
        ;;
 ia64*-*-hpux*)
        ;;
+ia64-hp-*vms*)
+       tmake_file="vms/t-vms vms/t-vms64 ia64/t-vms"
+       md_unwind_header=ia64/vms-unwind.h
+       ;;
 iq2000*-*-elf*)
         ;;
+lm32-*-elf*|lm32-*-rtems*)
+        extra_parts="crtbegin.o crtend.o crti.o crtn.o"
+        tmake_file="lm32/t-lm32 lm32/t-elf t-softfp"
+       ;;
+lm32-*-uclinux*)
+        extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
+        tmake_file="lm32/t-lm32 lm32/t-uclinux t-softfp"
+       ;;      
 m32r-*-elf*|m32r-*-rtems*)
        ;;
 m32rle-*-elf*)
@@ -364,14 +432,6 @@ m32r-*-linux*)
        ;;
 m32rle-*-linux*)
        ;;
-m68hc11-*-*|m6811-*-*)
-        ;;
-m68hc12-*-*|m6812-*-*)
-        ;;
-m68k-*-aout*)
-       ;;
-m68k-*-coff*)
-       ;;
 m68k-*-elf*)
        ;;
 m68k*-*-netbsdelf*)
@@ -379,24 +439,36 @@ m68k*-*-netbsdelf*)
 m68k*-*-openbsd*)
        ;;
 m68k-*-uclinux*)               # Motorola m68k/ColdFire running uClinux with uClibc
+       md_unwind_header=m68k/linux-unwind.h
        ;;
-m68k-*-linux*)         # Motorola m68k's running GNU/Linux
+m68k-*-linux*)                 # Motorola m68k's running GNU/Linux
                                # with ELF format using glibc 2
                                # aka the GNU/Linux C library 6.
+       md_unwind_header=m68k/linux-unwind.h
        ;;
 m68k-*-rtems*)
        ;;
 mcore-*-elf)
        ;;
-mcore-*-pe*)
+microblaze*-*-*)
+        tmake_file="microblaze/t-microblaze"
        ;;
-mips-sgi-irix[56]*)
+mips-sgi-irix6.5*)
+       tmake_file="mips/t-irix6 t-crtfm t-slibgcc mips/t-slibgcc-irix"
+       extra_parts="crtbegin.o crtend.o crtfastmath.o irix-crti.o irix-crtn.o"
+       md_unwind_header=mips/irix6-unwind.h
        ;;
 mips*-*-netbsd*)                       # NetBSD/mips, either endian.
        ;;
 mips64*-*-linux*)
+       extra_parts="$extra_parts crtfastmath.o"
+       tmake_file="{$tmake_file} t-crtfm"
+       md_unwind_header=mips/linux-unwind.h
        ;;
 mips*-*-linux*)                                # Linux MIPS, either endian.
+       extra_parts="$extra_parts crtfastmath.o"
+       tmake_file="{$tmake_file} t-crtfm"
+       md_unwind_header=mips/linux-unwind.h
        ;;
 mips*-*-openbsd*)
        ;;
@@ -427,30 +499,39 @@ mips-wrs-vxworks)
 mipstx39-*-elf* | mipstx39el-*-elf*)
        ;;
 mmix-knuth-mmixware)
+       extra_parts="crti.o crtn.o crtbegin.o crtend.o"
+       tmake_file="${tmake_file} ${cpu_type}/t-${cpu_type}"
        ;;
 mn10300-*-*)
        ;;
-pdp11-*-bsd)
-        ;;
+moxie-*-*)
+       tmake_file="moxie/t-moxie moxie/t-moxie-softfp"
+       extra_parts="crtbegin.o crtend.o crti.o crtn.o"
+       ;;
 pdp11-*-*)
        ;;
 picochip-*-*)
         ;;
-powerpc64-*-linux*)
-       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128 t-softfp"
-       ;;
-powerpc64-*-gnu*)
-       tmake_file="${tmake_file} rs6000/t-ldbl128 t-softfp"
-       ;;
 powerpc-*-darwin*)
+       case ${host} in
+       *-*-darwin9* | *-*-darwin[12][0-9]*)
+         # libSystem contains unwind information for signal frames since
+         # Darwin 9.
+         ;;
+       *)
+         md_unwind_header=rs6000/darwin-unwind.h
+         ;;
+       esac
        ;;
 powerpc64-*-darwin*)
        ;;
-powerpc*-*-freebsd*)
+powerpc-*-freebsd*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-freebsd t-softfp"
        ;;
 powerpc-*-netbsd*)
        ;;
 powerpc-*-eabispe*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm"
        ;;
 powerpc-*-eabisimaltivec*)
        ;;
@@ -461,23 +542,13 @@ powerpc-*-elf*)
 powerpc-*-eabialtivec*)
        ;;
 powerpc-*-eabi*)
+       tmake_file="${tmake_file} rs6000/t-ppccomm"
        ;;
 powerpc-*-rtems*)
        ;;
-powerpc-*-linux*altivec*)
-       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128"
-       ;;
-powerpc-*-linux*spe*)
-       tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128 t-softfp"
-       ;;
-powerpc-*-linux*)
+powerpc-*-linux* | powerpc64-*-linux*)
        tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-ldbl128 t-softfp"
-       ;;
-powerpc-*-gnu-gnualtivec*)
-       tmake_file="${tmake_file} rs6000/t-ldbl128"
-       ;;
-powerpc-*-gnu*)
-       tmake_file="${tmake_file} rs6000/t-ldbl128"
+       md_unwind_header=rs6000/linux-unwind.h
        ;;
 powerpc-wrs-vxworks|powerpc-wrs-vxworksae)
        ;;
@@ -489,30 +560,38 @@ powerpcle-*-eabisim*)
        ;;
 powerpcle-*-eabi*)
        ;;
-rs6000-ibm-aix4.[12]* | powerpc-ibm-aix4.[12]*)
-       ;;
 rs6000-ibm-aix4.[3456789]* | powerpc-ibm-aix4.[3456789]*)
        ;;
 rs6000-ibm-aix5.1.* | powerpc-ibm-aix5.1.*)
        ;;
 rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
        ;;
+rx-*-elf)
+       extra_parts="crtbegin.o crtend.o"
+       tmake_file="rx/t-rx"
+       ;;
 s390-*-linux*)
+       tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/32/t-floattodi"
+       md_unwind_header=s390/linux-unwind.h
        ;;
 s390x-*-linux*)
+       tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux"
+       md_unwind_header=s390/linux-unwind.h
        ;;
 s390x-ibm-tpf*)
+       tmake_file="${tmake_file} s390/t-crtstuff s390/t-tpf"
+       md_unwind_header=s390/tpf-unwind.h
        ;;
 score-*-elf)
         ;;
 sh-*-elf* | sh[12346l]*-*-elf* | \
-sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
   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"
+               md_unwind_header=sh/linux-unwind.h
                ;;
        esac
        ;;
@@ -520,25 +599,38 @@ sh-*-rtems*)
        ;;
 sh-wrs-vxworks)
        ;;
-sh-*-*)
-       ;;
 sparc-*-netbsdelf*)
        ;;
 sparc64-*-openbsd*)
        ;;
 sparc-*-elf*)
+       case ${host} in
+       *-leon[3-9]*)
+               ;;
+       *)
+               tmake_file="sparc/t-softmul"
+               ;;
+       esac
+       tmake_file="${tmake_file} sparc/t-softfp t-crtin t-crtfm"
+       extra_parts="crtbegin.o crtend.o crti.o crtn.o crtfastmath.o"
        ;;
 sparc-*-linux*)                # SPARC's running GNU/Linux, libc6
        extra_parts="$extra_parts crtfastmath.o"
-       tmake_file="${tmake_file} sparc/t-crtfm"
+       tmake_file="${tmake_file} t-crtfm"
+       md_unwind_header=sparc/linux-unwind.h
        ;;
-sparc-*-rtems*)
+sparc-*-rtems* | 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"
        ;;
-sparc64-*-solaris2* | sparcv9-*-solaris2*)
-       ;;
-sparc-*-solaris2*)
+sparc*-*-solaris2*)
+       tmake_file="$tmake_file t-crtfm"
+       extra_parts="$extra_parts crtfastmath.o"
+       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"
        ;;
 sparc-wrs-vxworks)
        ;;
@@ -546,7 +638,8 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*)
        ;;
 sparc64-*-linux*)              # 64-bit SPARC's running GNU/Linux
        extra_parts="$extra_parts crtfastmath.o"
-       tmake_file="${tmake_file} sparc/t-crtfm"
+       tmake_file="${tmake_file} t-crtfm"
+       md_unwind_header=sparc/linux-unwind.h
        ;;
 sparc64-*-netbsd*)
        ;;
@@ -558,9 +651,9 @@ v850e-*-*)
        ;;
 v850-*-*)
        ;;
-vax-*-netbsdelf*)
+vax-*-linux*)
        ;;
-vax-*-netbsd*)
+vax-*-netbsdelf*)
        ;;
 vax-*-openbsd*)
        ;;
@@ -569,12 +662,15 @@ xstormy16-*-elf)
 xtensa*-*-elf*)
        ;;
 xtensa*-*-linux*)
+       md_unwind_header=xtensa/linux-unwind.h
        ;;
 am33_2.0-*-linux*)
        extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o"
        ;;
 m32c-*-elf*|m32c-*-rtems*)
        ;;
+mep*-*-*)
+       ;;
 *)
        echo "*** Configuration ${host} not supported" 1>&2
        exit 1
@@ -586,12 +682,20 @@ i[34567]86-*-linux* | x86_64-*-linux* | \
   i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | \
   i[34567]86-*-gnu*)
        tmake_file="${tmake_file} t-tls"
+       if test "$libgcc_cv_cfi" = "yes"; then
+               tmake_file="${tmake_file} t-stack i386/t-stack-i386"
+       fi
        ;;
 esac
 
 case ${host} in
 i[34567]86-*-darwin* | x86_64-*-darwin* | \
-  i[34567]86-*-linux* | x86_64-*-linux*)
+  i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
+  i[34567]86-*-linux* | x86_64-*-linux* | \
+  i[34567]86-*-gnu* | \
+  i[34567]86-*-solaris2* | \
+  i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw* | \
+  i[34567]86-*-freebsd* | x86_64-*-freebsd*)
        if test "${host_address}" = 32; then
                tmake_file="${tmake_file} t-softfp i386/${host_address}/t-fprules-softfp"
        fi