[PATCH 2 of 3] cc/gcc: do not force use of non-vital companion libraries

Yann E. MORIN yann.morin.1998@anciens.enib.fr
Sun Sep 12 21:57:00 GMT 2010


# HG changeset patch
# User "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
# Date 1284317694 -7200
# Node ID 9a1f6abd5e3808b70d0c8e1a34b983e01cb4c5d9
# Parent  9a0470c96928832f97366bde032fba78f95586f1
cc/gcc: do not force use of non-vital companion libraries

While GMP and MPFR are required by gcc>=4.3 (to build the frontends),
and MPC is required by gcc>=4.5, the other libs are not. If they are
present then gcc will enable advanced features; if they are missing,
then gcc will (should) simply disable those features.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>

diff --git a/config/cc/gcc.in b/config/cc/gcc.in
--- a/config/cc/gcc.in
+++ b/config/cc/gcc.in
@@ -136,13 +136,22 @@
     bool
     default n
     select CC_GCC_4_3_or_later
-    select CC_GCC_USE_PPL_CLOOG
+    select CC_GCC_HAS_GRAPHITE
 
 config CC_GCC_4_5_or_later
     bool
     default n
     select CC_GCC_4_4_or_later
-    select CC_GCC_USE_MPC_LIBELF
+    select CC_GCC_USE_MPC
+    select CC_GCC_HAS_LTO
+
+config CC_GCC_HAS_GRAPHITE
+    bool
+    default n
+
+config CC_GCC_HAS_LTO
+    bool
+    default n
 
 config CC_GCC_USE_GMP_MPFR
     bool
@@ -156,10 +165,14 @@
     select PPL
     select CLOOG
 
-config CC_GCC_USE_MPC_LIBELF
+config CC_GCC_USE_MPC
     bool
     default n
     select MPC
+
+config CC_GCC_USE_LIBELF
+    bool
+    default n
     select LIBELF
 
 config CC_VERSION
diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2
--- a/config/cc/gcc.in.2
+++ b/config/cc/gcc.in.2
@@ -7,6 +7,33 @@
       
       This will compile crossgcc's libs with -Os.
 
+config CC_GCC_USE_GRAPHITE
+    bool
+    prompt "Enable GRAPHITE loop optimisations"
+    default y
+    depends on CC_GCC_HAS_GRAPHITE
+    select CC_GCC_USE_PPL_CLOOG
+    help
+      Enable the GRAPHITE loop optimsations.
+      
+      This requires the PPL and CLooG companion libraries, and
+      those will be automatically build for you.
+      
+      On some systems (eg. Cygwin), PPL and/or CLooG may not
+      build properly (yet), so you'll have to say 'N' here.
+
+config CC_GCC_USE_LTO
+    bool
+    prompt "Enable LTO"
+    default y
+    depends on CC_GCC_HAS_LTO
+    select CC_GCC_USE_LIBELF
+    help
+      Enable the Link Time Optimisations.
+      
+      This will require the libelf companion library, and it
+      wil be build automatically for you.
+
 config CC_STATIC_LIBSTDCXX
     bool
     prompt "Link libstdc++ statically into the gcc binary"
diff --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh
--- a/scripts/build/cc/gcc.sh
+++ b/scripts/build/cc/gcc.sh
@@ -169,12 +169,14 @@
         extra_config+=("--with-gmp=${CT_COMPLIBS_DIR}")
         extra_config+=("--with-mpfr=${CT_COMPLIBS_DIR}")
     fi
-    if [ "${CT_CC_GCC_USE_PPL_CLOOG}" = "y" ]; then
+    if [ "${CT_CC_GCC_USE_MPC}" = "y" ]; then
+        extra_config+=("--with-mpc=${CT_COMPLIBS_DIR}")
+    fi
+    if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
         extra_config+=("--with-ppl=${CT_COMPLIBS_DIR}")
         extra_config+=("--with-cloog=${CT_COMPLIBS_DIR}")
     fi
-    if [ "${CT_CC_GCC_USE_MPC_LIBELF}" = "y" ]; then
-        extra_config+=("--with-mpc=${CT_COMPLIBS_DIR}")
+    if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
         extra_config+=("--with-libelf=${CT_COMPLIBS_DIR}")
     fi
 
@@ -365,12 +367,14 @@
         extra_config+=("--with-gmp=${CT_COMPLIBS_DIR}")
         extra_config+=("--with-mpfr=${CT_COMPLIBS_DIR}")
     fi
-    if [ "${CT_CC_GCC_USE_PPL_CLOOG}" = "y" ]; then
+    if [ "${CT_CC_GCC_USE_MPC}" = "y" ]; then
+        extra_config+=("--with-mpc=${CT_COMPLIBS_DIR}")
+    fi
+    if [ "${CT_CC_GCC_USE_GRAPHITE}" = "y" ]; then
         extra_config+=("--with-ppl=${CT_COMPLIBS_DIR}")
         extra_config+=("--with-cloog=${CT_COMPLIBS_DIR}")
     fi
-    if [ "${CT_CC_GCC_USE_MPC_LIBELF}" = "y" ]; then
-        extra_config+=("--with-mpc=${CT_COMPLIBS_DIR}")
+    if [ "${CT_CC_GCC_USE_LTO}" = "y" ]; then
         extra_config+=("--with-libelf=${CT_COMPLIBS_DIR}")
     fi
 



--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list