OSDN Git Service

* config/rs6000/x-rs6000: New file.
[pf3gnuchains/gcc-fork.git] / gcc / config.host
index 9c7b85a..93d97f1 100644 (file)
@@ -1,12 +1,12 @@
 # GCC host-specific configuration file.
-# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003
+# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2007
 # 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, 59 Temple Place - Suite 330, Boston, MA
-#02111-1307, USA.
+#along with GCC; see the file COPYING3.  If not see
+#<http://www.gnu.org/licenses/>.
 
 # This is the GCC host-specific configuration file
 # where a configuration type is mapped to different system-specific
 #                       be linked into the gcc driver.
 #
 #  out_host_hook_obj    An object file that provides the host hooks.
+#
+#  host_can_use_collect2 Set to yes normally; to no if the host cannot
+#                      link or otherwise use collect2
+#  use_long_long_for_widest_fast_int Set this to 'yes' if 'long long'
+#                      (or '__int64') is wider than 'long' but still
+#                      efficeiently supported by the host hardware.
+#                      Only affects compile speed.  Default is 'no'.
 
 # When setting any of these variables, check to see if a corresponding
 # variable is present in config.build; if so, you will likely want to 
@@ -62,549 +68,158 @@ host_exeext=
 host_extra_objs=
 host_extra_gcc_objs=
 out_host_hook_obj=host-default.o
+host_can_use_collect2=yes
+use_long_long_for_widest_fast_int=no
 
-# Obsolete configurations.
+# Unsupported hosts list.  Generally, only include hosts known to fail here,
+# since we allow hosts not listed to be supported generically.
 case ${host} in
- dummy)
-    if test "x$enable_obsolete" != xyes; then
-      echo "*** Configuration for host ${host} 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 hosts list.  Do not put an entry in this list unless
-# it would otherwise be caught by a more permissive pattern.  The list
-# should be in alphabetical order.
-case ${host} in
-   alpha*-*-linux*libc1* \
- | i[34567]86-sequent-sysv \
+   i[34567]86-sequent-sysv \
  | i[34567]86-sequent-sysv[123]* \
  | i[34567]86-go32-* \
  | i[34567]86-*-go32* \
- | m68k-*-linux*aout* \
- | m68k-*-linux*libc1* \
- | mips64orion*-*-rtems* \
- | powerpc-*-linux*libc1* \
- | sparc-*-linux*aout* \
- | sparc-*-linux*libc1* \
- | sparc-hal-solaris2* \
- | thumb-*-* \
- | *-*-linux*coff* \
- | *-*-linux*oldld* \
- | *-*-rtemsaout* \
- | *-*-rtemscoff* \
- )
+ | vax-*-vms*)
     echo "*** Configuration for host ${host} not supported" 1>&2
     exit 1
     ;;
 esac
 
-# Machine-specific settings.
+# Common parts for widely ported systems.
 case ${host} in
-  alpha*-*-unicosmk*)
-    ;;
-  alpha*-*-linux*)
-    ;;
-  alpha*-*-gnu*)
-    ;;
-  alpha*-*-freebsd*)
-    ;;
-  alpha*-*-netbsd*)
+  *-darwin*)
+    # Generic darwin host support.
+    out_host_hook_obj=host-darwin.o
+    host_xmake_file="${host_xmake_file} x-darwin"
     ;;
-  alpha*-*-openbsd*)
+esac
+
+case ${host} in
+  i[34567]86-*-* \
+  | x86_64-*-* )
+    case ${target} in
+      i[34567]86-*-* \
+      | x86_64-*-* )
+       host_extra_gcc_objs="driver-i386.o"
+       host_xmake_file="${host_xmake_file} i386/x-i386"
+       ;;
+    esac
     ;;
