re PR target/24837 (move dynamic linker names out of LINK_SPEC and into new DYNAMIC_L...
[gcc.git] / gcc / config.gcc
index 6e29abb998b749b5408be0abc34b071347bc110f..70f9bae2e7c1efb891147d4cc26fd7f2fcc3b12c 100644 (file)
@@ -1,5 +1,5 @@
 # GCC target-specific configuration file.
-# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
 # Free Software Foundation, Inc.
 
 #This file is part of GCC.
@@ -446,12 +446,21 @@ case ${target} in
 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu)
   # Must come before *-*-gnu* (because of *-*-linux-gnu* systems).
   extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"
+  extra_options="${extra_options} linux.opt"
   gas=yes
   gnu_ld=yes
   case ${enable_threads} in
     "" | yes | posix) thread_file='posix' ;;
   esac
   tmake_file="t-slibgcc-elf-ver t-linux"
+  case ${target} in
+    *-*-*uclibc*)
+      tm_defines="${tm_defines} UCLIBC_DEFAULT=1"
+      ;;
+    *)
+      tm_defines="${tm_defines} UCLIBC_DEFAULT=0"
+      ;;
+  esac
   ;;
 *-*-gnu*)
   # On the Hurd, the setup is just about the same on
@@ -568,7 +577,7 @@ alpha*-*-unicosmk*)
 alpha*-*-linux*)
        tm_file="${tm_file} alpha/elf.h alpha/linux.h alpha/linux-elf.h"
        target_cpu_default="MASK_GAS"
-       tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee"
+       tmake_file="${tmake_file} alpha/t-crtfm alpha/t-alpha alpha/t-ieee alpha/t-linux"
        ;;
 alpha*-*-gnu*)
        target_cpu_default="MASK_GAS"
@@ -674,7 +683,7 @@ arm*-*-linux*)                      # ARM GNU/Linux with ELF
        tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" 
        tmake_file="${tmake_file} t-linux arm/t-arm"
        case ${target} in
-       arm*-*-linux-gnueabi)
+       arm*-*-linux-*eabi)
            tm_file="$tm_file arm/bpabi.h arm/linux-eabi.h"
            tmake_file="$tmake_file arm/t-arm-elf arm/t-bpabi arm/t-linux-eabi"
            # The BPABI long long divmod functions return a 128-bit value in 
@@ -714,7 +723,7 @@ arm*-*-eabi* | arm*-*-symbianelf* )
          tm_file="${tm_file} arm/symbian.h"
          # We do not include t-bpabi for Symbian OS because the system
          # provides its own implementation of the BPABI functions.
-         tmake_file="${tmake_file} t-slibgcc-elf-ver arm/t-symbian"
+         tmake_file="${tmake_file} arm/t-symbian"
          ;;
        esac
        tm_file="${tm_file} arm/aout.h arm/arm.h"
@@ -890,7 +899,7 @@ hppa[12]*-*-hpux10*)
                extra_options="${extra_options} pa/pa-hpux1010.opt"
                ;;
        esac
-       tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib"
+       tmake_file="pa/t-pa-hpux10 pa/t-pa-hpux pa/t-hpux-shlib"
        case ${enable_threads} in
          "")
            if test x$have_pthread_h = xyes ; then
@@ -967,7 +976,7 @@ hppa[12]*-*-hpux11*)
                extra_options="${extra_options} pa/pa-hpux1111.opt"
                ;;
        esac
-       tmake_file="pa/t-pa pa/t-pa-hpux pa/t-hpux-shlib"
+       tmake_file="pa/t-pa-hpux11 pa/t-pa-hpux pa/t-hpux-shlib"
        # Set the libgcc version number
        if test x$sjlj = x1; then
            tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
@@ -1860,7 +1869,7 @@ rs6000-ibm-aix[56789].* | powerpc-ibm-aix[56789].*)
        ;;
 s390-*-linux*)
        tm_file="s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h"
-       tmake_file="${tmake_file} s390/t-crtstuff"
+       tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux"
        ;;
 s390x-*-linux*)
        tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h linux.h s390/linux.h"
