From c879ba7e6255eef58a137c9d832e7afbed041a4f Mon Sep 17 00:00:00 2001 From: Dave Murphy Date: Sat, 3 May 2025 09:13:59 +0100 Subject: [PATCH] devkitA64: gcc 15.1.0 --- .../{gcc-14.2.0.patch => gcc-15.1.0.patch} | 61 +++++++++---------- select_toolchain.sh | 2 +- 2 files changed, 31 insertions(+), 32 deletions(-) rename dka64/patches/{gcc-14.2.0.patch => gcc-15.1.0.patch} (90%) diff --git a/dka64/patches/gcc-14.2.0.patch b/dka64/patches/gcc-15.1.0.patch similarity index 90% rename from dka64/patches/gcc-14.2.0.patch rename to dka64/patches/gcc-15.1.0.patch index 87439ce..e944607 100644 --- a/dka64/patches/gcc-14.2.0.patch +++ b/dka64/patches/gcc-15.1.0.patch @@ -1,8 +1,8 @@ diff --git a/gcc/config.gcc b/gcc/config.gcc -index 95c91ee02be..4711542eee5 100644 +index 40b50dc969e..debd0f3d3b2 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc -@@ -1195,7 +1195,14 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) +@@ -1192,7 +1192,14 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) tmake_file="${tmake_file} aarch64/t-aarch64" case $target in aarch64-*-elf*) @@ -18,7 +18,7 @@ index 95c91ee02be..4711542eee5 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 5396da9b2d6..87235d680ad 100644 +index 15cf1eb0389..aba0e9bbff9 100644 --- a/gcc/config/aarch64/aarch64-elf-raw.h +++ b/gcc/config/aarch64/aarch64-elf-raw.h @@ -22,6 +22,7 @@ @@ -30,10 +30,10 @@ index 5396da9b2d6..87235d680ad 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 a05c0d3ded1..5551807e4c6 100644 +index a6ca5cf016b..90470fd6c44 100644 --- a/gcc/config/aarch64/aarch64-opts.h +++ b/gcc/config/aarch64/aarch64-opts.h -@@ -80,7 +80,8 @@ enum aarch64_tp_reg { +@@ -91,7 +91,8 @@ enum aarch64_tp_reg { AARCH64_TPIDR_EL1 = 1, AARCH64_TPIDR_EL2 = 2, AARCH64_TPIDR_EL3 = 3, @@ -44,10 +44,10 @@ index a05c0d3ded1..5551807e4c6 100644 /* SVE vector register sizes. */ diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc -index 1beec94629d..90a9ec580f8 100644 +index 433ec975d7e..d4c3835a15a 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc -@@ -21060,8 +21060,24 @@ aarch64_load_tp (rtx target) +@@ -21378,8 +21378,24 @@ aarch64_load_tp (rtx target) || !register_operand (target, Pmode)) target = gen_reg_rtx (Pmode); @@ -75,10 +75,10 @@ index 1beec94629d..90a9ec580f8 100644 } diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h -index 4fa1dfc7906..43a01fe3d56 100644 +index e8bd8c73c12..4fc0d8f4ded 100644 --- a/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h -@@ -1377,6 +1377,10 @@ typedef struct +@@ -1436,6 +1436,10 @@ typedef struct /* Check TLS Descriptors mechanism is selected. */ #define TARGET_TLS_DESC (aarch64_tls_dialect == TLS_DESCRIPTORS) @@ -90,10 +90,10 @@ index 4fa1dfc7906..43a01fe3d56 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 dbde066f747..3e3198bf52f 100644 +index 031e621c98a..0fcf0aa703f 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md -@@ -7436,11 +7436,22 @@ +@@ -7702,11 +7702,22 @@ (define_insn "aarch64_load_tp_hard" [(set (match_operand:DI 0 "register_operand" "=r") (unspec:DI [(const_int 0)] UNSPEC_TLS))] @@ -118,10 +118,10 @@ index dbde066f747..3e3198bf52f 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 6356c419399..a6907ed0a0b 100644 +index f32d56d4ffa..7cf8d3ba3d4 100644 --- a/gcc/config/aarch64/aarch64.opt +++ b/gcc/config/aarch64/aarch64.opt -@@ -128,6 +128,9 @@ Enum(tp_reg) String(tpidr_el3) Value(AARCH64_TPIDR_EL3) +@@ -137,6 +137,9 @@ Enum(tp_reg) String(tpidr_el3) Value(AARCH64_TPIDR_EL3) EnumValue Enum(tp_reg) String(tpidrro_el0) Value(AARCH64_TPIDRRO_EL0) @@ -131,7 +131,7 @@ index 6356c419399..a6907ed0a0b 100644 mtp= Target RejectNegative Joined Enum(tp_reg) Var(aarch64_tpidr_reg) Init(AARCH64_TPIDR_EL0) Save Specify the thread pointer register. -@@ -329,7 +332,7 @@ TargetVariable +@@ -338,7 +341,7 @@ TargetVariable long aarch64_stack_protector_guard_offset = 0 moutline-atomics @@ -141,10 +141,10 @@ index 6356c419399..a6907ed0a0b 100644 -param=aarch64-vect-compare-costs= diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64 -index 78713558e7d..76c0914d8ce 100644 +index 59571948479..f50c37d8b3c 100644 --- a/gcc/config/aarch64/t-aarch64 +++ b/gcc/config/aarch64/t-aarch64 -@@ -208,8 +208,10 @@ aarch64-ldp-fusion.o: $(srcdir)/config/aarch64/aarch64-ldp-fusion.cc \ +@@ -198,8 +198,10 @@ aarch64-ldp-fusion.o: $(srcdir)/config/aarch64/aarch64-ldp-fusion.cc \ $(srcdir)/config/aarch64/aarch64-ldp-fusion.cc comma=, @@ -238,26 +238,25 @@ index 00000000000..ab7b466aa71 @@ -0,0 +1 @@ +; Autogenerated by regenerate-opt-urls.py from gcc/config/devkitpro.opt and generated HTML diff --git a/gcc/config/i386/host-mingw32.cc b/gcc/config/i386/host-mingw32.cc -index 42563982e42..923dc198a7e 100644 +index e083f49f3da..1b81e7e88ce 100644 --- a/gcc/config/i386/host-mingw32.cc +++ b/gcc/config/i386/host-mingw32.cc -@@ -93,7 +93,10 @@ mingw32_gt_pch_get_address (size_t size, int) - for NT system dlls is in 0x70000000 to 0x78000000 range. +@@ -94,6 +94,10 @@ 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. */ -- -+ + +#if __MINGW64__ + size = UINT64_C(64 * 1024 * 1024 * 1024); +#endif ++ res = VirtualAlloc (NULL, size, MEM_RESERVE | MEM_TOP_DOWN, PAGE_NOACCESS); diff --git a/gcc/gcc.cc b/gcc/gcc.cc -index 728332b8153..47fc03eb8c8 100644 +index 4fd87f2c4a1..6af06f7b032 100644 --- a/gcc/gcc.cc +++ b/gcc/gcc.cc -@@ -881,6 +881,11 @@ proper position among the other output files. */ +@@ -888,6 +888,11 @@ proper position among the other output files. */ #endif #endif @@ -269,7 +268,7 @@ index 728332b8153..47fc03eb8c8 100644 /* config.h can define STARTFILE_SPEC to override the default crt0 files. */ #ifndef STARTFILE_SPEC #define STARTFILE_SPEC \ -@@ -1208,6 +1213,7 @@ static const char *link_spec = LINK_SPEC; +@@ -1215,6 +1220,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; @@ -277,7 +276,7 @@ index 728332b8153..47fc03eb8c8 100644 static const char *endfile_spec = ENDFILE_SPEC; static const char *startfile_spec = STARTFILE_SPEC; static const char *linker_name_spec = LINKER_NAME; -@@ -1720,6 +1726,7 @@ static struct spec_list static_specs[] = +@@ -1727,6 +1733,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), @@ -299,7 +298,7 @@ index ea689a353c8..98f9d9b21b7 100755 ;; *) diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c -index 38d3859a73c..f97358d9787 100644 +index b9767cd1eee..362689c9f0b 100644 --- a/libgcc/crtstuff.c +++ b/libgcc/crtstuff.c @@ -326,7 +326,7 @@ register_tm_clones (void) @@ -312,7 +311,7 @@ index 38d3859a73c..f97358d9787 100644 in every shared-object; in a main program its value is zero. The object should in any case be protected. This means the instance diff --git a/libgcc/gthr.h b/libgcc/gthr.h -index 33c2d8ff630..2a0a9c1e87e 100644 +index 557417997f4..1269ece007f 100644 --- a/libgcc/gthr.h +++ b/libgcc/gthr.h @@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see @@ -325,10 +324,10 @@ index 33c2d8ff630..2a0a9c1e87e 100644 #define GTHREAD_USE_WEAK 0 #endif diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am -index 422a0f4bd0a..ee09ada9170 100644 +index 537774c2668..76da4f35b96 100644 --- a/libstdc++-v3/include/Makefile.am +++ b/libstdc++-v3/include/Makefile.am -@@ -1429,6 +1429,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias} +@@ -1436,6 +1436,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' \ @@ -337,10 +336,10 @@ index 422a0f4bd0a..ee09ada9170 100644 < $< > $@ diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in -index 9fd4ab4848c..beea48941a3 100644 +index 7b96b2207f8..817de242772 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in -@@ -1903,6 +1903,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias} +@@ -1910,6 +1910,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 f60bc12..e67da93 100755 --- a/select_toolchain.sh +++ b/select_toolchain.sh @@ -49,7 +49,7 @@ case "$VERSION" in toolchain=DEVKITPPC ;; "3" ) - GCC_VER=14.2.0 + GCC_VER=15.1.0 BINUTILS_VER=2.44 NEWLIB_VER=4.4.0.20231231 basedir='dka64'