summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/cc/gcc.in19
-rw-r--r--scripts/build/cc/gcc.sh10
2 files changed, 28 insertions, 1 deletions
diff --git a/config/cc/gcc.in b/config/cc/gcc.in
index 8875ba2..15b2d46 100644
--- a/config/cc/gcc.in
+++ b/config/cc/gcc.in
@@ -239,6 +239,12 @@ config CC_V_3_4_6
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 @@ config GCC_CHECKOUT
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 @@ config CC_VERSION
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 --git a/scripts/build/cc/gcc.sh b/scripts/build/cc/gcc.sh
index dce77e9..70f38a6 100644
--- a/scripts/build/cc/gcc.sh
+++ b/scripts/build/cc/gcc.sh
@@ -4,7 +4,9 @@
# Download gcc
do_cc_get() {
- if [ -n "${CT_CC_V_SVN}" ]; then
+ if [ "${CT_CC_CUSTOM}" = "y" ]; then
+ 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,6 +61,12 @@ do_cc_get() {
# Extract gcc
do_cc_extract() {
+ # If using custom directory location, nothing to do
+ if [ "${CT_CC_CUSTOM}" = "y" \
+ -a -d "${CT_SRC_DIR}/gcc-${CT_CC_VERSION}" ]; then
+ return 0
+ fi
+
CT_Extract "gcc-${CT_CC_VERSION}"
CT_Patch "gcc" "${CT_CC_VERSION}"