diff --git a/toolchain/gcc/Config.version b/toolchain/gcc/Config.version
index 27aa20cb394a99d612b652af590db0a86003b60f..2eefd37d5a672ceb685ed36a60d1bbe757a40deb 100644
--- a/toolchain/gcc/Config.version
+++ b/toolchain/gcc/Config.version
@@ -5,7 +5,7 @@ config GCC_VERSION_4_8_ARC
 config GCC_VERSION
 	string
 	default "arc-2016.03"   if GCC_VERSION_4_8_ARC
-	default "6.2.0"         if GCC_USE_VERSION_6
+	default "6.3.0"         if GCC_USE_VERSION_6
 	default "5.4.0"
 
 config GCC_VERSION_4_8
diff --git a/toolchain/gcc/common.mk b/toolchain/gcc/common.mk
index c1010dd0c9d2abfd5ed14c6703a7d28172aab66e..fce8a5165ca9b835d5e7cc0fdcc9d5d24a641875 100644
--- a/toolchain/gcc/common.mk
+++ b/toolchain/gcc/common.mk
@@ -32,8 +32,8 @@ ifeq ($(PKG_VERSION),5.4.0)
   PKG_HASH:=608df76dec2d34de6558249d8af4cbee21eceddbcb580d666f7a5a583ca3303a
 endif
 
-ifeq ($(PKG_VERSION),6.2.0)
-  PKG_HASH:=9944589fc722d3e66308c0ce5257788ebd7872982a718aa2516123940671b7c5
+ifeq ($(PKG_VERSION),6.3.0)
+  PKG_HASH:=f06ae7f3f790fbf0f018f6d40e844451e6bc3b7bc96e128e63b09825c1f8b29f
 endif
 
 ifneq ($(CONFIG_GCC_VERSION_4_8_ARC),)
diff --git a/toolchain/gcc/patches/6.2.0/001-revert_register_mode_search.patch b/toolchain/gcc/patches/6.3.0/001-revert_register_mode_search.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/001-revert_register_mode_search.patch
rename to toolchain/gcc/patches/6.3.0/001-revert_register_mode_search.patch
diff --git a/toolchain/gcc/patches/6.2.0/002-case_insensitive.patch b/toolchain/gcc/patches/6.3.0/002-case_insensitive.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/002-case_insensitive.patch
rename to toolchain/gcc/patches/6.3.0/002-case_insensitive.patch
diff --git a/toolchain/gcc/patches/6.2.0/010-documentation.patch b/toolchain/gcc/patches/6.3.0/010-documentation.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/010-documentation.patch
rename to toolchain/gcc/patches/6.3.0/010-documentation.patch
diff --git a/toolchain/gcc/patches/6.2.0/100-uclibc-conf.patch b/toolchain/gcc/patches/6.3.0/100-uclibc-conf.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/100-uclibc-conf.patch
rename to toolchain/gcc/patches/6.3.0/100-uclibc-conf.patch
diff --git a/toolchain/gcc/patches/6.2.0/230-musl_libssp.patch b/toolchain/gcc/patches/6.3.0/230-musl_libssp.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/230-musl_libssp.patch
rename to toolchain/gcc/patches/6.3.0/230-musl_libssp.patch
diff --git a/toolchain/gcc/patches/6.2.0/280-musl-disable-ifunc-by-default.patch b/toolchain/gcc/patches/6.3.0/280-musl-disable-ifunc-by-default.patch
similarity index 81%
rename from toolchain/gcc/patches/6.2.0/280-musl-disable-ifunc-by-default.patch
rename to toolchain/gcc/patches/6.3.0/280-musl-disable-ifunc-by-default.patch
index af5acf8cc9078d26058e290e4476b9f1eb6bf7cf..df09e4f63663173358e54286df3044e211195f36 100644
--- a/toolchain/gcc/patches/6.2.0/280-musl-disable-ifunc-by-default.patch
+++ b/toolchain/gcc/patches/6.3.0/280-musl-disable-ifunc-by-default.patch
@@ -14,11 +14,9 @@ git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@239859 138bc75d-0d04-0410-961f-8
  gcc/config.gcc | 4 ++--
  2 files changed, 6 insertions(+), 2 deletions(-)
 
