cc/gcc: disable complibs if not selected
author"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 12 23:51:25 2010 +0200 (2010-09-12)
changeset 2123ff2181adbd28
parent 2122 eb837be50f8f
child 2124 5dd0b83ae528
cc/gcc: disable complibs if not selected

Force gcc to not link with some companion libraries when
there are not needed (because selected-out).

There is no option to tell gcc *not* to build the Graphite and/or
LTO stuff. They *will* be built if gcc finds the suitable companion
libraries. If we do not provide them, but the host has them, then
gcc *will* find them, and link with them.

Consider the following:
- host has suitable PPL and CLooG (eg. Debian Squeeze)
- user wants to build gcc>=4.4
- user de-selects GRAPHITE
- gcc will find the hosts PPL and CLooG, and will use them
- the user moves the toolchain to an older host that does
not have them (eg. Debian Lenny)
- the toolchain fails, when it was properly setup not to

So, explicitly tell gcc *not* to use unneeded companion libs.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
scripts/build/cc/gcc.sh
     1.1 --- a/scripts/build/cc/gcc.sh	Sun Sep 12 20:54:54 2010 +0200
     1.2 +++ b/scripts/build/cc/gcc.sh	Sun Sep 12 23:51:25 2010 +0200
     1.3 @@ -175,9 +175,14 @@
     1.4      if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
     1.5          extra_config+=("--with-ppl=${CT_COMPLIBS_DIR}")
     1.6          extra_config+=("--with-cloog=${CT_COMPLIBS_DIR}")
     1.7 +    elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then
     1.8 +        extra_config+=("--with-ppl=no")
     1.9 +        extra_config+=("--with-cloog=no")
    1.10      fi
    1.11      if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
    1.12          extra_config+=("--with-libelf=${CT_COMPLIBS_DIR}")
    1.13 +    elif [ "${CT_CC_GCC_HAS_LTO}" = "y" ]; then
    1.14 +        extra_config+=("--with-libelf=no")
    1.15      fi
    1.16  
    1.17      if [ "${CT_CC_GCC_ENABLE_TARGET_OPTSPACE}" = "y" ]; then
    1.18 @@ -373,9 +378,14 @@
    1.19      if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
    1.20          extra_config+=("--with-ppl=${CT_COMPLIBS_DIR}")
    1.21          extra_config+=("--with-cloog=${CT_COMPLIBS_DIR}")
    1.22 +    elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then
    1.23 +        extra_config+=("--with-ppl=no")
    1.24 +        extra_config+=("--with-cloog=no")
    1.25      fi
    1.26      if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
    1.27          extra_config+=("--with-libelf=${CT_COMPLIBS_DIR}")
    1.28 +    elif [ "${CT_CC_GCC_HAS_LTO}" = "y" ]; then
    1.29 +        extra_config+=("--with-libelf=no")
    1.30      fi
    1.31  
    1.32      if [ "${CT_THREADS}" = "none" ]; then