1# GCC host-specific configuration file. 2# Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2006, 2007, 2008, 2009, 3# 2011 Free Software Foundation, Inc. 4 5#This file is part of GCC. 6 7#GCC is free software; you can redistribute it and/or modify it under 8#the terms of the GNU General Public License as published by the Free 9#Software Foundation; either version 3, or (at your option) any later 10#version. 11 12#GCC is distributed in the hope that it will be useful, but WITHOUT 13#ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14#FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15#for more details. 16 17#You should have received a copy of the GNU General Public License 18#along with GCC; see the file COPYING3. If not see 19#<http://www.gnu.org/licenses/>. 20 21# This is the GCC host-specific configuration file 22# where a configuration type is mapped to different system-specific 23# definitions and files. This is invoked by the autoconf-generated 24# configure script. Putting it in a separate shell file lets us skip 25# running autoconf when modifying host-specific information. 26 27# This file switches on the shell variable ${host}. As much of this as 28# is reasonable should be replaced with autoconf tests in the future. 29 30# This file sets the following shell variables for use by the 31# autoconf-generated configure script: 32# 33# host_xm_file List of files to include when compiling for the 34# host machine. 35# 36# host_xm_defines List of macros to define when compiling for the 37# host machine. 38# 39# host_xmake_file List of host-specific makefile-fragments. 40# 41# host_exeext Set to the suffix, if the host machine requires 42# executables to have a file name suffix. 43# 44# host_extra_objs List of extra host-dependent objects that should 45# be linked into the compiler proper. 46# 47# host_extra_gcc_objs List of extra host-dependent objects that should 48# be linked into the gcc driver. 49# 50# out_host_hook_obj An object file that provides the host hooks. 51# 52# host_can_use_collect2 Set to yes normally; to no if the host cannot 53# link or otherwise use collect2 54# use_long_long_for_widest_fast_int Set this to 'yes' if 'long long' 55# (or '__int64') is wider than 'long' but still 56# efficeiently supported by the host hardware. 57# Only affects compile speed. Default is 'no'. 58 59# When setting any of these variables, check to see if a corresponding 60# variable is present in config.build; if so, you will likely want to 61# set it in both places. 62 63# Default settings. 64host_xm_file= 65host_xm_defines= 66host_xmake_file= 67host_exeext= 68host_extra_objs= 69host_extra_gcc_objs= 70out_host_hook_obj=host-default.o 71host_can_use_collect2=yes 72use_long_long_for_widest_fast_int=no 73 74# Unsupported hosts list. Generally, only include hosts known to fail here, 75# since we allow hosts not listed to be supported generically. 76case ${host} in 77 i[34567]86-sequent-sysv \ 78 | i[34567]86-sequent-sysv[123]* \ 79 | i[34567]86-go32-* \ 80 | i[34567]86-*-go32* \ 81 | vax-*-vms*) 82 echo "*** Configuration for host ${host} not supported" 1>&2 83 exit 1 84 ;; 85esac 86 87# Common parts for widely ported systems. 88case ${host} in 89 *-darwin*) 90 # Generic darwin host support. 91 out_host_hook_obj=host-darwin.o 92 host_xmake_file="${host_xmake_file} x-darwin" 93 ;; 94esac 95 96case ${host} in 97 alpha*-*-linux*) 98 case ${target} in 99 alpha*-*-linux*) 100 host_extra_gcc_objs="driver-alpha.o" 101 host_xmake_file="${host_xmake_file} alpha/x-alpha" 102 ;; 103 esac 104 ;; 105 i[34567]86-*-* \ 106 | x86_64-*-* ) 107 case ${target} in 108 i[34567]86-*-* \ 109 | x86_64-*-* ) 110 host_extra_gcc_objs="driver-i386.o" 111 host_xmake_file="${host_xmake_file} i386/x-i386" 112 ;; 113 esac 114 ;; 115 mips*-*-linux*) 116 case ${target} in 117 mips*-*-linux*) 118 host_extra_gcc_objs="driver-native.o" 119 host_xmake_file="${host_xmake_file} mips/x-native" 120 ;; 121 esac 122 ;; 123 rs6000-*-* \ 124 | powerpc*-*-* ) 125 case ${target} in 126 rs6000-*-* \ 127 | powerpc*-*-* ) 128 host_extra_gcc_objs="driver-rs6000.o" 129 host_xmake_file="${host_xmake_file} rs6000/x-rs6000" 130 ;; 131 esac 132 case ${host} in 133 *-*-linux* | *-*-freebsd*) 134 if test "${GCC}:${ac_cv_sizeof_long}" = yes:4; then 135 # On powerpc*-*-linux* use -Wl,--relax to link cc1, 136 # if ld is new enough, otherwise force -O1 in CFLAGS. 137 host_ppc_relax_xmake_file= 138 host_ld_ver=`${CC} -Wl,--version 2>/dev/null | sed 1q` 139 if echo "$host_ld_ver" | grep GNU > /dev/null; then 140 host_ld_date=`echo $host_ld_ver \ 141 | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'` 142 if test 0"$host_ld_date" -gt 20080806; then 143 host_ppc_relax_xmake_file=rs6000/x-linux-relax 144 fi 145 fi 146 if test -z "${host_ppc_relax_xmake_file}"; then 147 host_ppc_relax_xmake_file=x-cflags-O1 148 fi 149 host_xmake_file="${host_xmake_file} ${host_ppc_relax_xmake_file}" 150 fi 151 ;; 152 esac 153 ;; 154esac 155 156# Machine-specific settings. 157case ${host} in 158 alpha64-dec-*vms*) 159 host_xm_file="vms/xm-vms.h vms/xm-vms64.h" 160 host_xmake_file=vms/x-vms 161 host_exeext=.exe 162 host_can_use_collect2=no 163 prefix=/gnu 164 local_prefix=/gnu/local 165 ;; 166 alpha*-dec-osf*) 167 out_host_hook_obj=host-osf.o 168 host_xmake_file="${host_xmake_file} alpha/x-osf" 169 ;; 170 alpha*-dec-*vms*) 171 host_xm_file="vms/xm-vms.h" 172 host_xmake_file=vms/x-vms 173 host_exeext=.exe 174 host_can_use_collect2=no 175 prefix=/gnu 176 local_prefix=/gnu/local 177 ;; 178 hppa1.0-*-hpux10* | hppa1.1-*-hpux10* | hppa2*-*-hpux10*) 179 out_host_hook_obj=host-hpux.o 180 host_xmake_file="${host_xmake_file} x-hpux" 181 ;; 182 hppa1.0-*-hpux11* | hppa1.1-*-hpux11* | hppa2*-*-hpux11* | \ 183 hppa*64*-*-hpux11*) 184 out_host_hook_obj=host-hpux.o 185 host_xmake_file="${host_xmake_file} x-hpux" 186 ;; 187 hppa*-*-linux*) 188 out_host_hook_obj=host-hpux.o 189 host_xmake_file="${host_xmake_file} x-hpux" 190 ;; 191 i370-*-opened* | i370-*-mvs* ) # IBM 360/370/390 Architecture 192 host_xm_defines='FATAL_EXIT_CODE=12' 193 ;; 194 i[34567]86-*-solaris2*) 195 out_host_hook_obj=host-solaris.o 196 host_xmake_file="${host_xmake_file} x-solaris" 197 ;; 198 i[34567]86-pc-msdosdjgpp*) 199 host_xm_file=i386/xm-djgpp.h 200 host_exeext=.exe 201 # Shorten $target_noncanonical for 8.3 filename conventions. 202 case ${target} in 203 *pc-msdosdjgpp*) 204 target_noncanonical=djgpp 205 ;; 206 esac 207 ;; 208 i[34567]86-*-pe | i[34567]86-*-cygwin*) 209 host_xm_file=i386/xm-cygwin.h 210 out_host_hook_obj=host-cygwin.o 211 host_xmake_file="${host_xmake_file} i386/x-cygwin" 212 host_exeext=.exe 213 ;; 214 i[34567]86-*-mingw32*) 215 host_xm_file=i386/xm-mingw32.h 216 host_xmake_file="${host_xmake_file} i386/x-mingw32" 217 host_exeext=.exe 218 out_host_hook_obj=host-mingw32.o 219 ;; 220 x86_64-*-mingw*) 221 use_long_long_for_widest_fast_int=yes 222 host_xm_file=i386/xm-mingw32.h 223 host_xmake_file="${host_xmake_file} i386/x-mingw32" 224 host_exeext=.exe 225 out_host_hook_obj=host-mingw32.o 226 ;; 227 i[34567]86-*-uwin*) 228 echo "*** UWIN may not be used as a host platform because" 229 echo "*** linking with posix.dll is not allowed by the GNU GPL." 230 exit 1 231 ;; 232 i[34567]86-*-darwin* | x86_64-*-darwin*) 233 out_host_hook_obj="${out_host_hook_obj} host-i386-darwin.o" 234 host_xmake_file="${host_xmake_file} i386/x-darwin" 235 ;; 236 ia64-hp-*vms*) 237 host_xm_file="vms/xm-vms.h vms/xm-vms64.h" 238 host_xmake_file=vms/x-vms 239 host_exeext=.exe 240 host_can_use_collect2=no 241 prefix=/gnu 242 local_prefix=/gnu/local 243 ;; 244 powerpc-*-beos*) 245 host_can_use_collect2=no 246 ;; 247 powerpc-*-darwin*) 248 out_host_hook_obj="${out_host_hook_obj} host-ppc-darwin.o" 249 host_xmake_file="${host_xmake_file} rs6000/x-darwin" 250 ;; 251 powerpc64-*-darwin*) 252 out_host_hook_obj="${out_host_hook_obj} host-ppc64-darwin.o" 253 host_xmake_file="${host_xmake_file} rs6000/x-darwin64" 254 ;; 255 rs6000-ibm-aix* | powerpc-ibm-aix*) 256 host_xmake_file="${host_xmake_file} rs6000/x-aix" 257 ;; 258 *-*-solaris2*) 259 out_host_hook_obj=host-solaris.o 260 host_xmake_file="${host_xmake_file} x-solaris" 261 ;; 262 *-*-linux*) 263 out_host_hook_obj=host-linux.o 264 host_xmake_file="${host_xmake_file} x-linux" 265 ;; 266 ia64-*-hpux*) 267 use_long_long_for_widest_fast_int=yes 268 out_host_hook_obj=host-hpux.o 269 host_xmake_file="${host_xmake_file} x-hpux" 270 ;; 271esac 272