-  alpha*-dec-osf[45]*)
+esac
+
+case ${host} in
+  rs6000-*-* \
+  | powerpc*-*-* )
+    case ${target} in
+      rs6000-*-* \
+      | powerpc*-*-* )
+        host_extra_gcc_objs="driver-rs6000.o"
+        host_xmake_file="${host_xmake_file} rs6000/x-rs6000"
+        ;;
+    esac
     ;;
+esac
+
+# Machine-specific settings.
+case ${host} in
   alpha*-dec-*vms*)
     host_xm_file=alpha/xm-vms.h
-    host_xmake_file=alpha/x-vms
+    host_xmake_file="${host_xmake_file} alpha/x-vms"
     host_exeext=.exe
+    host_can_use_collect2=no
     # This removes the cpu type and manufacturer components and
     #  replaces "." with "_" in the operating system version.
-    target_alias=`echo $host | sed 's/.*-.*-\(.*\)$/\1/' | sed 's/\./_/g'`
+    target_noncanonical=`echo $host | sed 's/.*-.*-\(.*\)$/\1/' | sed 's/\./_/g'`
     prefix=/gnu
     local_prefix=/gnu
     ;;
-  arc-*-elf*)
-    ;;
-  arm-*-coff* | armel-*-coff*)
-    ;;
-  arm-semi-aof | armel-semi-aof)
-    ;;
-  arm*-*-freebsd*|strongarm*-*-freebsd*)
-    ;;
-  arm*-*-netbsdelf*)
-    ;;
-  arm*-*-netbsd*)
-    ;;
-  arm*-*-linux*) # ARM GNU/Linux with ELF
-    ;;
-  arm*-*-uclinux*) # ARM ucLinux
-    ;;
-  arm*-*-ecos-elf)
-    ;;
-  arm*-*-rtems*)
-    ;;
-  arm*-*-elf | ep9312-*-elf)
-    ;;
-  arm*-wince-pe*)
-    ;;
-  arm-*-pe*)
-    ;;
-  arm*-*-kaos*)
-    ;;
-  avr-*-*)
-    ;;
-  c4x-*-rtems* | tic4x-*-rtems*)
-    ;;
-  c4x-* | tic4x-*)
-    ;;
-  cris-*-aout)
-    ;;
-  cris-*-elf | cris-*-none)
-    ;;
-  cris-*-linux*)
-    ;;
-  d30v-*)
-    ;;
-  dsp16xx-*)
-    ;;
-  fr30-*-elf)
-    ;;
-  frv-*-elf)
-    ;;
-  h8300-*-rtems*)
-    ;;
-  h8300-*-elf*)
-    ;;
-  h8300-*-*)
-    ;;
-  hppa*64*-*-linux* | parisc*64*-*-linux*)
-    ;;
-  hppa*-*-linux* | parisc*-*-linux*)
-    ;;
-#  port not yet contributed.
-#  hppa*-*-openbsd*)
-#    ;;
   hppa1.1-*-pro*)
-    host_xmake_file="pa/x-ada"
+    host_xmake_file="${host_xmake_file} pa/x-ada"
     ;;
   hppa1.1-*-osf*)
-    host_xmake_file="pa/x-ada"
+    host_xmake_file="${host_xmake_file} pa/x-ada"
     ;;
   hppa1.1-*-rtems*)
-    host_xmake_file="pa/x-ada"
+    host_xmake_file="${host_xmake_file} pa/x-ada"
     ;;
   hppa1.1-*-bsd*)
-    host_xmake_file="pa/x-ada"
-    ;;
-  hppa1.1-*-hpux10* | hppa2*-*-hpux10*)
-    host_xmake_file="pa/x-ada"
+    host_xmake_file="${host_xmake_file} pa/x-ada"
     ;;
-  hppa1.0-*-hpux10*)
-    host_xmake_file="pa/x-ada"
+  hppa1.0-*-hpux10* | hppa1.1-*-hpux10* | hppa2*-*-hpux10*)
+    out_host_hook_obj=host-hpux.o
+    host_xmake_file="${host_xmake_file} pa/x-ada-hpux10 x-hpux"
     ;;
