OSDN Git Service

gcc:
[pf3gnuchains/gcc-fork.git] / gcc / config.gcc
index d2d4ad7..6b5a339 100644 (file)
@@ -199,27 +199,25 @@ gnu_ld="$gnu_ld_flag"
 default_use_cxa_atexit=no
 target_gtfiles=
 need_64bit_hwint=
+need_64bit_isa=
+# Selects the object file format reader/writer used by LTO.
+lto_binary_reader=lto-elf
 
 # Don't carry these over build->host->target.  Please.
 xm_file=
 md_file=
 
 # Obsolete configurations.
-case ${target} in
-   alpha*-dec-osf4*                    \
- | alpha*-dec-osf5.0*                  \
- | mips-sgi-irix5*                     \
- | mips-sgi-irix6.[0-4]*               \
- | *-*-solaris2.7*                     \
- )
-    if test "x$enable_obsolete" != xyes; then
-      echo "*** Configuration ${target} is obsolete." >&2
-      echo "*** Specify --enable-obsolete to build it anyway." >&2
-      echo "*** Support will be REMOVED in the next major release of GCC," >&2
-      echo "*** unless a maintainer comes forward." >&2
-      exit 1
-    fi;;
-esac
+#case ${target} in
+# )
+#    if test "x$enable_obsolete" != xyes; then
+#      echo "*** Configuration ${target} is obsolete." >&2
+#      echo "*** Specify --enable-obsolete to build it anyway." >&2
+#      echo "*** Support will be REMOVED in the next major release of GCC," >&2
+#      echo "*** unless a maintainer comes forward." >&2
+#      exit 1
+#    fi;;
+#esac
 
 # Unsupported targets list.  Do not put an entry in this list unless
 # it would otherwise be caught by a more permissive pattern.  The list
@@ -237,8 +235,8 @@ case ${target} in
  | *-*-linux*oldld*                    \
  | *-*-rtemsaout*                      \
  | *-*-rtemscoff*                      \
- | *-*-solaris2.[0-6]                  \
- | *-*-solaris2.[0-6].*                        \
+ | *-*-solaris2.[0-7]                  \
+ | *-*-solaris2.[0-7].*                        \
  | *-*-sysv*           \
  | vax-*-vms*                          \
  )
@@ -650,7 +648,7 @@ alpha*-*-openbsd*)
        target_cpu_default="MASK_GAS"
        tmake_file="${tmake_file} alpha/t-alpha alpha/t-ieee"
        ;;
-alpha*-dec-osf[45]*)
+alpha*-dec-osf5.1*)
        if test x$stabs = xyes
        then
                tm_file="${tm_file} dbx.h"
@@ -660,23 +658,11 @@ alpha*-dec-osf[45]*)
                extra_passes="mips-tfile mips-tdump"
        fi
        use_collect2=yes
-       tmake_file="alpha/t-alpha alpha/t-ieee alpha/t-crtfm alpha/t-osf4"
-       tm_file="${tm_file} alpha/osf.h"
+       tmake_file="alpha/t-alpha alpha/t-ieee alpha/t-crtfm alpha/t-osf5"
+       tm_file="${tm_file} alpha/osf5.h"
+       tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1"
        extra_headers=va_list.h
        use_gcc_stdint=provide
-       case ${target} in
-         *-*-osf4*)
-           # Define TARGET_SUPPORT_ARCH except on 4.0a.
-           case ${target} in
-               *-*-osf4.0a) ;;
-               *) tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1"
-           esac
-           ;;
-         *-*-osf5*)
-           tm_file="${tm_file} alpha/osf5.h"
-           tm_defines="${tm_defines} TARGET_SUPPORT_ARCH=1"
-           ;;
-       esac
        case ${enable_threads} in
          "" | yes | posix)
            thread_file='posix'
@@ -1083,6 +1069,7 @@ hppa[12]*-*-hpux11*)
        ;;
 i[34567]86-*-darwin*)
        need_64bit_hwint=yes
