From c0844b6c88f2ad851b03a1d7434ec85eda3a0ae6 Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Mon, 25 Feb 2019 15:54:20 -0800 Subject: Run GCC 8.3.0 patches through manage-packages.sh -P Signed-off-by: Alexey Neyman diff --git a/packages/gcc/8.3.0/0006-libgfortran-missing-include.patch b/packages/gcc/8.3.0/0006-libgfortran-missing-include.patch index 7c56d6b..6e2e4e4 100644 --- a/packages/gcc/8.3.0/0006-libgfortran-missing-include.patch +++ b/packages/gcc/8.3.0/0006-libgfortran-missing-include.patch @@ -1,6 +1,9 @@ -diff -Nur a/libgfortran/io/close.c b/libgfortran/io/close.c ---- a/libgfortran/io/close.c 2018-10-05 15:16:21.000000000 -0500 -+++ b/libgfortran/io/close.c 2019-02-22 11:21:54.547170028 -0600 +--- + libgfortran/io/close.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/libgfortran/io/close.c ++++ b/libgfortran/io/close.c @@ -28,6 +28,7 @@ #if !HAVE_UNLINK_OPEN_FILE #include diff --git a/packages/gcc/8.3.0/0010-crystax.patch b/packages/gcc/8.3.0/0010-crystax.patch index 32e08e2..0e3e95c 100644 --- a/packages/gcc/8.3.0/0010-crystax.patch +++ b/packages/gcc/8.3.0/0010-crystax.patch @@ -8,38 +8,36 @@ Date: Wed Jul 29 11:28:29 2015 +0300 [Edited: keep libstdc++, drop libcrystax-related modifications] --- - gcc/config.gcc | 17 ++++++- - gcc/config/aarch64/aarch64-linux-android.h | 59 ++++++++++++++++++++++ - gcc/config/aarch64/aarch64-linux.h | 9 +++- - gcc/config/arm/arm.h | 3 +- - gcc/config/arm/arm.md | 2 +- - gcc/config/arm/arm.opt | 4 ++ - gcc/config/arm/elf.h | 9 ++-- - gcc/config/arm/linux-eabi.h | 7 ++- - gcc/config/i386/gnu-user.h | 7 ++- - gcc/config/i386/gnu-user64.h | 5 ++ - gcc/config/i386/linux-common.h | 8 ++- - gcc/config/linux-android.h | 13 +++-- - gcc/config/mips/android.h | 49 ++++++++++++++++++ - gcc/config/mips/gnu-user.h | 6 ++- - gcc/config/mips/linux-common.h | 2 +- - gcc/config/mips/t-linux-android | 3 ++ - gcc/config/mips/t-linux-android64 | 4 ++ - libgcc/gthr-posix.h | 13 +++++ - libstdc++-v3/configure | 12 +++++ - libstdc++-v3/include/bits/locale_facets.h | 18 ++++++- - libstdc++-v3/libsupc++/guard.cc | 5 ++ + gcc/config.gcc | 17 +++++++- + gcc/config/aarch64/aarch64-linux-android.h | 59 +++++++++++++++++++++++++++++ + gcc/config/aarch64/aarch64-linux.h | 9 +++- + gcc/config/arm/arm.h | 3 - + gcc/config/arm/arm.md | 2 + gcc/config/arm/arm.opt | 4 + + gcc/config/arm/elf.h | 9 ++-- + gcc/config/arm/linux-eabi.h | 7 ++- + gcc/config/i386/gnu-user.h | 7 ++- + gcc/config/i386/gnu-user64.h | 5 ++ + gcc/config/i386/linux-common.h | 8 +++ + gcc/config/linux-android.h | 13 +++--- + gcc/config/mips/android.h | 49 ++++++++++++++++++++++++ + gcc/config/mips/gnu-user.h | 6 +- + gcc/config/mips/linux-common.h | 2 + gcc/config/mips/t-linux-android | 3 + + gcc/config/mips/t-linux-android64 | 4 + + libgcc/gthr-posix.h | 13 ++++++ + libstdc++-v3/configure | 12 +++++ + libstdc++-v3/include/bits/locale_facets.h | 18 +++++++- + libstdc++-v3/libsupc++/guard.cc | 5 ++ 21 files changed, 235 insertions(+), 20 deletions(-) create mode 100644 gcc/config/aarch64/aarch64-linux-android.h create mode 100644 gcc/config/mips/android.h create mode 100644 gcc/config/mips/t-linux-android create mode 100644 gcc/config/mips/t-linux-android64 -diff --git a/gcc/config.gcc b/gcc/config.gcc -index 7af8e0281..a9ab8cea9 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc -@@ -981,14 +981,18 @@ aarch64*-*-freebsd*) +@@ -981,14 +981,18 @@ tmake_file="${tmake_file} aarch64/t-aarch64 aarch64/t-aarch64-freebsd" ;; aarch64*-*-linux*) @@ -59,7 +57,7 @@ index 7af8e0281..a9ab8cea9 100644 esac aarch64_multilibs="${with_multilib_list}" if test "$aarch64_multilibs" = "default"; then -@@ -2133,6 +2137,17 @@ mips*-*-linux*) # Linux MIPS, either endian. +@@ -2133,6 +2137,17 @@ tm_file="dbxelf.h elfos.h gnu-user.h linux.h linux-android.h glibc-stdint.h ${tm_file} mips/gnu-user.h mips/linux.h mips/linux-common.h" extra_options="${extra_options} linux-android.opt" case ${target} in @@ -77,9 +75,6 @@ index 7af8e0281..a9ab8cea9 100644 mipsisa32r6*) default_mips_arch=mips32r6 ;; -diff --git a/gcc/config/aarch64/aarch64-linux-android.h b/gcc/config/aarch64/aarch64-linux-android.h -new file mode 100644 -index 000000000..91d235ff1 --- /dev/null +++ b/gcc/config/aarch64/aarch64-linux-android.h @@ -0,0 +1,59 @@ @@ -142,8 +137,6 @@ index 000000000..91d235ff1 + LINUX_OR_ANDROID_LD (GNU_USER_TARGET_ENDFILE_SPEC, ANDROID_ENDFILE_SPEC) + +#endif /* GCC_AARCH64_LINUX_ANDROID_H */ -diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h -index bf1327e98..54613e4c6 100644 --- a/gcc/config/aarch64/aarch64-linux.h +++ b/gcc/config/aarch64/aarch64-linux.h @@ -21,7 +21,14 @@ @@ -162,11 +155,9 @@ index bf1327e98..54613e4c6 100644 #undef MUSL_DYNAMIC_LINKER #define MUSL_DYNAMIC_LINKER "/lib/ld-musl-aarch64%{mbig-endian:_be}%{mabi=ilp32:_ilp32}.so.1" -diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h -index 2809112f6..753c60f9c 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h -@@ -1840,10 +1840,11 @@ enum arm_auto_incmodes +@@ -1840,10 +1840,11 @@ #define CASE_VECTOR_PC_RELATIVE (TARGET_THUMB2 \ || (TARGET_THUMB1 \ @@ -179,8 +170,6 @@ index 2809112f6..753c60f9c 100644 ? (min >= 0 && max < 512 \ ? (ADDR_DIFF_VEC_FLAGS (body).offset_unsigned = 1, QImode) \ : min >= -256 && max < 256 \ -diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md -index 2d5359e53..4942d1ace 100644 --- a/gcc/config/arm/arm.md +++ b/gcc/config/arm/arm.md @@ -8640,7 +8640,7 @@ @@ -192,11 +181,9 @@ index 2d5359e53..4942d1ace 100644 " { enum insn_code code; -diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt -index a1286a4a8..7e694df62 100644 --- a/gcc/config/arm/arm.opt +++ b/gcc/config/arm/arm.opt -@@ -202,6 +202,10 @@ mthumb-interwork +@@ -202,6 +202,10 @@ Target Report Mask(INTERWORK) Support calls between Thumb and ARM instruction sets. @@ -207,8 +194,6 @@ index a1286a4a8..7e694df62 100644 mtls-dialect= Target RejectNegative Joined Enum(tls_type) Var(target_tls_dialect) Init(TLS_GNU) Specify thread local storage scheme. -diff --git a/gcc/config/arm/elf.h b/gcc/config/arm/elf.h -index ad3651ba8..b74e995b6 100644 --- a/gcc/config/arm/elf.h +++ b/gcc/config/arm/elf.h @@ -56,8 +56,7 @@ @@ -241,8 +226,6 @@ index ad3651ba8..b74e995b6 100644 && !target_pure_code) #ifndef LINK_SPEC -diff --git a/gcc/config/arm/linux-eabi.h b/gcc/config/arm/linux-eabi.h -index 8585fde3d..9b6b787f4 100644 --- a/gcc/config/arm/linux-eabi.h +++ b/gcc/config/arm/linux-eabi.h @@ -102,11 +102,16 @@ @@ -263,11 +246,9 @@ index 8585fde3d..9b6b787f4 100644 #undef LIB_SPEC #define LIB_SPEC \ LINUX_OR_ANDROID_LD (GNU_USER_TARGET_LIB_SPEC, \ -diff --git a/gcc/config/i386/gnu-user.h b/gcc/config/i386/gnu-user.h -index 93a7f8d4c..b05df420a 100644 --- a/gcc/config/i386/gnu-user.h +++ b/gcc/config/i386/gnu-user.h -@@ -65,9 +65,14 @@ along with GCC; see the file COPYING3. If not see +@@ -65,9 +65,14 @@ When the -shared link option is used a final link is not being done. */ @@ -283,11 +264,9 @@ index 93a7f8d4c..b05df420a 100644 #undef SUBTARGET_EXTRA_SPECS #define SUBTARGET_EXTRA_SPECS \ -diff --git a/gcc/config/i386/gnu-user64.h b/gcc/config/i386/gnu-user64.h -index d9400638f..70d6fab1d 100644 --- a/gcc/config/i386/gnu-user64.h +++ b/gcc/config/i386/gnu-user64.h -@@ -46,6 +46,11 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +@@ -46,6 +46,11 @@ #define SPEC_X32 "mx32" #endif @@ -299,11 +278,9 @@ index d9400638f..70d6fab1d 100644 #undef ASM_SPEC #define ASM_SPEC "%{" SPEC_32 ":--32} \ %{" SPEC_64 ":--64} \ -diff --git a/gcc/config/i386/linux-common.h b/gcc/config/i386/linux-common.h -index d87738702..2eea2b664 100644 --- a/gcc/config/i386/linux-common.h +++ b/gcc/config/i386/linux-common.h -@@ -30,7 +30,13 @@ along with GCC; see the file COPYING3. If not see +@@ -30,7 +30,13 @@ #undef CC1_SPEC #define CC1_SPEC \ LINUX_OR_ANDROID_CC (GNU_USER_TARGET_CC1_SPEC, \ @@ -318,8 +295,6 @@ index d87738702..2eea2b664 100644 #undef LINK_SPEC #define LINK_SPEC \ -diff --git a/gcc/config/linux-android.h b/gcc/config/linux-android.h -index 9f3985d23..a58a3d837 100644 --- a/gcc/config/linux-android.h +++ b/gcc/config/linux-android.h @@ -38,15 +38,18 @@ @@ -346,9 +321,6 @@ index 9f3985d23..a58a3d837 100644 #define ANDROID_LIB_SPEC \ "%{!static: -ldl}" -diff --git a/gcc/config/mips/android.h b/gcc/config/mips/android.h -new file mode 100644 -index 000000000..32c539c8d --- /dev/null +++ b/gcc/config/mips/android.h @@ -0,0 +1,49 @@ @@ -401,11 +373,9 @@ index 000000000..32c539c8d + \ + /* Use the standard linux specs for everything else. */ \ + LINUX_DRIVER_SELF_SPECS -diff --git a/gcc/config/mips/gnu-user.h b/gcc/config/mips/gnu-user.h -index 22097e285..57cf31da4 100644 --- a/gcc/config/mips/gnu-user.h +++ b/gcc/config/mips/gnu-user.h -@@ -36,6 +36,7 @@ along with GCC; see the file COPYING3. If not see +@@ -36,6 +36,7 @@ /* The GNU C++ standard library requires this. */ \ if (c_dialect_cxx ()) \ builtin_define ("_GNU_SOURCE"); \ @@ -413,7 +383,7 @@ index 22097e285..57cf31da4 100644 } while (0) #undef SUBTARGET_CPP_SPEC -@@ -71,7 +72,8 @@ along with GCC; see the file COPYING3. If not see +@@ -71,7 +72,8 @@ #undef SUBTARGET_ASM_SPEC #define SUBTARGET_ASM_SPEC \ @@ -423,7 +393,7 @@ index 22097e285..57cf31da4 100644 /* The MIPS assembler has different syntax for .set. We set it to .dummy to trap any errors. */ -@@ -120,7 +122,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); +@@ -120,7 +122,7 @@ #endif #define LINUX_DRIVER_SELF_SPECS \ @@ -432,11 +402,9 @@ index 22097e285..57cf31da4 100644 MARCH_MTUNE_NATIVE_SPECS, \ /* -mplt has no effect without -mno-shared. Simplify later \ specs handling by removing a redundant option. */ \ -diff --git a/gcc/config/mips/linux-common.h b/gcc/config/mips/linux-common.h -index 570151f6a..c2f7630a8 100644 --- a/gcc/config/mips/linux-common.h +++ b/gcc/config/mips/linux-common.h -@@ -35,7 +35,7 @@ along with GCC; see the file COPYING3. If not see +@@ -35,7 +35,7 @@ #undef SUBTARGET_CC1_SPEC #define SUBTARGET_CC1_SPEC \ LINUX_OR_ANDROID_CC (GNU_USER_TARGET_CC1_SPEC, \ @@ -445,18 +413,12 @@ index 570151f6a..c2f7630a8 100644 #undef CC1PLUS_SPEC #define CC1PLUS_SPEC \ -diff --git a/gcc/config/mips/t-linux-android b/gcc/config/mips/t-linux-android -new file mode 100644 -index 000000000..39f512c81 --- /dev/null +++ b/gcc/config/mips/t-linux-android @@ -0,0 +1,3 @@ +MULTILIB_OPTIONS = mips32r2/mips32r6 +MULTILIB_DIRNAMES = mips-r2 mips-r6 +MULTILIB_OSDIRNAMES = ../libr2 ../libr6 -diff --git a/gcc/config/mips/t-linux-android64 b/gcc/config/mips/t-linux-android64 -new file mode 100644 -index 000000000..55cab7d62 --- /dev/null +++ b/gcc/config/mips/t-linux-android64 @@ -0,0 +1,4 @@ @@ -464,11 +426,9 @@ index 000000000..55cab7d62 +MULTILIB_DIRNAMES = 32 mips-r1 mips-r2 mips-r6 mips64-r2 mips64-r6 +MULTILIB_OSDIRNAMES = ../lib ../lib ../libr2 ../libr6 ../lib64r2 ../lib64 +MULTILIB_REQUIRED = mabi=32/mips32 mabi=32/mips32r2 mabi=32/mips32r6 mips64r2 mips64r6 -diff --git a/libgcc/gthr-posix.h b/libgcc/gthr-posix.h -index e2f952f6c..a8d638396 100644 --- a/libgcc/gthr-posix.h +++ b/libgcc/gthr-posix.h -@@ -32,6 +32,19 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +@@ -32,6 +32,19 @@ #define __GTHREADS 1 #define __GTHREADS_CXX0X 1 @@ -488,11 +448,9 @@ index e2f952f6c..a8d638396 100644 #include #if ((defined(_LIBOBJC) || defined(_LIBOBJC_WEAK)) \ -diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure -index 5535bfa2b..52f7e9c0c 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure -@@ -78491,6 +78491,18 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext +@@ -78491,6 +78491,18 @@ /* end confdefs.h. */ #include int lk; @@ -511,8 +469,6 @@ index 5535bfa2b..52f7e9c0c 100755 int main () { -diff --git a/libstdc++-v3/include/bits/locale_facets.h b/libstdc++-v3/include/bits/locale_facets.h -index d5384e146..774a107fb 100644 --- a/libstdc++-v3/include/bits/locale_facets.h +++ b/libstdc++-v3/include/bits/locale_facets.h @@ -47,6 +47,20 @@ @@ -536,7 +492,7 @@ index d5384e146..774a107fb 100644 namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION -@@ -1104,7 +1118,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION +@@ -1104,7 +1118,7 @@ * @return @a __hi. */ virtual const char* @@ -545,7 +501,7 @@ index d5384e146..774a107fb 100644 { if (__builtin_expect(__hi != __lo, true)) __builtin_memcpy(__to, __lo, __hi - __lo); -@@ -1167,7 +1181,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION +@@ -1167,7 +1181,7 @@ private: void _M_narrow_init() const; @@ -554,8 +510,6 @@ index d5384e146..774a107fb 100644 }; #ifdef _GLIBCXX_USE_WCHAR_T -diff --git a/libstdc++-v3/libsupc++/guard.cc b/libstdc++-v3/libsupc++/guard.cc -index 3a2ec3ad0..ffcd22cf1 100644 --- a/libstdc++-v3/libsupc++/guard.cc +++ b/libstdc++-v3/libsupc++/guard.cc @@ -34,7 +34,12 @@ @@ -571,6 +525,3 @@ index 3a2ec3ad0..ffcd22cf1 100644 # include # define _GLIBCXX_USE_FUTEX # define _GLIBCXX_FUTEX_WAIT 0 --- -2.20.1 - diff --git a/packages/gcc/8.3.0/0013-crystax.patch b/packages/gcc/8.3.0/0013-crystax.patch index 3b9347a..3454df0 100644 --- a/packages/gcc/8.3.0/0013-crystax.patch +++ b/packages/gcc/8.3.0/0013-crystax.patch @@ -12,7 +12,7 @@ Date: Thu Aug 20 19:11:07 2015 +0300 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c -@@ -15916,6 +15916,7 @@ +@@ -15971,6 +15971,7 @@ else if (!SYMBOL_REF_FAR_ADDR_P (op0) && (SYMBOL_REF_LOCAL_P (op0) || (HAVE_LD_PIE_COPYRELOC diff --git a/packages/gcc/8.3.0/0015-crystax.patch b/packages/gcc/8.3.0/0015-crystax.patch index 05d67f9..2424d2b 100644 --- a/packages/gcc/8.3.0/0015-crystax.patch +++ b/packages/gcc/8.3.0/0015-crystax.patch @@ -15,7 +15,7 @@ Date: Mon Apr 14 21:05:51 2014 -0700 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c -@@ -22608,9 +22608,13 @@ +@@ -22619,9 +22619,13 @@ memsize = MEM_SIZE (x); /* Only certain alignment specifiers are supported by the hardware. */ diff --git a/packages/gcc/8.3.0/0020-ARM-fix-cmse.patch b/packages/gcc/8.3.0/0020-ARM-fix-cmse.patch index 4a501a2..cf2d243 100644 --- a/packages/gcc/8.3.0/0020-ARM-fix-cmse.patch +++ b/packages/gcc/8.3.0/0020-ARM-fix-cmse.patch @@ -13,15 +13,13 @@ Subject: [PATCH] 2018-05-17 Jerome Lambourg git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@260330 138bc75d-0d04-0410-961f-82ee72b054a4 --- - gcc/config/arm/arm_cmse.h | 5 ++--- - libgcc/config/arm/cmse.c | 5 +++-- - 4 files changed, 15 insertions(+), 5 deletions(-) + gcc/config/arm/arm_cmse.h | 5 ++--- + libgcc/config/arm/cmse.c | 5 +++-- + 2 files changed, 5 insertions(+), 5 deletions(-) -diff --git a/gcc/config/arm/arm_cmse.h b/gcc/config/arm/arm_cmse.h -index 367e212dc9c..f972e23659d 100644 --- a/gcc/config/arm/arm_cmse.h +++ b/gcc/config/arm/arm_cmse.h -@@ -35,7 +35,6 @@ extern "C" { +@@ -35,7 +35,6 @@ #if __ARM_FEATURE_CMSE & 1 #include @@ -29,7 +27,7 @@ index 367e212dc9c..f972e23659d 100644 #ifdef __ARM_BIG_ENDIAN -@@ -174,9 +173,9 @@ cmse_nonsecure_caller (void) +@@ -174,9 +173,9 @@ #define CMSE_MPU_NONSECURE 16 #define CMSE_NONSECURE 18 @@ -41,11 +39,9 @@ index 367e212dc9c..f972e23659d 100644 #endif /* __ARM_FEATURE_CMSE & 2 */ -diff --git a/libgcc/config/arm/cmse.c b/libgcc/config/arm/cmse.c -index 3ded385693a..2ad0af2ecd8 100644 --- a/libgcc/config/arm/cmse.c +++ b/libgcc/config/arm/cmse.c -@@ -36,7 +36,7 @@ cmse_check_address_range (void *p, size_t size, int flags) +@@ -36,7 +36,7 @@ char *pb = (char *) p, *pe; /* Check if the range wraps around. */ @@ -54,7 +50,7 @@ index 3ded385693a..2ad0af2ecd8 100644 return NULL; /* Check if an unknown flag is present. */ -@@ -51,7 +51,8 @@ cmse_check_address_range (void *p, size_t size, int flags) +@@ -51,7 +51,8 @@ /* Execute the right variant of the TT instructions. */ pe = pb + size - 1; @@ -64,6 +60,3 @@ index 3ded385693a..2ad0af2ecd8 100644 switch (flags & known_secure_level) { case 0: --- -2.14.4 - diff --git a/packages/gcc/8.3.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch b/packages/gcc/8.3.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch index 0989910..afdc1a5 100644 --- a/packages/gcc/8.3.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch +++ b/packages/gcc/8.3.0/0021-arm-Make-arm_cmse.h-C99-compatible.patch @@ -12,15 +12,13 @@ gcc/ChangeLog git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@261204 138bc75d-0d04-0410-961f-82ee72b054a4 --- - gcc/config/arm/arm_cmse.h | 4 ++-- - 4 files changed, 16 insertions(+), 2 deletions(-) + gcc/config/arm/arm_cmse.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gcc.target/arm/cmse/cmse-1c99.c -diff --git a/gcc/config/arm/arm_cmse.h b/gcc/config/arm/arm_cmse.h -index f972e23659d..9b35537cd33 100644 --- a/gcc/config/arm/arm_cmse.h +++ b/gcc/config/arm/arm_cmse.h -@@ -173,7 +173,7 @@ cmse_nonsecure_caller (void) +@@ -173,7 +173,7 @@ #define CMSE_MPU_NONSECURE 16 #define CMSE_NONSECURE 18 @@ -29,7 +27,7 @@ index f972e23659d..9b35537cd33 100644 #define cmse_is_nsfptr(p) (!((__INTPTR_TYPE__) (p) & 1)) -@@ -187,7 +187,7 @@ __extension__ void * +@@ -187,7 +187,7 @@ cmse_check_address_range (void *, size_t, int); #define cmse_check_pointed_object(p, f) \ -- cgit v0.10.2-6-g49f6