From 3eaa187de56bff5ee342ffc8b3feeca7ac2a2c62 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Wed, 17 Feb 2010 23:47:47 +0100 Subject: complibs: split-up selection for individual libs diff --git a/config/binutils/binutils.in b/config/binutils/binutils.in index ce728f1..23063b0 100644 --- a/config/binutils/binutils.in +++ b/config/binutils/binutils.in @@ -79,7 +79,8 @@ config BINUTILS_TARGET_USE_GMP_MPFR bool prompt "Use GMP and MPFR" default n - select GMP_MPFR + select GMP + select MPFR select COMP_LIBS_TARGET help binutils can be configured to use GMP and MPFR. diff --git a/config/cc/gcc.in b/config/cc/gcc.in index cbb16ab..3f336df 100644 --- a/config/cc/gcc.in +++ b/config/cc/gcc.in @@ -102,13 +102,16 @@ endchoice config CC_GCC_4_3_or_later bool default n - select GMP_MPFR + select GMP + select MPFR config CC_GCC_4_4_or_later bool default n select CC_GCC_4_3_or_later - select PPL_CLOOG_MPC + select PPL + select CLOOG + select MPC config CC_VERSION string diff --git a/config/companion_libs.in b/config/companion_libs.in index 7437d1f..3bc019b 100644 --- a/config/companion_libs.in +++ b/config/companion_libs.in @@ -4,20 +4,22 @@ menu "Companion libraries" +comment "FIXME: check real dependencies!!!" + config WRAPPER_NEEDED bool default n -config GMP_MPFR +config GMP bool - prompt "GMP and MPFR" + prompt "GMP" select WRAPPER_NEEDED help - gcc 4.3.0 and above requires both GMP and MPFR to build some frontends, - and some other components can use them as well. + gcc 4.3.0 and above requires GMP to build some frontends, and some + other components can use them as well. - These will be automatically selected if you choose gcc>=4.3.0, but you - can say 'Y' here if you want to build those two libraries for the other + This will be automatically selected if you choose gcc>=4.3.0, but you + can say 'Y' here if you want to build this library for the other components (that don't select them by default). The packages that can use GMP and MPFR are: @@ -25,31 +27,83 @@ config GMP_MPFR - gcc - gdb -if GMP_MPFR -source config/companion_libs/gmp.in -source config/companion_libs/mpfr.in -endif +config MPFR + bool + prompt "MPFR" + select GMP + select WRAPPER_NEEDED + help + gcc 4.3.0 and above requires MPFR to build some frontends, and some + other components can use them as well. + + This will be automatically selected if you choose gcc>=4.3.0, but you + can say 'Y' here if you want to build this library for the other + components (that don't select them by default). + + The packages that can use GMP and MPFR are: + - binutils + - gcc + - gdb -config PPL_CLOOG_MPC +config PPL bool - prompt "PPL, GLooG/PPL and MPC" - select GMP_MPFR + prompt "PPL" + select GMP + select MPFR select WRAPPER_NEEDED help - gcc-4.4.0 and above requires PPL and CLooG/PPL to build some parts - of the optimiser (GRAPHITE loop optimisation, to be precise). + gcc-4.4.0 and above requires PPL to build some parts of the optimiser + (the GRAPHITE loop optimisation, to be precise). - In addition to those, gcc-4.4 also optionally uses MPC to enable - additional optimisations on complex numbers. Although MPC is optional, + This will be automatically selected if you choose gcc>=4.4.0, but you + can say 'Y' here, although it is unknown yet if any other component + can use it. + +config CLOOG + bool + prompt "GLooG/PPL" + select GMP + select MPFR + select PPL + select WRAPPER_NEEDED + help + gcc-4.4.0 and above requires CLooG/PPL to build some parts of the + optimiser (the GRAPHITE loop optimisation, to be precise). + + This will be automatically selected if you choose gcc>=4.4.0, but you + can say 'Y' here, although it is unknown yet if any other component + can use it. + +config MPC + bool + prompt "MPC" + select GMP + select MPFR + select PPL + select CLOOG + select WRAPPER_NEEDED + help + gcc-4.4.0 and above can also optionally use MPC to enable additional + optimisations on complex numbers. Although MPC is optional, crosstool-NG requires it and uses it to build gcc >= 4.4.0. - These will be automatically selected if you choose gcc>=4.4.0, but you + This will be automatically selected if you choose gcc>=4.4.0, but you can say 'Y' here, although it is unknown yet if any other component - can use them. + can use it. -if PPL_CLOOG_MPC +if GMP +source config/companion_libs/gmp.in +endif +if MPFR +source config/companion_libs/mpfr.in +endif +if PPL source config/companion_libs/ppl.in +endif +if CLOOG source config/companion_libs/cloog.in +endif +if MPC source config/companion_libs/mpc.in endif @@ -57,12 +111,12 @@ config FOO bool comment "Companion libraries common options" - depends on GMP_MPFR || PPL_CLOOG_MPC + depends on GMP || MPFR || PPL || CLOOG || MPC config COMP_LIBS_CHECK bool prompt "| Check the companion libraries builds (!!! READ HELP!!!)" - depends on GMP_MPFR || PPL_CLOOG_MPC + depends on GMP || MPFR || PPL || CLOOG || MPC default n help It is highly recommended to check the newly built companion libraries. @@ -81,7 +135,7 @@ config COMP_LIBS_CHECK config COMP_LIBS_TARGET bool prompt "| Build companion libraries for the target" - depends on GMP_MPFR || PPL_CLOOG_MPC + depends on GMP || MPFR || PPL || CLOOG || MPC depends on ! BARE_METAL default n help diff --git a/config/debug/gdb.in b/config/debug/gdb.in index 04b8f39..db40dbb 100644 --- a/config/debug/gdb.in +++ b/config/debug/gdb.in @@ -58,7 +58,8 @@ config GDB_NATIVE_USE_GMP_MPFR prompt "Use GMP and MPFR" default n depends on GDB_NATIVE - select GMP_MPFR + select GMP + select MPFR select COMP_LIBS_TARGET help gdb can make use of the GMP and MPFR libraries. diff --git a/scripts/build/binutils/binutils.sh b/scripts/build/binutils/binutils.sh index 938c369..fb653f6 100644 --- a/scripts/build/binutils/binutils.sh +++ b/scripts/build/binutils/binutils.sh @@ -26,10 +26,8 @@ do_binutils() { # If GMP and MPFR were configured, then use that, # otherwise let binutils find the system-wide libraries, if they exist. - if [ "${CT_GMP_MPFR}" = "y" ]; then - extra_config+=("--with-gmp=${CT_PREFIX_DIR}") - extra_config+=("--with-mpfr=${CT_PREFIX_DIR}") - fi + [ -z "${CT_GMP}" ] || extra_config+=("--with-gmp=${CT_PREFIX_DIR}") + [ -z "${CT_MPFR}" ] || extra_config+=("--with-mpfr=${CT_PREFIX_DIR}") CT_DoLog EXTRA "Configuring binutils" CFLAGS="${CT_CFLAGS_FOR_HOST}" \ @@ -86,7 +84,7 @@ do_binutils_target() { done # If GMP and MPFR were configured, then use that - if [ "${CT_BINUTILS_TARGET_USE_GMP_MPFR}" = "y" ]; then + if [ "${CT_COMP_LIBS_TARGET}" = "y" ]; then extra_config+=("--with-gmp=${CT_SYSROOT_DIR}/usr") extra_config+=("--with-mpfr=${CT_SYSROOT_DIR}/usr") fi diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh index 1737b44..fbfb5d4 100644 --- a/scripts/build/cc/gcc.sh +++ b/scripts/build/cc/gcc.sh @@ -150,15 +150,11 @@ do_cc_core() { else extra_config+=("--disable-__cxa_atexit") fi - if [ "${CT_GMP_MPFR}" = "y" ]; then - extra_config+=("--with-gmp=${CT_PREFIX_DIR}") - extra_config+=("--with-mpfr=${CT_PREFIX_DIR}") - fi - if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then - extra_config+=("--with-ppl=${CT_PREFIX_DIR}") - extra_config+=("--with-cloog=${CT_PREFIX_DIR}") - extra_config+=("--with-mpc=${CT_PREFIX_DIR}") - fi + [ -z "${CT_GMP}" ] || extra_config+=("--with-gmp=${CT_PREFIX_DIR}") + [ -z "${CT_MPFR}" ] || extra_config+=("--with-mpfr=${CT_PREFIX_DIR}") + [ -z "${CT_PPL}" ] || extra_config+=("--with-ppl=${CT_PREFIX_DIR}") + [ -z "${CT_CLOOG}" ] || extra_config+=("--with-cloog=${CT_PREFIX_DIR}") + [ -z "${CT_MPC}" ] || extra_config+=("--with-mpc=${CT_PREFIX_DIR}") CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'" @@ -300,18 +296,14 @@ do_cc() { else extra_config+=("--disable-__cxa_atexit") fi - if [ "${CT_GMP_MPFR}" = "y" ]; then - extra_config+=("--with-gmp=${CT_PREFIX_DIR}") - extra_config+=("--with-mpfr=${CT_PREFIX_DIR}") - fi - if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then - extra_config+=("--with-ppl=${CT_PREFIX_DIR}") - extra_config+=("--with-cloog=${CT_PREFIX_DIR}") - extra_config+=("--with-mpc=${CT_PREFIX_DIR}") - fi if [ -n "${CC_ENABLE_CXX_FLAGS}" ]; then extra_config+=("--enable-cxx-flags=${CC_ENABLE_CXX_FLAGS}") fi + [ -z "${CT_GMP}" ] || extra_config+=("--with-gmp=${CT_PREFIX_DIR}") + [ -z "${CT_MPFR}" ] || extra_config+=("--with-mpfr=${CT_PREFIX_DIR}") + [ -z "${CT_PPL}" ] || extra_config+=("--with-ppl=${CT_PREFIX_DIR}") + [ -z "${CT_CLOOG}" ] || extra_config+=("--with-cloog=${CT_PREFIX_DIR}") + [ -z "${CT_MPC}" ] || extra_config+=("--with-mpc=${CT_PREFIX_DIR}") CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'" diff --git a/scripts/build/companion_libs/cloog.sh b/scripts/build/companion_libs/cloog.sh index bfba0f9..f2e0f0f 100644 --- a/scripts/build/companion_libs/cloog.sh +++ b/scripts/build/companion_libs/cloog.sh @@ -8,7 +8,7 @@ do_cloog() { :; } do_cloog_target() { :; } # Overide functions depending on configuration -if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then +if [ "${CT_CLOOG}" = "y" ]; then # Download CLooG do_cloog_get() { @@ -78,4 +78,4 @@ do_cloog() { CT_EndStep } -fi # CT_PPL_CLOOG_MPC +fi # CT_CLOOG diff --git a/scripts/build/companion_libs/gmp.sh b/scripts/build/companion_libs/gmp.sh index 6371b45..2155cb9 100644 --- a/scripts/build/companion_libs/gmp.sh +++ b/scripts/build/companion_libs/gmp.sh @@ -8,7 +8,7 @@ do_gmp() { :; } do_gmp_target() { :; } # Overide functions depending on configuration -if [ "${CT_GMP_MPFR}" = "y" ]; then +if [ "${CT_GMP}" = "y" ]; then # Download GMP do_gmp_get() { @@ -87,6 +87,6 @@ do_gmp_target() { CT_EndStep } -fi # CT_GMP_MPFR_TARGET == y +fi # CT_COMP_LIBS_TARGET == y -fi # CT_GMP_MPFR == y +fi # CT_GMP == y diff --git a/scripts/build/companion_libs/mpc.sh b/scripts/build/companion_libs/mpc.sh index 18144a0..796e798 100644 --- a/scripts/build/companion_libs/mpc.sh +++ b/scripts/build/companion_libs/mpc.sh @@ -8,7 +8,7 @@ do_mpc() { :; } do_mpc_target() { :; } # Overide functions depending on configuration -if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then +if [ "${CT_MPC}" = "y" ]; then # Download MPC do_mpc_get() { @@ -54,4 +54,4 @@ do_mpc() { CT_EndStep } -fi # CT_PPL_CLOOG_MPC +fi # CT_MPC diff --git a/scripts/build/companion_libs/mpfr.sh b/scripts/build/companion_libs/mpfr.sh index dd1a460..b76161a 100644 --- a/scripts/build/companion_libs/mpfr.sh +++ b/scripts/build/companion_libs/mpfr.sh @@ -8,7 +8,7 @@ do_mpfr() { :; } do_mpfr_target() { :; } # Overide function depending on configuration -if [ "${CT_GMP_MPFR}" = "y" ]; then +if [ "${CT_MPFR}" = "y" ]; then # Download MPFR do_mpfr_get() { @@ -145,6 +145,6 @@ do_mpfr_target() { CT_EndStep } -fi # CT_GMP_MPFR_TARGET == y +fi # CT_COMP_LIBS_TARGET == y -fi # CT_GMP_MPFR == y +fi # CT_MPFR == y diff --git a/scripts/build/companion_libs/ppl.sh b/scripts/build/companion_libs/ppl.sh index 4af080b..15312f0 100644 --- a/scripts/build/companion_libs/ppl.sh +++ b/scripts/build/companion_libs/ppl.sh @@ -8,7 +8,7 @@ do_ppl() { :; } do_ppl_target() { :; } # Overide functions depending on configuration -if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then +if [ "${CT_PPL}" = "y" ]; then # Download PPL do_ppl_get() { @@ -68,4 +68,4 @@ do_ppl() { CT_EndStep } -fi # CT_PPL_CLOOG_MPC +fi # CT_PPL diff --git a/scripts/build/debug/300-gdb.sh b/scripts/build/debug/300-gdb.sh index ebe0965..4b90091 100644 --- a/scripts/build/debug/300-gdb.sh +++ b/scripts/build/debug/300-gdb.sh @@ -99,9 +99,8 @@ do_debug_gdb_build() { cd "${CT_BUILD_DIR}/build-gdb-cross" cross_extra_config=("${extra_config[@]}") - if [ "${CT_GMP_MPFR}" = "y" ]; then - cross_extra_config+=("--with-gmp=${CT_PREFIX_DIR}" "--with-mpfr=${CT_PREFIX_DIR}") - fi + [ -z "${CT_GMP}" ] || cross_extra_config+=("--with-gmp=${CT_PREFIX_DIR}") + [ -z "${CT_MPFR}" ] || cross_extra_config+=("--with-mpfr=${CT_PREFIX_DIR}") case "${CT_THREADS}" in none) cross_extra_config+=("--disable-threads");; *) cross_extra_config+=("--enable-threads");; diff --git a/scripts/showSamples.sh b/scripts/showSamples.sh index fb77fdf..e166dc6 100755 --- a/scripts/showSamples.sh +++ b/scripts/showSamples.sh @@ -16,6 +16,7 @@ export GREP_OPTIONS= # Dump a single sample dump_single_sample() { local verbose=0 + local complibs [ "$1" = "-v" ] && verbose=1 && shift [ "$1" = "-w" ] && wiki=1 && shift local width="$1" @@ -38,7 +39,7 @@ dump_single_sample() { ;; esac if [ -z "${wiki}" ]; then - t_width=13 + t_width=14 printf "%-*s [%s" ${width} "${sample}" "${sample_type}" [ -f "${sample_top}/samples/${sample}/broken" ] && printf "B" || printf " " [ "${CT_EXPERIMENTAL}" = "y" ] && printf "X" || printf " " @@ -51,12 +52,18 @@ dump_single_sample() { ;; esac printf " %-*s : %s\n" ${t_width} "OS" "${CT_KERNEL}${CT_KERNEL_VERSION:+-}${CT_KERNEL_VERSION}" - if [ "${CT_GMP_MPFR}" = "y" ]; then - printf " %-*s : %s\n" ${t_width} "GMP/MPFR" "gmp-${CT_GMP_VERSION} / mpfr-${CT_MPFR_VERSION}" - fi - if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then - printf " %-*s : %s\n" ${t_width} "PPL/CLOOG/MPC" "ppl-${CT_PPL_VERSION} / cloog-${CT_CLOOG_VERSION} / mpc-${CT_MPC_VERSION}" + if [ -n "${CT_GMP}" -o -n "${CT_MPFR}" \ + -o -n "${CT_PPL}" -o -n "${CT_CLOOG}" -o -n "${CT_MPC}" \ + ]; then + printf " %-*s :" ${t_width} "Companion libs" + complibs=1 fi + [ -z "${CT_GMP}" ] || printf " gmp-%s" "${CT_GMP_VERSION}" + [ -z "${CT_MPFR}" ] || printf " mpfr-%s" "${CT_MPFR_VERSION}" + [ -z "${CT_PPL}" ] || printf " ppl-%s" "${CT_PPL_VERSION}" + [ -z "${CT_CLOOG}" ] || printf " cloog-ppl-%s" "${CT_CLOOG_VERSION}" + [ -z "${CT_MPC}" ] || printf " mpc-%s" "${CT_MPC_VERSION}" + [ -z "${complibs}" ] || printf "\n" printf " %-*s : %s\n" ${t_width} "binutils" "binutils-${CT_BINUTILS_VERSION}" printf " %-*s : %s" ${t_width} "C compiler" "${CT_CC}-${CT_CC_VERSION} (C" [ "${CT_CC_LANG_CXX}" = "y" ] && printf ",C++" -- cgit v0.10.2-6-g49f6