diff --git a/dka64/patches/gcc-9.2.0.patch b/dka64/patches/gcc-10.1.0.patch similarity index 75% rename from dka64/patches/gcc-9.2.0.patch rename to dka64/patches/gcc-10.1.0.patch index 4f6326a..43d18b4 100644 --- a/dka64/patches/gcc-9.2.0.patch +++ b/dka64/patches/gcc-10.1.0.patch @@ -1,10 +1,12 @@ diff --git a/gcc/config.gcc b/gcc/config.gcc -index ddd3b8f4d9d..014df2e5a59 100644 +index cf1a87e2efd..bd79664568e 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc -@@ -985,6 +985,12 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) +@@ -1039,7 +1039,14 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) + tmake_file="${tmake_file} aarch64/t-aarch64" case $target in aarch64-*-elf*) ++ default_use_cxa_atexit=yes use_gcc_stdint=wrap + tm_file="${tm_file} devkitpro.h" + tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1" @@ -16,7 +18,7 @@ index ddd3b8f4d9d..014df2e5a59 100644 aarch64-*-fuchsia*) tm_file="${tm_file} fuchsia.h" diff --git a/gcc/config/aarch64/aarch64-elf-raw.h b/gcc/config/aarch64/aarch64-elf-raw.h -index bbebd0ef029..8f38510402f 100644 +index da5872cf4d8..ca840ab29cb 100644 --- a/gcc/config/aarch64/aarch64-elf-raw.h +++ b/gcc/config/aarch64/aarch64-elf-raw.h @@ -22,6 +22,7 @@ @@ -28,7 +30,7 @@ index bbebd0ef029..8f38510402f 100644 #define ENDFILE_SPEC \ " crtend%O%s crtn%O%s " \ diff --git a/gcc/config/aarch64/aarch64-opts.h b/gcc/config/aarch64/aarch64-opts.h -index 4b07d296a11..037985f1d86 100644 +index ee7bed34924..d1e2742d750 100644 --- a/gcc/config/aarch64/aarch64-opts.h +++ b/gcc/config/aarch64/aarch64-opts.h @@ -48,6 +48,12 @@ enum aarch64_tls_type { @@ -45,10 +47,10 @@ index 4b07d296a11..037985f1d86 100644 Most have a PIC and non-PIC variant. */ enum aarch64_code_model { diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c -index 6b25d9cbfae..39c7026a90c 100644 +index 409ca8d9519..fa57bbf8cd5 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c -@@ -13186,8 +13186,24 @@ aarch64_load_tp (rtx target) +@@ -15951,8 +15951,24 @@ aarch64_load_tp (rtx target) || !register_operand (target, Pmode)) target = gen_reg_rtx (Pmode); @@ -76,10 +78,10 @@ index 6b25d9cbfae..39c7026a90c 100644 } diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h -index fc6df970c2e..705c6de868f 100644 +index 24767c747ba..0b1bbb5d79e 100644 --- a/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h -@@ -1006,6 +1006,10 @@ typedef struct +@@ -1134,6 +1134,10 @@ typedef struct /* Check TLS Descriptors mechanism is selected. */ #define TARGET_TLS_DESC (aarch64_tls_dialect == TLS_DESCRIPTORS) @@ -91,10 +93,10 @@ index fc6df970c2e..705c6de868f 100644 /* When using the tiny addressing model conditional and unconditional branches diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md -index 5a1894063a1..7c9d9452659 100644 +index 8c8be3c2740..1257616a659 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md -@@ -6583,11 +6583,22 @@ +@@ -6789,11 +6789,22 @@ (define_insn "aarch64_load_tp_hard" [(set (match_operand:DI 0 "register_operand" "=r") (unspec:DI [(const_int 0)] UNSPEC_TLS))] @@ -120,7 +122,7 @@ index 5a1894063a1..7c9d9452659 100644 ;; instructions in the TLS stubs, in order to enable linker relaxation. ;; Therefore we treat the stubs as an atomic sequence. diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt -index 7719c3b6352..cd32a639b16 100644 +index d99d14c137d..08e52537dc6 100644 --- a/gcc/config/aarch64/aarch64.opt +++ b/gcc/config/aarch64/aarch64.opt @@ -118,6 +118,21 @@ Enum(aarch64_tls_size) String(32) Value(32) @@ -143,24 +145,34 @@ index 7719c3b6352..cd32a639b16 100644 + + march= - Target RejectNegative ToLower Joined Var(aarch64_arch_string) + Target RejectNegative Negative(march=) ToLower Joined Var(aarch64_arch_string) Use features of architecture ARCH. +@@ -256,7 +271,7 @@ TargetVariable + long aarch64_stack_protector_guard_offset = 0 + + moutline-atomics +-Target Report Var(aarch64_flag_outline_atomics) Init(2) Save ++Target Report Var(aarch64_flag_outline_atomics) Save + Generate local calls to out-of-line atomic operations. + + -param=aarch64-sve-compare-costs= diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64 -index ee471f8983f..aedaefdd62d 100644 +index 11d20b7be14..02ca761d3bf 100644 --- a/gcc/config/aarch64/t-aarch64 +++ b/gcc/config/aarch64/t-aarch64 -@@ -100,6 +100,8 @@ aarch64-bti-insert.o: $(srcdir)/config/aarch64/aarch64-bti-insert.c \ - $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ +@@ -159,8 +159,10 @@ aarch64-bti-insert.o: $(srcdir)/config/aarch64/aarch64-bti-insert.c \ $(srcdir)/config/aarch64/aarch64-bti-insert.c --comma=, + comma=, -MULTILIB_OPTIONS = $(subst $(comma),/, $(patsubst %, mabi=%, $(subst $(comma),$(comma)mabi=,$(TM_MULTILIB_CONFIG)))) -MULTILIB_DIRNAMES = $(subst $(comma), ,$(TM_MULTILIB_CONFIG)) -+ comma=, +MULTILIB_OPTIONS = mcmodel=large fPIC +MULTILIB_DIRNAMES = large pic +MULTILIB_REQUIRED = mcmodel=large fPIC +MULTILIB_MATCHES = fPIC=fpic fPIC=fpie fPIC=fPIE + + insn-conditions.md: s-check-sve-md + s-check-sve-md: $(srcdir)/config/aarch64/check-sve-md.awk \ diff --git a/gcc/config/devkitpro.h b/gcc/config/devkitpro.h new file mode 100644 index 00000000000..11ba0f5ab1c @@ -233,11 +245,53 @@ index 00000000000..9acbbf9d27c +Driver + +; This comment is to ensure we retain the blank line above. +diff --git a/gcc/config/i386/host-mingw32.c b/gcc/config/i386/host-mingw32.c +index 250fef59b55..36b2239aa5d 100644 +--- a/gcc/config/i386/host-mingw32.c ++++ b/gcc/config/i386/host-mingw32.c +@@ -44,9 +44,6 @@ static size_t mingw32_gt_pch_alloc_granularity (void); + + static inline void w32_error(const char*, const char*, int, const char*); + +-/* FIXME: Is this big enough? */ +-static const size_t pch_VA_max_size = 128 * 1024 * 1024; +- + /* Granularity for reserving address space. */ + static size_t va_granularity = 0x10000; + +@@ -88,9 +85,6 @@ static void * + mingw32_gt_pch_get_address (size_t size, int) + { + void* res; +- size = (size + va_granularity - 1) & ~(va_granularity - 1); +- if (size > pch_VA_max_size) +- return NULL; + + /* FIXME: We let system determine base by setting first arg to NULL. + Allocating at top of available address space avoids unnecessary +@@ -100,7 +94,7 @@ mingw32_gt_pch_get_address (size_t size, int) + If we allocate at bottom we need to reserve the address as early + as possible and at the same point in each invocation. */ + +- res = VirtualAlloc (NULL, pch_VA_max_size, ++ res = VirtualAlloc (NULL, size, + MEM_RESERVE | MEM_TOP_DOWN, + PAGE_NOACCESS); + if (!res) +@@ -150,7 +144,7 @@ mingw32_gt_pch_use_address (void *addr, size_t size, int fd, + + /* Offset must be also be a multiple of allocation granularity for + this to work. We can't change the offset. */ +- if ((offset & (va_granularity - 1)) != 0 || size > pch_VA_max_size) ++ if ((offset & (va_granularity - 1)) != 0) + return -1; + + diff --git a/gcc/gcc.c b/gcc/gcc.c -index 4f57765b012..2899202cc05 100644 +index 9f790db0daf..97f52d0b893 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c -@@ -794,6 +794,11 @@ proper position among the other output files. */ +@@ -793,6 +793,11 @@ proper position among the other output files. */ #endif #endif @@ -249,7 +303,7 @@ index 4f57765b012..2899202cc05 100644 /* config.h can define STARTFILE_SPEC to override the default crt0 files. */ #ifndef STARTFILE_SPEC #define STARTFILE_SPEC \ -@@ -1086,6 +1091,7 @@ static const char *link_spec = LINK_SPEC; +@@ -1085,6 +1090,7 @@ static const char *link_spec = LINK_SPEC; static const char *lib_spec = LIB_SPEC; static const char *link_gomp_spec = ""; static const char *libgcc_spec = LIBGCC_SPEC; @@ -257,7 +311,7 @@ index 4f57765b012..2899202cc05 100644 static const char *endfile_spec = ENDFILE_SPEC; static const char *startfile_spec = STARTFILE_SPEC; static const char *linker_name_spec = LINKER_NAME; -@@ -1583,6 +1589,7 @@ static struct spec_list static_specs[] = +@@ -1582,6 +1588,7 @@ static struct spec_list static_specs[] = INIT_STATIC_SPEC ("lib", &lib_spec), INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec), INIT_STATIC_SPEC ("libgcc", &libgcc_spec), @@ -265,20 +319,8 @@ index 4f57765b012..2899202cc05 100644 INIT_STATIC_SPEC ("startfile", &startfile_spec), INIT_STATIC_SPEC ("cross_compile", &cross_compile), INIT_STATIC_SPEC ("version", &compiler_version), -diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c -index 4927a9f8977..8311b6a7f5e 100644 ---- a/libgcc/crtstuff.c -+++ b/libgcc/crtstuff.c -@@ -47,6 +47,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see - - /* Target machine header files require this define. */ - #define IN_LIBGCC2 -+#define USED_FOR_TARGET - - /* FIXME: Including auto-host is incorrect, but until we have - identified the set of defines that need to go into auto-target.h, diff --git a/libgcc/gthr.h b/libgcc/gthr.h -index 67826419882..d9f01c6c371 100644 +index f31cf083cbe..649f900aac3 100644 --- a/libgcc/gthr.h +++ b/libgcc/gthr.h @@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see @@ -291,10 +333,10 @@ index 67826419882..d9f01c6c371 100644 #define GTHREAD_USE_WEAK 0 #endif diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am -index 1deacb80ca2..0de11c15a3a 100644 +index 80aeb3f8959..308ceedc673 100644 --- a/libstdc++-v3/include/Makefile.am +++ b/libstdc++-v3/include/Makefile.am -@@ -1338,6 +1338,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias} +@@ -1315,6 +1315,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias} -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCXX_\1/g' \ -e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \ -e 's/_GLIBCXX___MINGW32_GLIBCXX___/__MINGW32__/g' \ @@ -303,10 +345,10 @@ index 1deacb80ca2..0de11c15a3a 100644 < $< > $@ diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in -index bc475c6dd90..bfa3e71898a 100644 +index eb437ad8d8d..6e076fc63bd 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in -@@ -1817,6 +1817,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias} +@@ -1793,6 +1793,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias} -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCXX_\1/g' \ -e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \ -e 's/_GLIBCXX___MINGW32_GLIBCXX___/__MINGW32__/g' \ diff --git a/select_toolchain.sh b/select_toolchain.sh index 13c755d..5a08146 100755 --- a/select_toolchain.sh +++ b/select_toolchain.sh @@ -51,7 +51,7 @@ case "$VERSION" in toolchain=DEVKITPPC ;; "3" ) - GCC_VER=9.2.0 + GCC_VER=10.1.0 BINUTILS_VER=2.32 NEWLIB_VER=3.1.0 GDB_VER=8.2.1