+  hppa1.0-*-hpux11* | hppa1.1-*-hpux11* | hppa2*-*-hpux11* | \
   hppa*64*-*-hpux11*)
-    host_xmake_file="pa/x-ada"
+    out_host_hook_obj=host-hpux.o
+    host_xmake_file="${host_xmake_file} pa/x-ada x-hpux"
     ;;
-  hppa1.1-*-hpux11* | hppa2*-*-hpux11*)
-    host_xmake_file="pa/x-ada"
+  hppa*-*-linux*)
+    out_host_hook_obj=host-hpux.o
+    host_xmake_file="${host_xmake_file} x-hpux"
     ;;
-  hppa1.0-*-hpux11*)
-    host_xmake_file="pa/x-ada"
-    ;;
-  i370-*-opened*) # IBM 360/370/390 Architecture
-    host_xm_defines='FATAL_EXIT_CODE=12'
-    ;;
-  i370-*-mvs*)
+  i370-*-opened* | i370-*-mvs* ) # IBM 360/370/390 Architecture
     host_xm_defines='FATAL_EXIT_CODE=12'
     ;;
-  i370-*-linux*)
-    ;;
-  i[34567]86-*-darwin*)
-    ;;
-  i[34567]86-*-elf*)
-    ;;
-  i[34567]86-ncr-sysv4*) # NCR 3000 - ix86 running system V.4
-    host_xm_defines="SMALL_ARG_MAX"
-    ;;
-  i[34567]86-*-netware) # Intel 80386's running netware
-    ;;
-  i[34567]86-sequent-ptx4* | i[34567]86-sequent-sysv4*)
-    host_xm_defines="SMALL_ARG_MAX"
-    ;;
-  i[34567]86-*-aout*)
-    ;;
-  i[34567]86-*-beoself* | i[34567]86-*-beos*)
-    ;;
-  i[34567]86-*-freebsd2 | i[34567]86-*-freebsd2.* | i[34567]86-*-freebsd*aout*)
-    ;;
-  i[34567]86-*-freebsd*)
-    ;;
-  x86_64-*-freebsd*)
-    ;;
-  i[34567]86-*-netbsdelf*)
-    ;;
-  i[34567]86-*-netbsd*)
-    ;;
-  x86_64-*-netbsd*)
-    ;;
-  i[34567]86-*-openbsd*)
-    ;;
-  i[34567]86-*-coff*)
-    ;;
-  i[34567]86-*-linux*aout*) # Intel 80386's running GNU/Linux with a.out format
-    ;;
-  i[34567]86-*-linux*libc1) # Intel 80386's running GNU/Linux
-                            # with ELF format using the
-                            # GNU/Linux C library 5
-    ;;
-  i[34567]86-*-linux*) # Intel 80386's running GNU/Linux
-                       # with ELF format using glibc 2
-                       # aka GNU/Linux C library 6
-    ;;
-  x86_64-*-linux*)
-    ;;
-  i[34567]86-*-gnu*)
+  i[34567]86-*-solaris2*)
+    out_host_hook_obj=host-solaris.o
+    host_xmake_file="${host_xmake_file} x-solaris"
     ;;
   i[34567]86-pc-msdosdjgpp*)
     host_xm_file=i386/xm-djgpp.h
     host_exeext=.exe
-    # Shorten $target_alias for 8.3 filename conventions.
+    # Shorten $target_noncanonical for 8.3 filename conventions.
     case ${target} in
       *pc-msdosdjgpp*)
-        target_alias=djgpp
+        target_noncanonical=djgpp
         ;;
     esac
     ;;
