re PR target/24837 (move dynamic linker names out of LINK_SPEC and into new DYNAMIC_L...
[gcc.git] / gcc / config.gcc
index 9acca827cc8fa52aa7f030485a775eba86e30eba..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"
@@ -846,10 +855,11 @@ hppa*-*-linux* | parisc*-*-linux*)
        tm_file="${tm_file} dbxelf.h elfos.h svr4.h linux.h pa/pa-linux.h \
                 pa/pa32-regs.h pa/pa32-linux.h"
        tmake_file="${tmake_file} pa/t-linux"
-       # if not configured with --enable-sjlj-exceptions, bump the
-       # libgcc version number
-       if test x$sjlj != x1; then
-           tmake_file="$tmake_file pa/t-slibgcc-elf-ver"
+       # Set the libgcc version number
+       if test x$sjlj = x1; then
+           tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
+       else
+           tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
        fi
        ;;
 # port not yet contributed.
@@ -889,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
@@ -900,6 +910,12 @@ hppa[12]*-*-hpux10*)
            tmake_file="${tmake_file} pa/t-dce-thr"
            ;;
        esac
+       # Set the libgcc version number
+       if test x$sjlj = x1; then
+           tmake_file="$tmake_file pa/t-slibgcc-sjlj-ver"
+       else
+           tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
+       fi
        use_collect2=yes
        use_fixproto=yes
        ;;
@@ -932,6 +948,12 @@ hppa*64*-*-hpux11*)
                       pa/pa-hpux1010.opt pa/pa64-hpux.opt"
        need_64bit_hwint=yes
        tmake_file="pa/t-pa64 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"
+       else
+           tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
+       fi
        extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtbeginT.o"
        case x${enable_threads} in
        xyes | xposix )
@@ -954,7 +976,13 @@ 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"
+       else
+           tmake_file="$tmake_file pa/t-slibgcc-dwarf-ver"
+       fi
        case x${enable_threads} in
        xyes | xposix )
                thread_file=posix 
@@ -975,7 +1003,6 @@ i[34567]86-sequent-ptx4* | i[34567]86-sequent-sysv4*)
        then
                tm_file="${tm_file} usegas.h"
        fi
-       xm_defines="SMALL_ARG_MAX"
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h ptx4.h i386/ptx4-i.h"
        tmake_file=t-svr4
        extra_parts="crtbegin.o crtend.o"
@@ -1106,7 +1133,6 @@ i[34567]86-*-sco3.2v5*)   # 80386 running SCO Open Server 5
        use_fixproto=yes
        ;;
 i[34567]86-*-solaris2*)
-       xm_defines="SMALL_ARG_MAX"
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h sol2.h"
        case ${target} in
        *-*-solaris2.[0-6] | *-*-solaris2.[0-6].*)
@@ -1173,7 +1199,6 @@ i[34567]86-*-sysv5*)           # Intel x86 on System V Release 5
        use_fixproto=yes
        ;;
 i[34567]86-*-sysv4*)           # Intel 80386's running system V.4
-       xm_defines="SMALL_ARG_MAX"
        tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h i386/sysv4.h i386/sysv4-cpp.h"
        if test x$stabs = xyes
        then
@@ -1202,9 +1227,9 @@ i[34567]86-*-pe | i[34567]86-*-cygwin*)
        tmake_file="i386/t-cygwin i386/t-cygming"
        target_gtfiles="\$(srcdir)/config/i386/winnt.c"
        extra_options="${extra_options} i386/cygming.opt"
-       extra_objs=winnt.o
+       extra_objs="winnt.o winnt-stubs.o"
        c_target_objs=cygwin2.o
-       cxx_target_objs=cygwin2.o
+       cxx_target_objs="cygwin2.o winnt-cxx.o"
        extra_gcc_objs=cygwin1.o
        if test x$enable_threads = xyes; then
                thread_file='posix'
@@ -1216,7 +1241,8 @@ i[34567]86-*-mingw32*)
        tmake_file="i386/t-cygming i386/t-mingw32"
        target_gtfiles="\$(srcdir)/config/i386/winnt.c"
        extra_options="${extra_options} i386/cygming.opt"
-       extra_objs=winnt.o
+       extra_objs="winnt.o winnt-stubs.o"
+       cxx_target_objs=winnt-cxx.o
        case ${enable_threads} in
          "" | yes | win32) thread_file='win32' ;;
        esac
@@ -1372,7 +1398,6 @@ m68020-*-elf* | m68k-*-elf*)
        tm_defines="MOTOROLA USE_GAS"
        tmake_file=m68k/t-m68kelf
        extra_parts="crtbegin.o crtend.o"
-       use_fixproto=yes
        ;;
 m68010-*-netbsdelf* | m68k*-*-netbsdelf*)
        tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h m68k/netbsd-elf.h"
@@ -1576,9 +1601,9 @@ mn10300-*-*)
        use_collect2=no
        use_fixproto=yes
        ;;
-ms1-*-elf)
+mt-*-elf)
         tm_file="dbxelf.h elfos.h svr4.h ${tm_file}"
-        tmake_file="${tmake_file} ms1/t-ms1"
+        tmake_file="${tmake_file} mt/t-mt"
         ;;
 ns32k-*-netbsdelf*)
        echo "GCC does not yet support the ${target} target"; exit 1
@@ -1844,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"
@@ -1852,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"
@@ -2039,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"
@@ -2158,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}"
@@ -2350,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
       ;;
@@ -2401,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
@@ -2613,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
                                ;;
                        *)
@@ -2663,6 +2712,25 @@ case "${target}" in
                esac
                ;;
 
+       mt-*-*)
+               supported_defaults="arch"
+
+               case "$with_arch" in
+               "" \
+               | ms1-64-001 \
+               | ms1-16-002 \
+               | ms1-16-003 \
+               | ms2 \
+               | "")
+                       # OK
+                       ;;
+               *)
+                       echo "Unknown arch used in --with-arch=$with_arch" 1>&2
+                       exit 1
+                       ;;
+               esac
+               ;;
+
        powerpc*-*-* | rs6000-*-*)
                supported_defaults="cpu float tune"
 
@@ -2879,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
@@ -2917,6 +2990,7 @@ do
                        ;;
                *)
                        echo "This target does not support --with-$option." 2>&1
+                       echo "Valid --with options are: $supported_defaults" 2>&1
                        exit 1
                        ;;
                esac