X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=libstdc%2B%2B-v3%2Fconfigure.host;h=de48517144b9987081a3d04b9ca14071c674417b;hb=708dacc2a03e511e95eabce2bea0c274cdffd857;hp=747cf74099a9bee74eb4330daef506f8031f833b;hpb=d93235165ad04c09a1fc34178f9ca25a6db95ca3;p=pf3gnuchains%2Fgcc-fork.git diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host index 747cf74099a..de48517144b 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,12 +30,18 @@ # abi_baseline_pair directory name for ABI compat testing, # defaults to host_cpu-host_os (as per config.guess) # +# abi_tweaks_dir location of cxxabi_tweaks.h, +# defaults to cpu_include_dir +# # 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 @@ -61,6 +67,7 @@ c_model=c_std c_compatibility=no atomic_word_dir=cpu/generic +cpu_defines_dir=cpu/generic # HOST-SPECIFIC OVERRIDES # Set any CPU-dependent bits. @@ -72,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 ;; @@ -98,7 +108,7 @@ case "${host_cpu}" in try_cpu=sparc ;; *) - if test -f ${glibcxx_srcdir}/config/cpu/${host_cpu}/atomicity.h; then + if test -d ${glibcxx_srcdir}/config/cpu/${host_cpu}; then try_cpu=${host_cpu} else try_cpu=generic @@ -117,13 +127,32 @@ case "${host_cpu}" in ;; 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_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. @@ -138,11 +167,13 @@ case "${host_os}" in # explicitly duplicate the directory for 4.[<3]. os_include_dir="os/aix" atomicity_dir="os/aix" + atomic_word_dir="os/aix" OPT_LDFLAGS="-Wl,-G" ;; aix4.*) os_include_dir="os/generic" atomicity_dir="os/aix" + atomic_word_dir="os/aix" ;; aix*) os_include_dir="os/generic" @@ -155,6 +186,19 @@ 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" ;; @@ -192,7 +236,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" @@ -221,22 +265,39 @@ esac # Set any OS-dependent and CPU-dependent bits. # THIS TABLE IS SORTED. KEEP IT THAT WAY. case "${host}" in - mips*-*-linux*) - atomicity_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