-  i[34567]86-moss-msdos* | i[34567]86-*-moss*)
-    ;;
-  i[34567]86-*-lynxos*)
-    ;;
-  i[34567]86-*-mach*)
-    ;;
-  i[34567]86-*-nto-qnx*)
-    ;;
-  i[34567]86-*-rtems*)
-    ;;
-  i[34567]86-*-sco3.2v5*) # 80386 running SCO Open Server 5
-    ;;
-  i[34567]86-*-solaris2*)
-    host_xm_defines="SMALL_ARG_MAX"
-    ;;
-  i[34567]86-*-sysv5*) # Intel x86 on System V Release 5
-    ;;
-  i[34567]86-*-sysv4*) # Intel 80386's running System V Release 4
-    host_xm_defines="SMALL_ARG_MAX"
-    ;;
-  i[34567]86-*-udk*) # Intel x86 on SCO UW/OSR5 Dev Kit
-    ;;
-  i[34567]86-*-sysv*) # Intel 80386's running System V
-    ;;
-  i386-*-vsta) # Intel 80386's running VSTa kernel
-    ;;
   i[34567]86-*-pe | i[34567]86-*-cygwin*)
     host_xm_file=i386/xm-cygwin.h
+    out_host_hook_obj=host-cygwin.o
+    host_xmake_file="${host_xmake_file} i386/x-cygwin"
     host_exeext=.exe
     ;;
-  i[34567]86-*-mingw32*)
+  i[34567]86-*-mingw32* | x86_64-*-mingw*)
     host_xm_file=i386/xm-mingw32.h
-    host_xmake_file=i386/x-mingw32
+    host_xmake_file="${host_xmake_file} i386/x-mingw32"
     host_exeext=.exe
+    out_host_hook_obj=host-mingw32.o
     ;;
   i[34567]86-*-uwin*)
-    host_exeext=.exe
+    echo "*** UWIN may not be used as a host platform because"
+    echo "*** linking with posix.dll is not allowed by the GNU GPL."
+    exit 1
     ;;
   i[34567]86-*-interix3*)
-    host_xmake_file="x-interix"
-    ;;
-  i[34567]86-*-interix*)
-    ;;
-  i[34567]86-*-kaos*)
-    ;;
-  i860-*-sysv4*)
-    host_xmake_file=i860/x-sysv4
-    ;;
-  i960-*-coff*)
-    ;;
-  i960-*-rtems)
-    ;;
-  i960-*-*) # Default i960 environment.
-    ;;
-  ia64*-*-elf*)
-    ;;
-  ia64*-*-freebsd*)
-    ;;
-  ia64*-*-linux*)
-    ;;
-  ia64*-*-hpux*)
-    ;;
-  ip2k-*-elf)
-    ;;
-  iq2000*-*-elf*)
-    ;;
-  m32r-*-elf*)
-    ;;
-  # m68hc11 and m68hc12 share the same machine description.
-  m68hc11-*-*|m6811-*-*)
-    ;;
-  m68hc12-*-*|m6812-*-*)
-    ;;
-  m68000-hp-hpux*) # HP 9000 series 300
-    ;;
-  m68k-hp-hpux7*) # HP 9000 series 300 running HPUX version 7.
+    host_xmake_file="${host_xmake_file} x-interix"
     ;;
