diff --git a/toolchain/gcc/Config.in b/toolchain/gcc/Config.in
index 019cd164b766f68ebdd0c842d6c2de0eb1493601..2b42f932df7f08673a45ce00efd795ccfb84db16 100644
--- a/toolchain/gcc/Config.in
+++ b/toolchain/gcc/Config.in
@@ -8,7 +8,7 @@ choice
 	default GCC_VERSION_4_3_3_CS if (mips || mipsel) && !(TARGET_octeon || TARGET_sibyte)
 	default GCC_VERSION_4_4_5 if (powerpc || ubicom32)
 	default GCC_VERSION_4_4_5 if (TARGET_omap35xx || TARGET_octeon || TARGET_sibyte)
-	default GCC_VERSION_4_5_1_LINARO
+	default GCC_VERSION_LINARO
 	help
 	  Select the version of gcc you wish to use.
 
@@ -21,8 +21,8 @@ choice
 	config GCC_VERSION_4_5_2
 		bool "gcc 4.5.2"
 
-	config GCC_VERSION_4_5_1_LINARO
-		bool "gcc 4.5.1 with Linaro enhancements"
+	config GCC_VERSION_LINARO
+		bool "gcc 4.5.2 with Linaro enhancements"
 
 	config GCC_VERSION_LLVM
 		bool "llvm-gcc 4.2"
diff --git a/toolchain/gcc/Config.version b/toolchain/gcc/Config.version
index ad7321829143827539692d01b9b22225a0d7dffa..26081b99370a064ae6ca93ad81798ad012259973 100644
--- a/toolchain/gcc/Config.version
+++ b/toolchain/gcc/Config.version
@@ -5,9 +5,9 @@ config GCC_VERSION
 	default "4.4.1+cs"  if GCC_VERSION_4_4_1_CS
 	default "4.4.5"	    if GCC_VERSION_4_4_5
 	default "4.5.2"	    if GCC_VERSION_4_5_2
-	default "4.5.1+l"   if GCC_VERSION_4_5_1_LINARO
+	default "linaro"    if GCC_VERSION_LINARO
 	default "llvm"	    if GCC_VERSION_LLVM
-	default "4.5.1+l"
+	default "linaro"
 
 config GCC_VERSION_4_3
 	bool
@@ -22,7 +22,7 @@ config GCC_VERSION_4_4
 config GCC_VERSION_4_5
 	bool
 	default y       if GCC_VERSION_4_5_2
-	default y       if GCC_VERSION_4_5_1_LINARO
+	default y       if GCC_VERSION_LINARO
 
 if !TOOLCHAINOPTS
 
@@ -43,7 +43,7 @@ if !TOOLCHAINOPTS
 		default y if powerpc
 		default y if ubicom32
 
-	config GCC_VERSION_4_5_1_LINARO
+	config GCC_VERSION_LINARO
 		default y
 
 endif
diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk
index 43ffb475532cc01bc9725aca4b9536d5b262c561..0f22e4102140e11b109b54d876315fc4fc0f9efc 100644
--- a/toolchain/gcc/common.mk
+++ b/toolchain/gcc/common.mk
@@ -36,12 +36,12 @@ ifdef CONFIG_GCC_VERSION_LLVM
   PKG_SOURCE_SUBDIR:=$(GCC_DIR)
   HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(GCC_DIR)
 else
-ifeq ($(CONFIG_GCC_VERSION),"4.5.1+l")
-    PKG_REV:=4.5-2010.12-0
+ifeq ($(CONFIG_GCC_VERSION),"linaro")
+    PKG_REV:=4.5-2011.02-0
     PKG_VERSION:=4.5.2
-    PKG_SOURCE_URL:=http://launchpad.net/gcc-linaro/4.5/4.5-2010.12-0/+download/
+    PKG_SOURCE_URL:=http://launchpad.net/gcc-linaro/4.5/4.5-2011.02-0/+download/
     PKG_SOURCE:=$(PKG_NAME)-linaro-$(PKG_REV).tar.bz2
-    PKG_MD5SUM:=a01e511fd1a3b42b54d239b393f740fe
+    PKG_MD5SUM:=d93199c1296e053f57fcc7888b54d488
     GCC_DIR:=gcc-linaro-$(PKG_REV)
     HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(GCC_DIR)
 else