-diff --git a/gcc/config.gcc b/gcc/config.gcc
-index 8827dc8..e544d76 100644
 --- a/gcc/config.gcc
 +++ b/gcc/config.gcc
-@@ -1465,7 +1465,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfreebsd*-gnu | i[34567]86-*-gnu* | i[34567]8
+@@ -1495,7 +1495,7 @@ i[34567]86-*-linux* | i[34567]86-*-kfree
  		extra_options="${extra_options} linux-android.opt"
  		# Assume modern glibc if not targeting Android nor uclibc.
  		case ${target} in
@@ -27,7 +25,7 @@ index 8827dc8..e544d76 100644
  		  ;;
  		*)
  		  default_gnu_indirect_function=yes
-@@ -1531,7 +1531,7 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu)
+@@ -1564,7 +1564,7 @@ x86_64-*-linux* | x86_64-*-kfreebsd*-gnu
  		extra_options="${extra_options} linux-android.opt"
  		# Assume modern glibc if not targeting Android nor uclibc.
  		case ${target} in
diff --git a/toolchain/gcc/patches/6.2.0/300-mips_Os_cpu_rtx_cost_model.patch b/toolchain/gcc/patches/6.3.0/300-mips_Os_cpu_rtx_cost_model.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/300-mips_Os_cpu_rtx_cost_model.patch
rename to toolchain/gcc/patches/6.3.0/300-mips_Os_cpu_rtx_cost_model.patch
diff --git a/toolchain/gcc/patches/6.2.0/800-arm_v5te_no_ldrd_strd.patch b/toolchain/gcc/patches/6.3.0/800-arm_v5te_no_ldrd_strd.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/800-arm_v5te_no_ldrd_strd.patch
rename to toolchain/gcc/patches/6.3.0/800-arm_v5te_no_ldrd_strd.patch
diff --git a/toolchain/gcc/patches/6.2.0/810-arm-softfloat-libgcc.patch b/toolchain/gcc/patches/6.3.0/810-arm-softfloat-libgcc.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/810-arm-softfloat-libgcc.patch
rename to toolchain/gcc/patches/6.3.0/810-arm-softfloat-libgcc.patch
diff --git a/toolchain/gcc/patches/6.2.0/820-libgcc_pic.patch b/toolchain/gcc/patches/6.3.0/820-libgcc_pic.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/820-libgcc_pic.patch
rename to toolchain/gcc/patches/6.3.0/820-libgcc_pic.patch
diff --git a/toolchain/gcc/patches/6.2.0/830-arm_unbreak_armv4t.patch b/toolchain/gcc/patches/6.3.0/830-arm_unbreak_armv4t.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/830-arm_unbreak_armv4t.patch
rename to toolchain/gcc/patches/6.3.0/830-arm_unbreak_armv4t.patch
diff --git a/toolchain/gcc/patches/6.2.0/840-armv4_pass_fix-v4bx_to_ld.patch b/toolchain/gcc/patches/6.3.0/840-armv4_pass_fix-v4bx_to_ld.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/840-armv4_pass_fix-v4bx_to_ld.patch
rename to toolchain/gcc/patches/6.3.0/840-armv4_pass_fix-v4bx_to_ld.patch
diff --git a/toolchain/gcc/patches/6.2.0/850-use_shared_libgcc.patch b/toolchain/gcc/patches/6.3.0/850-use_shared_libgcc.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/850-use_shared_libgcc.patch
rename to toolchain/gcc/patches/6.3.0/850-use_shared_libgcc.patch
diff --git a/toolchain/gcc/patches/6.2.0/851-libgcc_no_compat.patch b/toolchain/gcc/patches/6.3.0/851-libgcc_no_compat.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/851-libgcc_no_compat.patch
rename to toolchain/gcc/patches/6.3.0/851-libgcc_no_compat.patch
diff --git a/toolchain/gcc/patches/6.2.0/870-ppc_no_crtsavres.patch b/toolchain/gcc/patches/6.3.0/870-ppc_no_crtsavres.patch
similarity index 84%
rename from toolchain/gcc/patches/6.2.0/870-ppc_no_crtsavres.patch
rename to toolchain/gcc/patches/6.3.0/870-ppc_no_crtsavres.patch
index c1eaf975c35d8e58e109fbfac71e4cd942130c3e..9e543a0fc20150b66f9712c785cfa7429502c608 100644
--- a/toolchain/gcc/patches/6.2.0/870-ppc_no_crtsavres.patch
+++ b/toolchain/gcc/patches/6.3.0/870-ppc_no_crtsavres.patch
@@ -1,6 +1,6 @@
 --- a/gcc/config/rs6000/rs6000.c
 +++ b/gcc/config/rs6000/rs6000.c