-  m68k-hp-hpux*) # HP 9000 series 300
-    ;;
-  m68k-*-aout*)
-    ;;
-  m68k-*-coff*)
-    ;;
-  m68020-*-elf* | m68k-*-elf*)
-    ;;
-  m68010-*-netbsdelf* | m68k*-*-netbsdelf*)
-    ;;
-  m68k*-*-netbsd*)
-    ;;
-  m68k*-*-openbsd*)
-    ;;
-  m68k-*-sysv4*) # Motorola m68k's running system V r4
-    ;;
-  m68k-*-linux*) # Motorola m68k's running GNU/Linux
-                 # with ELF format using glibc 2
-                 # aka the GNU/Linux C library 6.
-    ;;
-  m68k-*-rtems*)
-    ;;
-  mcore-*-elf)
-    ;;
-  mcore-*-pe*)
-    ;;
-  mips-sgi-irix6*o32) # SGI System V.4., IRIX 6, O32 ABI
-    host_xm_file=mips/xm-iris5.h
-    ;;
-  mips-sgi-irix6*) # SGI System V.4., IRIX 6
-    ;;
-  mips-sgi-irix5cross64) # Irix5 host, Irix 6 target, cross64
-    host_xm_file=mips/xm-iris5.h
-    ;;
-  mips-sgi-irix5*) # SGI System V.4., IRIX 5
-    host_xm_file=mips/xm-iris5.h
-    ;;
-  mips*-*-netbsd*) # NetBSD/mips, either endian.
-    ;;
-  mips64*-*-linux*)
-    ;;
-  mips*-*-linux*) # Linux MIPS, either endian.
-    ;;
-  mips*-*-openbsd*)
-    ;;
-  mipsisa32-*-elf* | mipsisa32el-*-elf*)
-    ;;
-  mipsisa32r2-*-elf* | mipsisa32r2el-*-elf*)
-    ;;
-  mipsisa64-*-elf* | mipsisa64el-*-elf*)
-    ;;
-  mipsisa64sr71k-*-elf*)
-    ;;
-  mipsisa64sb1-*-elf* | mipsisa64sb1el-*-elf*)
-    ;;
-  mips-*-elf* | mipsel-*-elf*)
-    ;;
-  mips64-*-elf* | mips64el-*-elf*)
-    ;;
-  mips64vr-*-elf* | mips64vrel-*-elf*)
-    ;;
-  mips64orion-*-elf* | mips64orionel-*-elf*)
-    ;;
-  mips*-*-rtems*)
-    ;;
-  mipstx39-*-elf* | mipstx39el-*-elf*)
-    ;;
-  mmix-knuth-mmixware)
-    ;;
-  mn10300-*-*)
-    ;;
-  ns32k-*-netbsdelf*)
-    echo "GCC does not yet support the ${host} host"; exit 1
-    ;;
-  ns32k-*-netbsd*)
-    ;;
-  pdp11-*-bsd)
-    ;;
-  pdp11-*-*)
-    ;;
-  avr-*-*)
-    ;;
-#  port not yet contributed
-#  powerpc-*-openbsd*)
-#    ;;
-  powerpc64-*-linux*)
-    ;;
-  powerpc64-*-gnu*)
+  i[34567]86-*-darwin* | x86_64-*-darwin*)
+    out_host_hook_obj="${out_host_hook_obj} host-i386-darwin.o"
+    host_xmake_file="${host_xmake_file} i386/x-darwin"
     ;;
   powerpc-*-beos*)
+    host_can_use_collect2=no
     ;;
   powerpc-*-darwin*)
-    # powerpc-darwin host support.
-    out_host_hook_obj=host-darwin.o
-    host_xmake_file=rs6000/x-darwin
-    ;;
-  powerpc*-*-freebsd*)
-    ;;
-  powerpc-*-netbsd*)
-    ;;
-  powerpc-*-chorusos*)
-    ;;
-  powerpc-*-eabispe*)
-    ;;
-  powerpc-*-eabisimaltivec*)
-    ;;
-  powerpc-*-eabisim*)
-    ;;
-  powerpc-*-elf*)
-    ;;
-  powerpc-*-eabialtivec*)
-    ;;
-  powerpc-*-eabi*)
-    ;;
-  powerpc-*-rtems*)
-    ;;
-  powerpc-*-linux*altivec*)
-    ;;
-  powerpc-*-linux*spe*)
-    ;;
-  powerpc-*-linux*)
-    ;;
-  powerpc-*-gnu-gnualtivec*)
-    ;;
-  powerpc-*-gnu*)
-    ;;
-  powerpc-wrs-vxworks*)
+    out_host_hook_obj="${out_host_hook_obj} host-ppc-darwin.o"
+    host_xmake_file="${host_xmake_file} rs6000/x-darwin"
     ;;
