cc/gcc: add preliminray support for 4.8
author"Yann E. MORIN" <yann.morin.1998@free.fr>
Sun May 05 17:59:00 2013 +0200 (2013-05-05)
changeset 321715eedf548d33
parent 3216 bfad02f03c75
child 3218 3709e61ad85b
cc/gcc: add preliminray support for 4.8

This means:
- introduce the new symbols for 4.8
- do not always select PPL if graphite is selected

Reported-by: "Plotnikov Dmitry" <leitz@ispras.ru>
[Dmitry did a preliminray patch to add gcc-4.8 support,
which this patch is inspired from]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
config/cc/gcc.in
config/cc/gcc.in.2
scripts/build/cc/gcc.sh
     1.1 --- a/config/cc/gcc.in	Sat May 04 00:08:34 2013 +0200
     1.2 +++ b/config/cc/gcc.in	Sun May 05 17:59:00 2013 +0200
     1.3 @@ -316,9 +316,25 @@
     1.4      bool
     1.5      select CC_GCC_4_6_or_later
     1.6  
     1.7 +config CC_GCC_4_8
     1.8 +    bool
     1.9 +    select CC_GCC_4_8_or_later
    1.10 +    select CC_GCC_USE_GMP_MPFR
    1.11 +    select CC_GCC_USE_MPC
    1.12 +    select CC_GCC_HAS_GRAPHITE
    1.13 +    select CC_GCC_HAS_LTO
    1.14 +    select CC_GCC_HAS_PKGVERSION_BUGURL
    1.15 +    select CC_GCC_HAS_BUILD_ID
    1.16 +    select CC_GCC_HAS_LNK_HASH_STYLE
    1.17 +    select CC_GCC_HAS_LIBQUADMATH
    1.18 +
    1.19 +config CC_GCC_4_8_or_later
    1.20 +    bool
    1.21 +    select CC_GCC_4_7_or_later
    1.22 +
    1.23  config CC_GCC_latest
    1.24      bool
    1.25 -    select CC_GCC_4_7_or_later
    1.26 +    select CC_GCC_4_8_or_later
    1.27      select CC_GCC_USE_GMP_MPFR
    1.28      select CC_GCC_USE_MPC
    1.29      select CC_GCC_HAS_GRAPHITE
    1.30 @@ -331,6 +347,22 @@
    1.31  config CC_GCC_HAS_GRAPHITE
    1.32      bool
    1.33  
    1.34 +# For graphite: gcc 4.4..4.7 need ppl, while 4.8.. need isl
    1.35 +# Prompt in config/cc/gcc.in.2
    1.36 +config CC_GCC_USE_GRAPHITE
    1.37 +    bool
    1.38 +    default y
    1.39 +    depends on CC_GCC_HAS_GRAPHITE
    1.40 +    select CLOOG_NEEDED
    1.41 +    select PPL_NEEDED if !CC_GCC_4_8_or_later
    1.42 +    select ISL_NEEDED if CC_GCC_4_8_or_later
    1.43 +    help
    1.44 +      Enable the GRAPHITE loop optimsations.
    1.45 +      
    1.46 +      On some systems (eg. Cygwin), PPL and/or CLooG (required to enable
    1.47 +      GRAPHITE) may not build properly (yet), so you'll have to say 'N'
    1.48 +      here (or help debug the issues)
    1.49 +
    1.50  # The way LTO works is a bit twisted.
    1.51  # See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
    1.52  # Basically:
    1.53 @@ -342,6 +374,15 @@
    1.54  config CC_GCC_HAS_LTO
    1.55      bool
    1.56  
    1.57 +# Prompt in config/cc/gcc.in.2
    1.58 +config CC_GCC_USE_LTO
    1.59 +    bool
    1.60 +    default y
    1.61 +    depends on CC_GCC_HAS_LTO
    1.62 +    select CC_GCC_USE_LIBELF if CC_GCC_4_5
    1.63 +    help
    1.64 +      Enable the Link Time Optimisations.
    1.65 +
    1.66  config CC_GCC_HAS_PKGVERSION_BUGURL
    1.67      bool
    1.68  
    1.69 @@ -371,9 +412,6 @@
    1.70      select GMP_NEEDED
    1.71      select MPFR_NEEDED
    1.72  
    1.73 -config CC_GCC_USE_PPL_CLOOG
    1.74 -    bool
    1.75 -    select PPL_NEEDED
    1.76      select CLOOG_NEEDED
    1.77  
    1.78  config CC_GCC_USE_MPC
     2.1 --- a/config/cc/gcc.in.2	Sat May 04 00:08:34 2013 +0200
     2.2 +++ b/config/cc/gcc.in.2	Sun May 05 17:59:00 2013 +0200
     2.3 @@ -70,20 +70,9 @@
     2.4  
     2.5  comment "Optimisation features"
     2.6  
     2.7 +# Defined in config/cc/gcc.in
     2.8  config CC_GCC_USE_GRAPHITE
     2.9 -    bool
    2.10      prompt "Enable GRAPHITE loop optimisations"
    2.11 -    default y
    2.12 -    depends on CC_GCC_HAS_GRAPHITE
    2.13 -    select CC_GCC_USE_PPL_CLOOG
    2.14 -    help
    2.15 -      Enable the GRAPHITE loop optimsations.
    2.16 -      
    2.17 -      This requires the PPL and CLooG companion libraries, and
    2.18 -      those will be automatically build for you.
    2.19 -      
    2.20 -      On some systems (eg. Cygwin), PPL and/or CLooG may not
    2.21 -      build properly (yet), so you'll have to say 'N' here.
    2.22  
    2.23  # The way LTO works is a bit twisted.
    2.24  # See: http://gcc.gnu.org/wiki/LinkTimeOptimization#Requirements
    2.25 @@ -95,17 +84,9 @@
    2.26  # advantage of it
    2.27  # Also, only the 4.5 series needs libelf for LTO; 4.6 has dropped
    2.28  # the dependency.
    2.29 +# Defined in config/cc/gcc.in
    2.30  config CC_GCC_USE_LTO
    2.31 -    bool
    2.32      prompt "Enable LTO"
    2.33 -    default y
    2.34 -    depends on CC_GCC_HAS_LTO
    2.35 -    select CC_GCC_USE_LIBELF if CC_GCC_4_5
    2.36 -    help
    2.37 -      Enable the Link Time Optimisations.
    2.38 -      
    2.39 -      This will require the libelf companion library, and it
    2.40 -      wil be build automatically for you.
    2.41  
    2.42  #-----------------------------------------------------------------------------
    2.43  comment "Settings for libraries running on target"
     3.1 --- a/scripts/build/cc/gcc.sh	Sat May 04 00:08:34 2013 +0200
     3.2 +++ b/scripts/build/cc/gcc.sh	Sun May 05 17:59:00 2013 +0200
     3.3 @@ -282,15 +282,21 @@
     3.4          extra_config+=("--with-mpc=${complibs}")
     3.5      fi
     3.6      if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
     3.7 -        extra_config+=("--with-ppl=${complibs}")
     3.8 -        # With PPL 0.11+, also pull libpwl if needed
     3.9 -        if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then
    3.10 -            host_libstdcxx_flags+=("-L${complibs}/lib")
    3.11 -            host_libstdcxx_flags+=("-lpwl")
    3.12 +        if [ "${CT_PPL}" = "y" ]; then
    3.13 +            extra_config+=("--with-ppl=${complibs}")
    3.14 +            # With PPL 0.11+, also pull libpwl if needed
    3.15 +            if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then
    3.16 +                host_libstdcxx_flags+=("-L${complibs}/lib")
    3.17 +                host_libstdcxx_flags+=("-lpwl")
    3.18 +            fi
    3.19 +        fi
    3.20 +        if [ "${CT_ISL}" = "y" ]; then
    3.21 +            extra_config+=("--with-isl=${complibs}")
    3.22          fi
    3.23          extra_config+=("--with-cloog=${complibs}")
    3.24      elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then
    3.25          extra_config+=("--with-ppl=no")
    3.26 +        extra_config+=("--with-isl=no")
    3.27          extra_config+=("--with-cloog=no")
    3.28      fi
    3.29      if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
    3.30 @@ -694,15 +700,21 @@
    3.31          extra_config+=("--with-mpc=${complibs}")
    3.32      fi
    3.33      if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
    3.34 -        extra_config+=("--with-ppl=${complibs}")
    3.35 -        # With PPL 0.11+, also pull libpwl if needed
    3.36 -        if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then
    3.37 -            host_libstdcxx_flags+=("-L${complibs}/lib")
    3.38 -            host_libstdcxx_flags+=("-lpwl")
    3.39 +        if [ "${CT_PPL}" = "y" ]; then
    3.40 +            extra_config+=("--with-ppl=${complibs}")
    3.41 +            # With PPL 0.11+, also pull libpwl if needed
    3.42 +            if [ "${CT_PPL_NEEDS_LIBPWL}" = "y" ]; then
    3.43 +                host_libstdcxx_flags+=("-L${complibs}/lib")
    3.44 +                host_libstdcxx_flags+=("-lpwl")
    3.45 +            fi
    3.46 +        fi
    3.47 +        if [ "${CT_ISL}" = "y" ]; then
    3.48 +            extra_config+=("--with-isl=${complibs}")
    3.49          fi
    3.50          extra_config+=("--with-cloog=${complibs}")
    3.51      elif [ "${CT_CC_GCC_HAS_GRAPHITE}" = "y" ]; then
    3.52          extra_config+=("--with-ppl=no")
    3.53 +        extra_config+=("--with-isl=no")
    3.54          extra_config+=("--with-cloog=no")
    3.55      fi
    3.56      if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then