X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fconfig.host;h=9738345c8a2ffc7c793b6daa9c7b67facc476871;hb=757fb7abad2d7d7a512cae4e1d8e836402f826f1;hp=9fb6baa21c9213aefdef310ab0b23809bf1e5423;hpb=04074c50daed0fc0aed4011330a71ed17ac991e3;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/config.host b/gcc/config.host index 9fb6baa21c9..9738345c8a2 100644 --- a/gcc/config.host +++ b/gcc/config.host @@ -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, 2008, 2009 # 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 +#. # This is the GCC host-specific configuration file # where a configuration type is mapped to different system-specific @@ -49,6 +48,13 @@ # 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,6 +68,8 @@ 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 # Unsupported hosts list. Generally, only include hosts known to fail here, # since we allow hosts not listed to be supported generically. @@ -76,78 +84,184 @@ case ${host} in ;; esac +# Common parts for widely ported systems. +case ${host} in + *-darwin*) + # Generic darwin host support. + out_host_hook_obj=host-darwin.o + host_xmake_file="${host_xmake_file} x-darwin" + ;; +esac + +case ${host} in + alpha*-*-linux*) + case ${target} in + alpha*-*-linux*) + host_extra_gcc_objs="driver-alpha.o" + host_xmake_file="${host_xmake_file} alpha/x-alpha" + ;; + esac + ;; + 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 + ;; + mips*-*-linux*) + case ${target} in + mips*-*-linux*) + host_extra_gcc_objs="driver-native.o" + host_xmake_file="${host_xmake_file} mips/x-native" + ;; + esac + ;; + rs6000-*-* \ + | powerpc*-*-* ) + case ${target} in + rs6000-*-* \ + | powerpc*-*-* ) + host_extra_gcc_objs="driver-rs6000.o" + host_xmake_file="${host_xmake_file} rs6000/x-rs6000" + ;; + esac + case ${host} in + *-*-linux* | *-*-freebsd*) + if test "${GCC}:${ac_cv_sizeof_long}" = yes:4; then + # On powerpc*-*-linux* use -Wl,--relax to link cc1, + # if ld is new enough, otherwise force -O1 in CFLAGS. + host_ppc_relax_xmake_file= + host_ld_ver=`${CC} -Wl,--version 2>/dev/null | sed 1q` + if echo "$host_ld_ver" | grep GNU > /dev/null; then + host_ld_date=`echo $host_ld_ver \ + | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` + if test 0"$host_ld_date" -gt 20080806; then + host_ppc_relax_xmake_file=rs6000/x-linux-relax + fi + fi + if test -z "${host_ppc_relax_xmake_file}"; then + host_ppc_relax_xmake_file=x-cflags-O1 + fi + host_xmake_file="${host_xmake_file} ${host_ppc_relax_xmake_file}" + fi + ;; + esac + ;; +esac + # Machine-specific settings. case ${host} in - alpha*-dec-*vms*) - host_xm_file=alpha/xm-vms.h - host_xmake_file=alpha/x-vms + alpha64-dec-*vms*) + host_xm_file="vms/xm-vms.h vms/xm-vms64.h" + host_xmake_file=vms/x-vms host_exeext=.exe - # 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'` + host_can_use_collect2=no prefix=/gnu - local_prefix=/gnu - ;; - hppa1.1-*-pro*) - host_xmake_file="pa/x-ada" - ;; - hppa1.1-*-osf*) - host_xmake_file="pa/x-ada" + local_prefix=/gnu/local ;; - hppa1.1-*-rtems*) - host_xmake_file="pa/x-ada" + alpha*-dec-*vms*) + host_xm_file="vms/xm-vms.h" + host_xmake_file=vms/x-vms + host_exeext=.exe + host_can_use_collect2=no + prefix=/gnu + local_prefix=/gnu/local ;; - hppa1.1-*-bsd*) - 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} x-hpux" ;; - hppa1.0-*-hpux10* | hppa1.1-*-hpux10* | hppa2*-*-hpux10* | \ 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} x-hpux" + ;; + hppa*-*-linux*) + out_host_hook_obj=host-hpux.o + host_xmake_file="${host_xmake_file} x-hpux" ;; i370-*-opened* | i370-*-mvs* ) # IBM 360/370/390 Architecture host_xm_defines='FATAL_EXIT_CODE=12' ;; - i[34567]86-sequent-ptx4*) - host_xm_defines="SMALL_ARG_MAX" - ;; i[34567]86-*-solaris2*) - host_xm_defines="SMALL_ARG_MAX" - ;; - i[34567]86-*-sysv4*) # Intel 80386's running System V Release 4 - host_xm_defines="SMALL_ARG_MAX" + 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-*-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*) 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*) + x86_64-*-mingw*) + use_long_long_for_widest_fast_int=yes + host_xm_file=i386/xm-mingw32.h + host_xmake_file="${host_xmake_file} i386/x-mingw32" host_exeext=.exe + out_host_hook_obj=host-mingw32.o ;; - i[34567]86-*-interix3*) - host_xmake_file="x-interix" + i[34567]86-*-uwin*) + 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-*-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" + ;; + ia64-hp-*vms*) + host_xm_file="vms/xm-vms.h vms/xm-vms64.h" + host_xmake_file=vms/x-vms + host_exeext=.exe + host_can_use_collect2=no + prefix=/gnu + local_prefix=/gnu/local ;; - i860-*-sysv4*) - host_xmake_file=i860/x-sysv4 + 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 + out_host_hook_obj="${out_host_hook_obj} host-ppc-darwin.o" + host_xmake_file="${host_xmake_file} rs6000/x-darwin" + ;; + powerpc64-*-darwin*) + out_host_hook_obj="${out_host_hook_obj} host-ppc64-darwin.o" + host_xmake_file="${host_xmake_file} rs6000/x-darwin64" + ;; + rs6000-ibm-aix* | powerpc-ibm-aix*) + host_xmake_file="${host_xmake_file} rs6000/x-aix" + ;; + *-*-solaris2*) + out_host_hook_obj=host-solaris.o + host_xmake_file="${host_xmake_file} x-solaris" + ;; + *-*-linux*) + out_host_hook_obj=host-linux.o + host_xmake_file="${host_xmake_file} x-linux" + ;; + 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