+       need_64bit_isa=yes
 
        # This is so that '.../configure && make' doesn't fail due to
        # config.guess deciding that the configuration is i386-*-darwin* and
@@ -1148,6 +1135,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-knetbsd*-gnu | i
                        tm_defines="${tm_defines} TARGET_BI_ARCH=1"
                        tmake_file="${tmake_file} i386/t-linux64"
                        need_64bit_hwint=yes
+                       need_64bit_isa=yes
                        case X"${with_cpu}" in
                        Xgeneric|Xatom|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
                                ;;
@@ -1233,12 +1221,19 @@ i[34567]86-*-rtems*)
        ;;
 i[34567]86-*-solaris2*)
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h"
+       # Set default arch_32 to pentium4, tune_32 to generic like the other
+       # i386 targets, although config.guess defaults to i386-pc-solaris2*.
+       with_arch_32=${with_arch_32:-pentium4}
+       with_tune_32=${with_tune_32:-generic}
        case ${target} in
        *-*-solaris2.1[0-9]*)
                tm_file="${tm_file} sol2-10.h"
                ;;
        esac
        tm_file="${tm_file} i386/sol2.h"
+       if test x$gnu_ld = xyes; then
+               tm_file="${tm_file} sol2-gld.h"
+       fi
        if test x$gas = xyes; then
                tm_file="${tm_file} i386/sol2-gas.h"
        fi
@@ -1266,6 +1261,7 @@ i[34567]86-*-solaris2*)
                # depends on a runtime test and is thus performed in
                # libgcc/configure.ac instead.
                need_64bit_hwint=yes
+               need_64bit_isa=yes
                use_gcc_stdint=wrap
                case X"${with_cpu}" in
                Xgeneric|Xatom|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx|Xathlon64-sse3|Xk8-sse3|Xopteron-sse3)
@@ -1328,6 +1324,7 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*)
                thread_file='posix'
        fi
        use_gcc_stdint=wrap
+       lto_binary_reader=lto-coff
        ;;
 i[34567]86-*-mingw* | x86_64-*-mingw*)
        tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h dbxcoff.h i386/cygming.h i386/mingw32.h"
@@ -1335,6 +1332,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
        case ${target} in
                x86_64-*-* | *-w64-*)
                        need_64bit_hwint=yes
+                       need_64bit_isa=yes
                        ;;
                *)
                        ;;
@@ -1394,6 +1392,7 @@ i[34567]86-*-mingw* | x86_64-*-mingw*)
        cxx_target_objs="${cxx_target_objs} winnt-cxx.o msformat-c.o"
        default_use_cxa_atexit=yes
        use_gcc_stdint=wrap
+       lto_binary_reader=lto-coff
        case ${enable_threads} in
          "" | yes | win32)       thread_file='win32'
          tmake_file="${tmake_file} i386/t-gthr-win32"
@@ -1493,11 +1492,16 @@ iq2000*-*-elf*)
         ;;
 lm32-*-elf*)
         tm_file="dbxelf.h elfos.h ${tm_file}"
-       tmake_file="${tmake_file} lm32/t-fprules-softfp soft-fp/t-softfp"
+       tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp"
         ;;
+lm32-*-rtems*)
+       tm_file="dbxelf.h elfos.h ${tm_file} lm32/rtems.h rtems.h"
+       tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp"
+       tmake_file="${tmake_file} t-rtems"
+         ;;
 lm32-*-uclinux*)
         tm_file="dbxelf.h elfos.h ${tm_file} linux.h lm32/uclinux-elf.h"
-       tmake_file="${tmake_file} lm32/t-fprules-softfp soft-fp/t-softfp"
+       tmake_file="${tmake_file} lm32/t-lm32 lm32/t-fprules-softfp soft-fp/t-softfp"
         ;;
 m32r-*-elf*)
        tm_file="dbxelf.h elfos.h svr4.h newlib-stdint.h ${tm_file}"
@@ -1662,32 +1666,13 @@ mep-*-*)
        fi
        use_gcc_stdint=wrap
        ;;