-@@ -24141,7 +24141,7 @@ rs6000_savres_strategy (rs6000_stack_t *
+@@ -24171,7 +24171,7 @@ rs6000_savres_strategy (rs6000_stack_t *
    /* Define cutoff for using out-of-line functions to save registers.  */
    if (DEFAULT_ABI == ABI_V4 || TARGET_ELF)
      {
diff --git a/toolchain/gcc/patches/6.2.0/880-no_java_section.patch b/toolchain/gcc/patches/6.3.0/880-no_java_section.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/880-no_java_section.patch
rename to toolchain/gcc/patches/6.3.0/880-no_java_section.patch
diff --git a/toolchain/gcc/patches/6.2.0/881-no_tm_section.patch b/toolchain/gcc/patches/6.3.0/881-no_tm_section.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/881-no_tm_section.patch
rename to toolchain/gcc/patches/6.3.0/881-no_tm_section.patch
diff --git a/toolchain/gcc/patches/6.2.0/900-bad-mips16-crt.patch b/toolchain/gcc/patches/6.3.0/900-bad-mips16-crt.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/900-bad-mips16-crt.patch
rename to toolchain/gcc/patches/6.3.0/900-bad-mips16-crt.patch
diff --git a/toolchain/gcc/patches/6.2.0/910-mbsd_multi.patch b/toolchain/gcc/patches/6.3.0/910-mbsd_multi.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/910-mbsd_multi.patch
rename to toolchain/gcc/patches/6.3.0/910-mbsd_multi.patch
diff --git a/toolchain/gcc/patches/6.2.0/920-specs_nonfatal_getenv.patch b/toolchain/gcc/patches/6.3.0/920-specs_nonfatal_getenv.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/920-specs_nonfatal_getenv.patch
rename to toolchain/gcc/patches/6.3.0/920-specs_nonfatal_getenv.patch
diff --git a/toolchain/gcc/patches/6.2.0/930-fix-mips-noexecstack.patch b/toolchain/gcc/patches/6.3.0/930-fix-mips-noexecstack.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/930-fix-mips-noexecstack.patch
rename to toolchain/gcc/patches/6.3.0/930-fix-mips-noexecstack.patch
diff --git a/toolchain/gcc/patches/6.2.0/940-no-clobber-stamp-bits.patch b/toolchain/gcc/patches/6.3.0/940-no-clobber-stamp-bits.patch
similarity index 87%
rename from toolchain/gcc/patches/6.2.0/940-no-clobber-stamp-bits.patch
rename to toolchain/gcc/patches/6.3.0/940-no-clobber-stamp-bits.patch
index 65f59fcfa75d7bf3b6f246054e3aaab63f5b89de..68e62865b1269c791c4b899f38ab75c0c8bd6bf8 100644
--- a/toolchain/gcc/patches/6.2.0/940-no-clobber-stamp-bits.patch
+++ b/toolchain/gcc/patches/6.3.0/940-no-clobber-stamp-bits.patch
@@ -1,6 +1,6 @@
 --- a/libstdc++-v3/include/Makefile.in
 +++ b/libstdc++-v3/include/Makefile.in
-@@ -1458,7 +1458,7 @@ stamp-bits: ${bits_headers}
+@@ -1459,7 +1459,7 @@ stamp-bits: ${bits_headers}
  	@$(STAMP) stamp-bits
  
  stamp-bits-sup: stamp-bits ${bits_sup_headers}
diff --git a/toolchain/gcc/patches/6.2.0/950-cpp_file_path_translation.patch b/toolchain/gcc/patches/6.3.0/950-cpp_file_path_translation.patch
similarity index 100%
rename from toolchain/gcc/patches/6.2.0/950-cpp_file_path_translation.patch
rename to toolchain/gcc/patches/6.3.0/950-cpp_file_path_translation.patch