Patchwork [3,of,6] cc/gcc: Add CUSTOM version and CUSTOM_LOCATION config options and GetCustom

login
register
mail settings
Submitter David Holsgrove
Date Oct. 10, 2012, 6:07 a.m.
Message ID <7748cfa416638a6d2b80.1349849276@localhost.localdomain>
Download mbox | patch
Permalink /patch/190552/
State Superseded
Headers show

Comments

David Holsgrove - Oct. 10, 2012, 6:07 a.m.
# HG changeset patch
# User David Holsgrove <david.holsgrove@xilinx.com>
# Date 1349847854 -36000
# Node ID 7748cfa416638a6d2b808628f6e9a84ed37a89e5
# Parent  b6b1b07f7ab14184f457e907db6269057cdd6126
cc/gcc: Add CUSTOM version and CUSTOM_LOCATION config options and GetCustom

CUSTOM_LOCATION config options only presented in menuconfig if component
CUSTOM version selected.


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

Patch

diff -r b6b1b07f7ab1 -r 7748cfa41663 config/cc/gcc.in
--- a/config/cc/gcc.in	Wed Oct 10 15:44:13 2012 +1000
+++ b/config/cc/gcc.in	Wed Oct 10 15:44:14 2012 +1000
@@ -239,6 +239,12 @@ 
     prompt "3.4.6 (OBSOLETE)"
     depends on OBSOLETE
 
+config CC_CUSTOM
+    bool
+    prompt "Custom gcc"
+    depends on EXPERIMENTAL
+    select CC_GCC_latest
+
 endchoice
 
 if CC_V_SVN
@@ -297,6 +303,18 @@ 
 
 endif
 
+if CC_CUSTOM
+
+config CC_CUSTOM_LOCATION
+    string
+    prompt "full path to custom gcc source"
+    default ""
+    help
+      Enter the path to the directory (or tarball) of your source for gcc,
+      or leave blank to use default CT_CUSTOM_LOCATION_ROOT_DIR/gcc
+
+endif #CC_CUSTOM
+
 config CC_GCC_4_2
     bool
     select CC_GCC_4_2_or_later
@@ -484,6 +502,7 @@ 
     default "4.1.2" if CC_V_4_1_2
     default "4.0.4" if CC_V_4_0_4
     default "3.4.6" if CC_V_3_4_6
+    default "custom" if CC_CUSTOM
 
 config CC_LANG_JAVA_USE_ECJ
     bool
diff -r b6b1b07f7ab1 -r 7748cfa41663 scripts/build/cc/gcc.sh
--- a/scripts/build/cc/gcc.sh	Wed Oct 10 15:44:13 2012 +1000
+++ b/scripts/build/cc/gcc.sh	Wed Oct 10 15:44:14 2012 +1000
@@ -4,7 +4,14 @@ 
 
 # Download gcc
 do_cc_get() {
-    if [ -n "${CT_CC_V_SVN}" ]; then
+    if [ "${CT_CC_CUSTOM}" = "y" ]; then
+        CT_TestAndAbort "Custom gcc: CT_CUSTOM_LOCATION_ROOT_DIR or CT_CC_CUSTOM_LOCATION must be set." \
+        -z "${CT_CUSTOM_LOCATION_ROOT_DIR}" -a -z "${CT_CC_CUSTOM_LOCATION}"
+        if [ -n "${CT_CUSTOM_LOCATION_ROOT_DIR}" -a -z "${CT_CC_CUSTOM_LOCATION}" ]; then
+            CT_CC_CUSTOM_LOCATION="${CT_CUSTOM_LOCATION_ROOT_DIR}/gcc"
+        fi
+        CT_GetCustom "gcc-${CT_CC_VERSION}" "${CT_CC_CUSTOM_LOCATION}"
+    elif [ -n "${CT_CC_V_SVN}" ]; then
         # Get gcc from SVN!
         local svn_base
 
@@ -59,7 +66,10 @@ 
 
 # Extract gcc
 do_cc_extract() {
-    CT_Extract "gcc-${CT_CC_VERSION}"
+    if [ "${CT_CC_CUSTOM}" != "y" \
+         -o ! -d "${CT_CC_CUSTOM_LOCATION}" ]; then
+        CT_Extract "gcc-${CT_CC_VERSION}"
+    fi
     CT_Patch "gcc" "${CT_CC_VERSION}"
 
     # Copy ecj-latest.jar to ecj.jar at the top of the GCC source tree