diff --git a/toolchain/gcc/patches/4.5.1+l/002-fix_pr44392.patch b/toolchain/gcc/patches/4.5.1+l/002-fix_pr44392.patch
deleted file mode 100644
index 4ae6f1655b55c3e8021301558759db4acc5830df..0000000000000000000000000000000000000000
--- a/toolchain/gcc/patches/4.5.1+l/002-fix_pr44392.patch
+++ /dev/null
@@ -1,65 +0,0 @@
->From d0557763b0713a4c006bd2405eede3924569cafd Mon Sep 17 00:00:00 2001
-From: Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
-Date: Mon, 5 Jul 2010 11:28:49 +0100
-Subject: [PATCH 2/2] Fix PR44392
-
----
- gcc/config/arm/arm.md |   43 +++++++++++++++++++------------------------
- 1 files changed, 19 insertions(+), 24 deletions(-)
-
---- a/gcc/config/arm/arm.md
-+++ b/gcc/config/arm/arm.md
-@@ -11523,34 +11523,29 @@
- (define_expand "bswapsi2"
-   [(set (match_operand:SI 0 "s_register_operand" "=r")
-   	(bswap:SI (match_operand:SI 1 "s_register_operand" "r")))]
--"TARGET_EITHER"
-+"TARGET_EITHER && (arm_arch6 || !optimize_size)"
- "
--  if (!arm_arch6)
--    {
--      if (!optimize_size)
--	{
--	  rtx op2 = gen_reg_rtx (SImode);
--	  rtx op3 = gen_reg_rtx (SImode);
-+    if (!arm_arch6)
-+      {
-+	rtx op2 = gen_reg_rtx (SImode);
-+	rtx op3 = gen_reg_rtx (SImode);
- 
--	  if (TARGET_THUMB)
--	    {
--	      rtx op4 = gen_reg_rtx (SImode);
--	      rtx op5 = gen_reg_rtx (SImode);
-+	if (TARGET_THUMB)
-+	  {
-+	    rtx op4 = gen_reg_rtx (SImode);
-+	    rtx op5 = gen_reg_rtx (SImode);
- 
--	      emit_insn (gen_thumb_legacy_rev (operands[0], operands[1],
--					       op2, op3, op4, op5));
--	    }
--	  else
--	    {
--	      emit_insn (gen_arm_legacy_rev (operands[0], operands[1],
--					     op2, op3));
--	    }
-+	    emit_insn (gen_thumb_legacy_rev (operands[0], operands[1],
-+					     op2, op3, op4, op5));
-+	  }
-+	else
-+	  {
-+	    emit_insn (gen_arm_legacy_rev (operands[0], operands[1],
-+					   op2, op3));
-+	  }
- 
--	  DONE;
--	}
--      else
--	FAIL;
--    }
-+	DONE;
-+      }
-   "
- )
- 
diff --git a/toolchain/gcc/patches/4.5.1+l/100-uclibc-conf.patch b/toolchain/gcc/patches/linaro/100-uclibc-conf.patch
similarity index 100%
rename from toolchain/gcc/patches/4.5.1+l/100-uclibc-conf.patch
rename to toolchain/gcc/patches/linaro/100-uclibc-conf.patch
diff --git a/toolchain/gcc/patches/4.5.1+l/301-missing-execinfo_h.patch b/toolchain/gcc/patches/linaro/301-missing-execinfo_h.patch
similarity index 100%
rename from toolchain/gcc/patches/4.5.1+l/301-missing-execinfo_h.patch
rename to toolchain/gcc/patches/linaro/301-missing-execinfo_h.patch
diff --git a/toolchain/gcc/patches/4.5.1+l/302-c99-snprintf.patch b/toolchain/gcc/patches/linaro/302-c99-snprintf.patch
similarity index 100%
rename from toolchain/gcc/patches/4.5.1+l/302-c99-snprintf.patch
rename to toolchain/gcc/patches/linaro/302-c99-snprintf.patch
diff --git a/toolchain/gcc/patches/4.5.1+l/305-libmudflap-susv3-legacy.patch b/toolchain/gcc/patches/linaro/305-libmudflap-susv3-legacy.patch
similarity index 100%
rename from toolchain/gcc/patches/4.5.1+l/305-libmudflap-susv3-legacy.patch
rename to toolchain/gcc/patches/linaro/305-libmudflap-susv3-legacy.patch
diff --git a/toolchain/gcc/patches/4.5.1+l/600-ubicom_support.patch b/toolchain/gcc/patches/linaro/600-ubicom_support.patch
similarity index 100%
rename from toolchain/gcc/patches/4.5.1+l/600-ubicom_support.patch
rename to toolchain/gcc/patches/linaro/600-ubicom_support.patch
diff --git a/toolchain/gcc/patches/4.5.1+l/810-arm-softfloat-libgcc.patch b/toolchain/gcc/patches/linaro/810-arm-softfloat-libgcc.patch
similarity index 100%
rename from toolchain/gcc/patches/4.5.1+l/810-arm-softfloat-libgcc.patch
rename to toolchain/gcc/patches/linaro/810-arm-softfloat-libgcc.patch
diff --git a/toolchain/gcc/patches/4.5.1+l/820-libgcc_pic.patch b/toolchain/gcc/patches/linaro/820-libgcc_pic.patch
similarity index 100%
rename from toolchain/gcc/patches/4.5.1+l/820-libgcc_pic.patch
rename to toolchain/gcc/patches/linaro/820-libgcc_pic.patch
diff --git a/toolchain/gcc/patches/4.5.1+l/830-arm_unbreak_armv4t.patch b/toolchain/gcc/patches/linaro/830-arm_unbreak_armv4t.patch
similarity index 100%
rename from toolchain/gcc/patches/4.5.1+l/830-arm_unbreak_armv4t.patch
rename to toolchain/gcc/patches/linaro/830-arm_unbreak_armv4t.patch
diff --git a/toolchain/gcc/patches/4.5.1+l/840-armv4_pass_fix-v4bx_to_ld.patch b/toolchain/gcc/patches/linaro/840-armv4_pass_fix-v4bx_to_ld.patch
similarity index 100%
rename from toolchain/gcc/patches/4.5.1+l/840-armv4_pass_fix-v4bx_to_ld.patch
rename to toolchain/gcc/patches/linaro/840-armv4_pass_fix-v4bx_to_ld.patch
diff --git a/toolchain/gcc/patches/4.5.1+l/910-mbsd_multi.patch b/toolchain/gcc/patches/linaro/910-mbsd_multi.patch
similarity index 96%
rename from toolchain/gcc/patches/4.5.1+l/910-mbsd_multi.patch
rename to toolchain/gcc/patches/linaro/910-mbsd_multi.patch
index 647254adb7fcb6aa9d5410c601d4d982ee209f22..ba82c5d5ba196aaf6344555bd774485c769dd86b 100644
--- a/toolchain/gcc/patches/4.5.1+l/910-mbsd_multi.patch
+++ b/toolchain/gcc/patches/linaro/910-mbsd_multi.patch
@@ -157,7 +157,7 @@
    flag_reorder_blocks = opt2;
    flag_reorder_functions = opt2;
    flag_tree_vrp = opt2;
