X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libstdc%2B%2B-v3%2Fconfigure.host;h=477e4d8bb13521901eee535081518d058070698b;hb=dfe210e464510e705f64c07eec931449a2f43e19;hp=e830e1b7a4e21c410537e065b70d1d191bc3c38f;hpb=3c00589d322cfb7ff80c9661342eb48324d35101;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host index e830e1b7a4e..477e4d8bb13 100644 --- a/libstdc++-v3/configure.host +++ b/libstdc++-v3/configure.host @@ -17,8 +17,8 @@ # It sets the following shell variables: # # cpu_include_dir CPU-specific directory, defaults to cpu/generic -# if cpu/host_cpu doesn't exist. This is -# used to set atomicity_include_dir. +# if cpu/host_cpu doesn't exist. This is not used +# directly, but sets the default for others. # # os_include_dir OS-specific directory, defaults to os/generic. # @@ -30,11 +30,18 @@ # abi_baseline_pair directory name for ABI compat testing, # defaults to host_cpu-host_os (as per config.guess) # -# fpos_include_dir directory for definition of fpos template +# abi_tweaks_dir location of cxxabi_tweaks.h, +# defaults to cpu_include_dir # -# atomicity_include_dir location of atomicity.h, +# atomicity_dir location of atomicity.h, # defaults to cpu_include_dir # +# atomic_word_dir location of atomic_word.h +# defaults to generic. +# +# cpu_defines_dir location of cpu_defines.h +# defaults to generic. +# # It possibly modifies the following variables: # # OPT_LDFLAGS extra flags to pass when linking the library, of @@ -59,7 +66,8 @@ # systems out there. :-) c_model=c_std c_compatibility=no -fpos_include_dir="os/generic" +atomic_word_dir=cpu/generic +cpu_defines_dir=cpu/generic # HOST-SPECIFIC OVERRIDES # Set any CPU-dependent bits. @@ -71,6 +79,9 @@ case "${host_cpu}" in alpha*) try_cpu=alpha ;; + arm* | xscale | ep9312) + try_cpu=arm + ;; i[567]86 | x86_64) try_cpu=i486 ;; @@ -105,13 +116,43 @@ case "${host_cpu}" in ;; esac +# Set specific CPU overrides for atomic_word_dir. Most can just use generic. +# THIS TABLE IS SORTED. KEEP IT THAT WAY. +case "${host_cpu}" in + cris*) + atomic_word_dir=cpu/cris + ;; + sparc* | ultrasparc) + atomic_word_dir=cpu/sparc + ;; +esac + +# Set specific CPU overrides for cpu_defines_dir. Most can just use generic. +# THIS TABLE IS SORTED. KEEP IT THAT WAY. +case "${host_cpu}" in + powerpc* | rs6000) + cpu_defines_dir=cpu/powerpc + ;; +esac + # Now look for the file(s) usually tied to a CPU model, and make # default choices for those if they haven't been explicitly set # already. -cpu_include_dir="cpu/${try_cpu}" -atomicity_include_dir=$cpu_include_dir +cpu_include_dir=cpu/${try_cpu} abi_baseline_pair=${try_cpu}-${host_os} +unset try_cpu + +if test -f ${glibcxx_srcdir}/config/${cpu_include_dir}/atomicity.h ; then + atomicity_dir=$cpu_include_dir +else + atomicity_dir="cpu/generic" +fi +if test -f ${glibcxx_srcdir}/config/${cpu_include_dir}/cxxabi_tweaks.h ; then + abi_tweaks_dir=$cpu_include_dir +else + abi_tweaks_dir="cpu/generic" +fi # Set any OS-dependent bits. # Set the os_include_dir. @@ -125,14 +166,18 @@ case "${host_os}" in # os/aix/atomicity.h works on earlier versions of AIX 4.*, so we # explicitly duplicate the directory for 4.[<3]. os_include_dir="os/aix" - atomicity_include_dir="os/aix" + atomicity_dir="os/aix" + atomic_word_dir="os/aix" OPT_LDFLAGS="-Wl,-G" ;; aix4.*) - atomicity_include_dir="os/aix" + os_include_dir="os/generic" + atomicity_dir="os/aix" + atomic_word_dir="os/aix" ;; aix*) - atomicity_include_dir="cpu/generic" + os_include_dir="os/generic" + atomicity_dir="cpu/generic" ;; bsd*) # Plain BSD attempts to share FreeBSD files. @@ -141,15 +186,31 @@ case "${host_os}" in cygwin*) os_include_dir="os/newlib" ;; + darwin | darwin[1-7] | darwin[1-7].*) + # On Darwin, performance is improved if libstdc++ is single-module. + # Up to at least 10.3.7, -flat_namespace is required for proper + # treatment of coalesced symbols. + OPT_LDFLAGS="${OPT_LDFLAGS} -Wl,-single_module -Wl,-flat_namespace" + os_include_dir="os/bsd/darwin" + ;; + darwin[89] | darwin[89].* | darwin[1-9][0-9]* ) + # On Darwin, performance is improved if libstdc++ is single-module, + # and on 8+ compatibility is better if not -flat_namespace. + OPT_LDFLAGS="${OPT_LDFLAGS} -Wl,-single_module" + os_include_dir="os/bsd/darwin" + ;; *djgpp*) # leading * picks up "msdosdjgpp" os_include_dir="os/djgpp" ;; freebsd*) os_include_dir="os/bsd/freebsd" ;; - gnu* | linux*) - os_include_dir="os/gnu-linux" - fpos_include_dir=$os_include_dir + gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) + if [ "$uclibc" = "yes" ]; then + os_include_dir="os/uclibc" + else + os_include_dir="os/gnu-linux" + fi ;; hpux*) os_include_dir="os/hpux" @@ -157,11 +218,13 @@ case "${host_os}" in irix[1-6] | irix[1-5].* | irix6.[0-4]*) # This is known to work on at least IRIX 5.2 and 6.3. os_include_dir="os/irix/irix5.2" - atomicity_include_dir=$os_include_dir + atomicity_dir=os/irix + atomic_word_dir=os/irix ;; irix6.5*) os_include_dir="os/irix/irix6.5" - atomicity_include_dir=$os_include_dir + atomicity_dir=os/irix + atomic_word_dir=os/irix ;; mingw32*) os_include_dir="os/mingw32" @@ -177,7 +240,7 @@ case "${host_os}" in # This too-vague configuration does not provide enough information # to select a ctype include, and thus os_include_dir is a crap shoot. echo "Please specify the full version of Solaris, ie. solaris2.9 " 1>&2 - exit 1; + exit 1 ;; solaris2.5 | solaris2.5.[0-9]) os_include_dir="os/solaris/solaris2.5" @@ -188,6 +251,12 @@ case "${host_os}" in solaris2.[789] | solaris2.1[0-9]) os_include_dir="os/solaris/solaris2.7" ;; + tpf) + os_include_dir="os/tpf" + ;; + vxworks) + os_include_dir="os/vxworks" + ;; windiss*) os_include_dir="os/windiss" ;; @@ -200,22 +269,39 @@ esac # Set any OS-dependent and CPU-dependent bits. # THIS TABLE IS SORTED. KEEP IT THAT WAY. case "${host}" in - mips*-*-linux*) - atomicity_include_dir="cpu/mips" - ;; - x86_64-*-linux*) - abi_baseline_pair="x86_64-linux-gnu" - ;; alpha*-*-freebsd5*) abi_baseline_pair="alpha-freebsd5" ;; + arm*-*-linux*) + abi_baseline_pair="arm-linux-gnu" + ;; i*86-*-freebsd4*) abi_baseline_pair="i386-freebsd4" ;; i*86-*-freebsd5*) abi_baseline_pair="i386-freebsd5" ;; + mips*-*-linux*) + atomicity_dir="cpu/mips" + abi_baseline_pair="mips-linux-gnu" + cpu_include_dir="cpu/mips" + ;; + powerpc*-*-darwin*) + port_specific_symbol_files="\$(srcdir)/../config/os/bsd/darwin/ppc-extra.ver" + ;; + powerpc64-*-linux*) + abi_baseline_pair="powerpc64-linux-gnu" + ;; + s390-*-linux*) + abi_baseline_pair="s390-linux-gnu" + ;; + s390x-*-linux*) + abi_baseline_pair="s390x-linux-gnu" + ;; sparc*-*-freebsd5*) abi_baseline_pair="sparc-freebsd5" ;; + x86_64-*-linux*) + abi_baseline_pair="x86_64-linux-gnu" + ;; esac