-mips-sgi-irix[56]*)
-       tm_file="elfos.h ${tm_file} mips/iris.h"
-       tmake_file="mips/t-iris mips/t-slibgcc-irix"
+mips-sgi-irix6.5*)
+       tm_file="elfos.h ${tm_file} mips/iris6.h"
+       tmake_file="mips/t-iris mips/t-iris6 mips/t-slibgcc-irix"
        target_cpu_default="MASK_ABICALLS"
-       case ${target} in
-       *-*-irix5*)
-               tm_file="${tm_file} mips/iris5.h"
-               use_gcc_stdint=provide
-               ;;
-
-       *-*-irix6*)
-               tm_file="${tm_file} mips/iris6.h"
-               tmake_file="${tmake_file} mips/t-iris6"
-               tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
-               case ${target} in
-               *-*-irix6.[0-4]*)
-                       use_gcc_stdint=provide
-                       ;;
-               *-*-irix6.5*)
-                       # Only IRIX Development Foundation 1.3 for IRIX 6.5
-                       # provides stdint.h.
-                       use_gcc_stdint=wrap
-                       ;;
-               esac
-               ;;
-       esac
+       tm_defines="${tm_defines} MIPS_ISA_DEFAULT=3 MIPS_ABI_DEFAULT=ABI_N32"
+       # Only IRIX Development Foundation 1.3 for IRIX 6.5 provides stdint.h.
+       use_gcc_stdint=wrap
        if test "x$stabs" = xyes
        then
                tm_file="${tm_file} dbx.h mips/dbxmdebug.h"
@@ -2357,7 +2342,7 @@ sparc-*-elf*)
        extra_parts="crti.o crtn.o crtbegin.o crtend.o"
        ;;
 sparc-*-linux*)                # SPARC's running GNU/Linux, libc6
-       tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/gas.h linux.h glibc-stdint.h"
+       tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h glibc-stdint.h"
        extra_options="${extra_options} sparc/long-double-switch.opt"
        tmake_file="${tmake_file} sparc/t-linux"
        if test x$enable_targets = xall; then
@@ -2373,75 +2358,43 @@ sparc-*-rtems*)
        tmake_file="sparc/t-elf sparc/t-crtfm t-rtems"
        extra_parts="crti.o crtn.o crtbegin.o crtend.o"
        ;;
-sparc64-*-solaris2* | sparcv9-*-solaris2*)
+sparc*-*-solaris2*)
        tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h"
        case ${target} in
-       *-*-solaris2.1[0-9]*)
+           *-*-solaris2.1[0-9]*)
                tm_file="${tm_file} sol2-10.h"
                use_gcc_stdint=wrap
                ;;
-       *)
+           *)
                use_gcc_stdint=provide
                ;;
        esac
-       tm_file="${tm_file} sparc/sol2.h sparc/sol2-64.h sparc/sol2-bi.h"
-       if test x$gnu_ld = xyes; then
-               tm_file="${tm_file} sparc/sol2-gld.h sparc/sol2-gld-bi.h"
-       fi
-       if test x$gas = xyes; then
-               tm_file="${tm_file} sparc/sol2-gas.h sparc/sol2-gas-bi.h"
-       fi
-       tm_file="${tm_file} tm-dwarf2.h"
-       tmake_file="t-sol2 sparc/t-sol2 sparc/t-sol2-64 sparc/t-crtfm"
-       if test x$gnu_ld = xyes; then
-               tmake_file="$tmake_file t-slibgcc-elf-ver"
-       else
-               tmake_file="$tmake_file t-slibgcc-sld"
-       fi
-       c_target_objs="sol2-c.o"
-       cxx_target_objs="sol2-c.o"
-       extra_objs="sol2.o"
-       tm_p_file="${tm_p_file} sol2-protos.h"
-       extra_parts="crt1.o crti.o crtn.o gcrt1.o crtbegin.o crtend.o"
-       case ${enable_threads}:${have_pthread_h}:${have_thread_h} in
-         "":yes:* | yes:yes:* ) thread_file=posix ;;
-         "":*:yes | yes:*:yes ) thread_file=solaris ;;
-       esac
-       ;;
-sparc-*-solaris2*)
-       tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sol2.h"
+       tm_file="${tm_file} sparc/sol2.h"
        case ${target} in