@@ -1868,7 +1877,7 @@ s390x-*-linux*)
        md_file=s390/s390.md
        extra_modes=s390/s390-modes.def
        out_file=s390/s390.c
-       tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux64"
+       tmake_file="${tmake_file} s390/t-crtstuff s390/t-linux s390/t-linux64"
        ;;
 s390x-ibm-tpf*)
         tm_file="s390/s390x.h s390/s390.h dbxelf.h elfos.h svr4.h s390/tpf.h"
@@ -2055,7 +2064,7 @@ sparc-*-elf*)
 sparc-*-linux*)                # SPARC's running GNU/Linux, libc6
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/linux.h"
        extra_options="${extra_options} sparc/long-double-switch.opt"
-       tmake_file="${tmake_file} sparc/t-crtfm"
+       tmake_file="${tmake_file} sparc/t-linux sparc/t-crtfm"
        ;;
 sparc-*-rtems*)
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h sparc/sysv4.h sparc/sp-elf.h sparc/rtemself.h rtems.h"
@@ -2174,7 +2183,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*)
 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/linux64.h"
        extra_options="${extra_options} sparc/long-double-switch.opt"
-       tmake_file="${tmake_file} sparc/t-linux64 sparc/t-crtfm"
+       tmake_file="${tmake_file} sparc/t-linux sparc/t-linux64 sparc/t-crtfm"
        ;;
 sparc64-*-netbsd*)
        tm_file="sparc/biarch64.h ${tm_file}"
@@ -2366,6 +2375,9 @@ if test x$with_cpu = x ; then
       # A Cirrus ARM variant.
       with_cpu="ep9312"
       ;;
+    i386-*-*)
+      with_cpu=i386
+      ;;
     i486-*-*)
       with_cpu=i486
       ;;
@@ -2417,13 +2429,26 @@ if test x$with_cpu = x ; then
         pentium_m-*)
           with_cpu=pentium-m
           ;;
-        *)
+        pentiumpro-*)
           with_cpu=pentiumpro
           ;;
+        *)
+          with_cpu=generic
+          ;;
       esac
       ;;
     x86_64-*-*)
-      with_cpu=k8
+      case ${target_noncanonical} in
+        k8-*|opteron-*|athlon_64-*)
+          with_cpu=k8
+          ;;
+        nocona-*)
+          with_cpu=nocona
+          ;;
+        *)
+          with_cpu=generic
+          ;;
+      esac
       ;;
     alphaev6[78]*-*-*)
       with_cpu=ev67
@@ -2629,13 +2654,21 @@ case "${target}" in
                for which in arch cpu tune; do
                        eval "val=\$with_$which"
                        case ${val} in
-                       "" | i386 | i486 \
+                       i386 | i486 \
                        | i586 | pentium | pentium-mmx | winchip-c6 | winchip2 \
                        | c3 | c3-2 | i686 | pentiumpro | pentium2 | pentium3 \
                        | pentium4 | k6 | k6-2 | k6-3 | athlon | athlon-tbird \
-                       | athlon-4 | athlon-xp | athlon-mp | k8 | opteron \
-                       | athlon64 | athlon-fx | prescott | pentium-m \
-                       | pentium4m | pentium3m| nocona)
+                       | athlon-4 | athlon-xp | athlon-mp \
+                       | prescott | pentium-m | pentium4m | pentium3m)
+                               case "${target}" in
+                                 x86_64-*-*)
+                                     echo "CPU given in --with-$which=$val doesn't support 64bit mode." 1>&2
+                                     exit 1
+                                     ;;
+                               esac
+                               # OK
+                               ;;
+                       "" | k8 | opteron | athlon64 | athlon-fx | nocona | generic)
                                # OK
                                ;;
                        *)
@@ -2914,6 +2947,11 @@ case ${target} in
                 fi
                ;;
 
+       sh[123456ble]*-*-* | sh-*-*)
+               c_target_objs="${c_target_objs} sh-c.o"
+               cxx_target_objs="${cxx_target_objs} sh-c.o"
+               ;;
+
        sparc*-*-*)
                # Some standard aliases.
                case x$with_cpu in