-@@ -919,6 +917,8 @@ decode_options (unsigned int argc, const
+@@ -920,6 +918,8 @@ decode_options (unsigned int argc, const
  
    /* -O3 optimizations.  */
    opt3 = (optimize >= 3);
@@ -166,7 +166,7 @@
    flag_predictive_commoning = opt3;
    flag_inline_functions = opt3;
    flag_unswitch_loops = opt3;
-@@ -1647,6 +1647,17 @@ common_handle_option (size_t scode, cons
+@@ -1648,6 +1648,17 @@ common_handle_option (size_t scode, cons
        enable_warning_as_error (arg, value, lang_mask);
        break;
  
@@ -209,7 +209,7 @@
  -Wfatal-errors  -Wfloat-equal  -Wformat  -Wformat=2 @gol
  -Wno-format-contains-nul -Wno-format-extra-args -Wformat-nonliteral @gol
  -Wformat-security  -Wformat-y2k @gol
-@@ -4358,6 +4358,22 @@ This option is only supported for C and
+@@ -4359,6 +4359,22 @@ This option is only supported for C and
  @option{-Wall} and by @option{-pedantic}, which can be disabled with
  @option{-Wno-pointer-sign}.
  
@@ -232,7 +232,7 @@
  @item -Wstack-protector
  @opindex Wstack-protector
  @opindex Wno-stack-protector
-@@ -6110,7 +6126,7 @@ so, the first branch is redirected to ei
+@@ -6112,7 +6128,7 @@ so, the first branch is redirected to ei
  second branch or a point immediately following it, depending on whether
  the condition is known to be true or false.
  
diff --git a/toolchain/gcc/patches/4.5.1+l/993-arm_insn-opinit-RTX_CODE-fixup.patch b/toolchain/gcc/patches/linaro/993-arm_insn-opinit-RTX_CODE-fixup.patch
similarity index 100%
rename from toolchain/gcc/patches/4.5.1+l/993-arm_insn-opinit-RTX_CODE-fixup.patch
rename to toolchain/gcc/patches/linaro/993-arm_insn-opinit-RTX_CODE-fixup.patch
diff --git a/toolchain/gcc/patches/4.5.1+l/999-coldfire.patch b/toolchain/gcc/patches/linaro/999-coldfire.patch
similarity index 100%
rename from toolchain/gcc/patches/4.5.1+l/999-coldfire.patch
rename to toolchain/gcc/patches/linaro/999-coldfire.patch