-       *-*-solaris2.1[0-9]*)
-               tm_file="${tm_file} sol2-10.h"
-               use_gcc_stdint=wrap
+           sparc64-*-* | sparcv9-*-*)
+               tm_file="${tm_file} sparc/sol2-64.h"
                ;;
-       *)
-               use_gcc_stdint=provide
+           *)
+               test x$with_cpu != x || with_cpu=v9
                ;;
        esac
-       tm_file="${tm_file} sparc/sol2.h"
-       if test x$gnu_ld = xyes; then
-               tm_file="${tm_file} sparc/sol2-gld.h"
-       fi
+       tm_file="${tm_file} sparc/sol2-bi.h"
        if test x$gas = xyes; then
-               tm_file="${tm_file} sparc/sol2-gas.h"
+               tm_file="${tm_file} sparc/sol2-gas.h sparc/sol2-gas-bi.h"
        fi
-       tmake_file="t-sol2 sparc/t-sol2 sparc/t-crtfm"
+       if test x$gnu_ld = xyes; then
+               tm_file="${tm_file} sol2-gld.h sparc/sol2-gld-bi.h"
+       fi
+       tm_file="${tm_file} tm-dwarf2.h"
+       tmake_file="t-sol2 sparc/t-sol2 sparc/t-sol2-64 sparc/t-crtfm"
        if test x$gnu_ld = xyes; then
                tmake_file="$tmake_file t-slibgcc-elf-ver"
        else
                tmake_file="$tmake_file t-slibgcc-sld"
        fi
-       tm_file="sparc/biarch64.h ${tm_file} sparc/sol2-bi.h"
-       if test x$gnu_ld = xyes; then
-               tm_file="${tm_file} sparc/sol2-gld-bi.h"
-       fi
        if test x$gas = xyes; then
-               tm_file="${tm_file} sparc/sol2-gas-bi.h"
+               tm_file="usegas.h ${tm_file}"
        fi
-       tm_file="${tm_file} tm-dwarf2.h"
-       tmake_file="$tmake_file sparc/t-sol2-64"
-       test x$with_cpu != x || with_cpu=v9
        c_target_objs="sol2-c.o"
        cxx_target_objs="sol2-c.o"
        extra_objs="sol2.o"
@@ -2477,7 +2430,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*)
        esac
        ;;
 sparc64-*-linux*)              # 64-bit SPARC's running GNU/Linux
-       tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/gas.h linux.h glibc-stdint.h sparc/linux64.h"
+       tm_file="sparc/biarch64.h ${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h linux.h glibc-stdint.h sparc/linux64.h"
        extra_options="${extra_options} sparc/long-double-switch.opt"
        tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
        ;;
@@ -2625,16 +2578,24 @@ esac
 # to generic if there is no processor scheduler model for the target.
 arch=
 cpu=
+arch_without_sse2=no
+arch_without_64bit=no
 case ${target} in
   i386-*-*)
     arch=i386
     cpu=i386
+    arch_without_sse2=yes
+    arch_without_64bit=yes
     ;;
   i486-*-*)
     arch=i486
     cpu=i486
+    arch_without_sse2=yes
+    arch_without_64bit=yes
     ;;
   i586-*-*)
+    arch_without_sse2=yes
+    arch_without_64bit=yes
     case ${target_noncanonical} in
       k6_2-*)
        arch=k6-2
@@ -2675,22 +2636,28 @@ case ${target} in
       athlon_xp-*|athlon_mp-*|athlon_4-*)
        arch=athlon-4
        cpu=athlon-4