-  powerpc-wrs-windiss*)
+  powerpc64-*-darwin*)
+    out_host_hook_obj="${out_host_hook_obj} host-ppc64-darwin.o"
+    host_xmake_file="${host_xmake_file} rs6000/x-darwin64"
     ;;
-  powerpcle-*-sysv*)
+  *-*-solaris2*)
+    out_host_hook_obj=host-solaris.o
+    host_xmake_file="${host_xmake_file} x-solaris"
     ;;
-  powerpcle-*-elf*)
+  *-*-linux*)
+    out_host_hook_obj=host-linux.o
+    host_xmake_file="${host_xmake_file} x-linux"
     ;;
-  powerpcle-*-eabisim*)
-    ;;
-  powerpcle-*-eabi*)
-    ;;
-  powerpc-*-kaos*)
-    ;;
-  powerpcle-*-kaos*)
-    ;;
-  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].*)
-    ;;
-  rs6000-*-lynxos*)
-    ;;
-  s390-*-linux*)
-    ;;
-  s390x-*-linux*)
-    ;;
-  sh-*-elf* | sh[2346l]*-*-elf* | sh*-*-kaos*)
-    ;;
-  sh-*-rtemself*)
-    ;;
-  sh-*-rtems*)
-    ;;
-  sh-*-linux* | sh[2346lbe]*-*-linux*)
-    ;;
-  sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
-  sh64-*-netbsd* | sh64l*-*-netbsd*)
-    ;;
-  sh-*-*)
-    ;;
-  sparc-tti-*)
-    ;;
-  sparc-*-netbsdelf*)
-    ;;
-  sparc-*-openbsd*)
-    ;;
-  sparc64-*-openbsd*)
-    ;;
-  sparc-*-elf*)
-    ;;
-  sparc-*-linux*) # SPARC's running GNU/Linux, libc6
-    ;;
-  sparc-*-rtems*)
-    ;;
-  sparc64-*-solaris2* | sparcv9-*-solaris2*)
-    ;;
-  sparc-*-solaris2*)
-    ;;
-  sparc-*-sysv4*)
-    ;;
-  sparclite-*-coff*)
-    ;;
-  sparclite-*-elf*)
-    ;;
-  sparc86x-*-elf*)
-    ;;
-  sparc64-*-aout*)
-    ;;
-  sparc64-*-elf*)
-    ;;
-  sparc64-*-freebsd*|ultrasparc-*-freebsd*)
-    ;;
-  sparc64-*-linux*) # 64-bit SPARC's running GNU/Linux
-    ;;
-  sparc64-*-netbsd*)
-    ;;
-  strongarm-*-elf*)
-    ;;
-  strongarm-*-pe)
-    ;;
-  strongarm-*-kaos*)
-    ;;
-  v850e-*-*)
-    ;;
-  v850-*-*)
-    ;;
-  vax-*-bsd*) # VAXen running BSD
-    ;;
-  vax-*-sysv*) # VAXen running System V
-    ;;
-  vax-*-netbsdelf*)
-    ;;
-  vax-*-netbsd*)
-    ;;
-  vax-*-openbsd*)
-    ;;
-  vax-*-ultrix*) # VAXen running ultrix
-    ;;
-  vax-*-vms*) # VAXen running VMS
-    echo "Host ${host} no longer supported" 1>&2
-    exit 1
-    ;;
-  vax-*-*) # VAX default entry
-    ;;
-  xscale-*-elf)
-    ;;
-  xscale-*-coff)
-    ;;
-  xstormy16-*-elf)
-    ;;
-  xtensa-*-elf*)
-    ;;
-  xtensa-*-linux*)
-    ;;
-  am33_2.0-*-linux*)
-    ;;
-  *)
-    echo "*** Configuration ${host} not supported" 1>&2
-    exit 1
+  ia64-*-hpux*)
+    use_long_long_for_widest_fast_int=yes
+    out_host_hook_obj=host-hpux.o
+    host_xmake_file="${host_xmake_file} x-hpux"
     ;;
 esac