summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--toolchain/gcc/Config.in19
-rw-r--r--toolchain/gcc/Makefile.in6
-rw-r--r--toolchain/gcc/gcc-uclibc-3.x.mk28
3 files changed, 39 insertions, 14 deletions
diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
index f2f0a56be..80d8b58f7 100644
--- a/toolchain/gcc/Config.in
+++ b/toolchain/gcc/Config.in
@@ -51,12 +51,25 @@ choice
depends !BR2_nios2
bool "gcc 4.1.0"
- config BR2_GCC_VERSION_4_2_0
+ config BR2_GCC_VERSION_4_2
depends !BR2_nios2
- bool "gcc 4.2.0"
+ select BR2_GCC_IS_SNAP
+ bool "gcc 4.2"
endchoice
+config BR2_GCC_IS_SNAP
+ bool
+ default n
+
+config BR2_GCC_SNAP_DATE
+ string "GCC snapshot date"
+ default "20060408"
+ depends BR2_GCC_IS_SNAP
+ help
+ Enter snapshot date to use for gcc. Format is:
+ YYYYMMDD
+
config BR2_GCC_VERSION
string
default "3.3.5" if BR2_GCC_VERSION_3_3_5
@@ -71,7 +84,7 @@ config BR2_GCC_VERSION
default "4.0.2" if BR2_GCC_VERSION_4_0_2
default "4.0.3" if BR2_GCC_VERSION_4_0_3
default "4.1.0" if BR2_GCC_VERSION_4_1_0
- default "4.2.0" if BR2_GCC_VERSION_4_2_0
+ default "4.2" if BR2_GCC_VERSION_4_2
config BR2_GCC_USE_SJLJ_EXCEPTIONS
diff --git a/toolchain/gcc/Makefile.in b/toolchain/gcc/Makefile.in
index 11733c95c..235b86af8 100644
--- a/toolchain/gcc/Makefile.in
+++ b/toolchain/gcc/Makefile.in
@@ -10,6 +10,11 @@ TARGET_OPTIMIZATION:=$(strip $(subst ",, $(BR2_TARGET_OPTIMIZATION)))
#"
EXTRA_GCC_CONFIG_OPTIONS:=$(strip $(subst ",, $(BR2_EXTRA_GCC_CONFIG_OPTIONS)))
#"
+ifeq ($(strip $(subst ",, $(BR2_GCC_IS_SNAP))),y)
+GCC_SNAP_DATE:=$(strip $(subst ",, $(BR2_GCC_SNAP_DATE)))
+else
+GCC_SNAP_DATE:=
+endif
ifeq ($(strip $(BR2_GCC_USE_SJLJ_EXCEPTIONS)),y)
@@ -40,4 +45,3 @@ endif
ifeq ($(strip $(BR2_PACKAGE_GCC_TARGET)),y)
TARGETS+=gcc_target
endif
-
diff --git a/toolchain/gcc/gcc-uclibc-3.x.mk b/toolchain/gcc/gcc-uclibc-3.x.mk
index 44f710004..42532f6f9 100644
--- a/toolchain/gcc/gcc-uclibc-3.x.mk
+++ b/toolchain/gcc/gcc-uclibc-3.x.mk
@@ -17,18 +17,17 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-GCC_VERSION:=$(strip $(GCC_VERSION))
-
+ifeq ($(GCC_SNAP_DATE),)
+GCC_OFFICIAL_VER:=$(GCC_VERSION)
#GCC_SITE:=ftp://ftp.gnu.org/gnu/gcc/gcc-$(GCC_VERSION)
-GCC_SITE:=ftp://ftp.ibiblio.org/pub/mirrors/gnu/ftp/gnu/gcc/gcc-$(GCC_VERSION)
+GCC_SITE:=ftp://ftp.ibiblio.org/pub/mirrors/gnu/ftp/gnu/gcc/gcc-$(GCC_OFFICIAL_VER)
+else
+GCC_OFFICIAL_VER:=$(GCC_VERSION)-$(GCC_SNAP_DATE)
+GCC_SITE:=ftp://sources.redhat.com/pub/gcc/snapshots/$(GCC_OFFICIAL_VER)
+endif
-#
-# snapshots....
-#GCC_VERSION:=3.3-20031013
-#GCC_SITE:=http://gcc.get-software.com/snapshots/$(GCC_VERSION)
-#
-GCC_SOURCE:=gcc-$(GCC_VERSION).tar.bz2
-GCC_DIR:=$(TOOL_BUILD_DIR)/gcc-$(GCC_VERSION)
+GCC_SOURCE:=gcc-$(GCC_OFFICIAL_VER).tar.bz2
+GCC_DIR:=$(TOOL_BUILD_DIR)/gcc-$(GCC_OFFICIAL_VER)
GCC_CAT:=bzcat
GCC_STRIP_HOST_BINARIES:=true
@@ -76,7 +75,16 @@ $(GCC_DIR)/.unpacked: $(DL_DIR)/$(GCC_SOURCE)
$(GCC_DIR)/.patched: $(GCC_DIR)/.unpacked
# Apply any files named gcc-*.patch from the source directory to gcc
+ifeq ($(GCC_SNAP_DATE),)
toolchain/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) \*.patch
+else
+ifneq ($(wildcard toolchain/gcc/$(GCC_OFFICIAL_VER)),)
+ toolchain/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_OFFICIAL_VER) \*.patch
+else
+ toolchain/patch-kernel.sh $(GCC_DIR) toolchain/gcc/$(GCC_VERSION) \*.patch
+endif
+endif
+
# Note: The soft float situation has improved considerably with gcc 3.4.x.
# We can dispense with the custom spec files, as well as libfloat for the arm case.
# However, we still need a patch for arm. There's a similar patch for gcc 3.3.x