+       arch_without_sse2=yes
+       arch_without_64bit=yes
        ;;
       athlon_tbird-*|athlon-*)
        arch=athlon
        cpu=athlon
+       arch_without_sse2=yes
        ;;
       geode-*)
        arch=geode
        cpu=geode
+       arch_without_sse2=yes
        ;;
       pentium2-*)
        arch=pentium2
        cpu=pentium2
+       arch_without_sse2=yes
        ;;
       pentium3-*|pentium3m-*)
        arch=pentium3
        cpu=pentium3
+       arch_without_sse2=yes
        ;;
       pentium4-*|pentium4m-*)
        arch=pentium4
@@ -2719,10 +2686,13 @@ case ${target} in
       pentiumpro-*)
        arch=pentiumpro
        cpu=pentiumpro
+       arch_without_sse2=yes
        ;;
       *)
        arch=pentiumpro
        cpu=generic
+       arch_without_sse2=yes
+       arch_without_64bit=yes
        ;;
     esac
     ;;
@@ -2835,27 +2805,77 @@ esac
 # This block sets nothing except for with_arch.
 if test x$with_arch = x ; then
   case ${target} in
-    i[34567]86-*-*|x86_64-*-*)
+    i[34567]86-*-darwin*|x86_64-*-darwin*)
+      # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
+      # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
+      ;;
+    i[34567]86-*-*)
+      # --with-fpmath sets the default ISA to SSE2, which is the same
+      # ISA supported by Pentium 4.
+      if test x$with_fpmath = x || test $arch_without_sse2 = no; then
+       with_arch=$arch
+      else
+       with_arch=pentium4
+      fi
+      ;;
+    x86_64-*-*)
       with_arch=$arch
       ;;
   esac
 
   # Avoid overriding --with-arch-32 and --with-arch-64 values.
   case ${target} in
+    i[34567]86-*-darwin*|x86_64-*-darwin*)
+      # Default arch is set via TARGET_SUBTARGET32_ISA_DEFAULT
+      # and TARGET_SUBTARGET64_ISA_DEFAULT in config/i386/darwin.h.
+      ;;
     i[34567]86-*-*|x86_64-*-*)
       if test x$with_arch_32 != x || test x$with_arch_64 != x; then
        if test x$with_arch_32 = x; then
-         with_arch_32=$arch
+         with_arch_32=$with_arch
        fi
        if test x$with_arch_64 = x; then
-         with_arch_64=$arch
+         if test $arch_without_64bit = yes; then
+           # Set the default 64bit arch to x86-64 if the default arch
+           # doesn't support 64bit.
+           with_arch_64=x86-64
+         else
+           with_arch_64=$with_arch
+         fi
        fi
        with_arch=
+      elif test $arch_without_64bit$need_64bit_isa = yesyes; then
+       # Set the default 64bit arch to x86-64 if the default arch
+       # doesn't support 64bit and we need 64bit ISA.
+       with_arch_32=$with_arch
+       with_arch_64=x86-64
+       with_arch=
       fi
       ;;
   esac
 fi
 
+# Support --with-fpmath.
+if test x$with_fpmath != x; then
+  case ${target} in
+    i[34567]86-*-* | x86_64-*-*)
+      case ${with_fpmath} in
+      sse)
+       tm_file="${tm_file} i386/ssemath.h"
+       ;;
+      *)
+       echo "Invalid --with-fpmath=$with_fpmath" 1>&2
+       exit 1
+       ;;
+      esac
+      ;;
+    *)
+      echo "--with-fpmath isn't supported for $target." 1>&2
+      exit 1
+      ;;
+  esac
+fi
+
 # Similarly for --with-schedule.
 if test x$with_schedule = x; then
        case ${target} in
@@ -3359,9 +3379,14 @@ case ${target} in
        i[34567]86-*-darwin* | x86_64-*-darwin*)
                tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
                ;;
-       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-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
+         i[34567]86-*-gnu*)
                tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux"
                ;;
+       i[34567]86-*-solaris2*)
+               tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
+               ;;
        i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
                tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
                ;;