diff --git a/dka64/patches/gcc-8.2.0.patch b/dka64/patches/gcc-8.3.0.patch similarity index 59% rename from dka64/patches/gcc-8.2.0.patch rename to dka64/patches/gcc-8.3.0.patch index cab8b37..6c6718e 100644 --- a/dka64/patches/gcc-8.2.0.patch +++ b/dka64/patches/gcc-8.3.0.patch @@ -1,12 +1,17 @@ diff --git a/gcc/config.gcc b/gcc/config.gcc -index 532c33f4c2b..c8a8bc698a7 100644 +index 7af8e028104..90a3a50f624 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc -@@ -945,6 +945,7 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) +@@ -945,6 +945,12 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) case $target in aarch64-*-elf*) use_gcc_stdint=wrap ++ tm_file="${tm_file} devkitpro.h" + tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1" ++ extra_options="${extra_options} devkitpro.opt" ++ case ${enable_threads} in ++ "" | yes | posix) thread_file='posix' ;; ++ esac ;; aarch64-*-fuchsia*) tm_file="${tm_file} fuchsia.h" @@ -40,10 +45,10 @@ index 7a5c6d7664f..687793841de 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 175f13dc264..733ab473cbd 100644 +index 349ca0c047b..5c03c42c28e 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c -@@ -11979,8 +11979,24 @@ aarch64_load_tp (rtx target) +@@ -12005,8 +12005,24 @@ aarch64_load_tp (rtx target) || !register_operand (target, Pmode)) target = gen_reg_rtx (Pmode); @@ -153,6 +158,78 @@ index 0be1f0d63aa..a54068bfd96 100644 +MULTILIB_DIRNAMES = large pic +MULTILIB_REQUIRED = mcmodel=large fPIC +MULTILIB_MATCHES = fPIC=fpic fPIC=fpie fPIC=fPIE +diff --git a/gcc/config/devkitpro.h b/gcc/config/devkitpro.h +new file mode 100644 +index 00000000000..11ba0f5ab1c +--- /dev/null ++++ b/gcc/config/devkitpro.h +@@ -0,0 +1,31 @@ ++/* Definitions for devkitPro toolchains. ++ Copyright (C) 2016-2018 Free Software Foundation, Inc. ++ ++ This file is part of GCC. ++ ++ GCC is free software; you can redistribute it and/or modify it ++ under the terms of the GNU General Public License as published ++ by the Free Software Foundation; either version 3, or (at your ++ option) any later version. ++ ++ GCC is distributed in the hope that it will be useful, but WITHOUT ++ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ++ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public ++ License for more details. ++ ++ Under Section 7 of GPL version 3, you are granted additional ++ permissions described in the GCC Runtime Library Exception, version ++ 3.1, as published by the Free Software Foundation. ++ ++ You should have received a copy of the GNU General Public License and ++ a copy of the GCC Runtime Library Exception along with this program; ++ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see ++ . */ ++ ++#undef TARGET_OS_CPP_BUILTINS ++#define TARGET_OS_CPP_BUILTINS() \ ++ do { \ ++ builtin_define ("__DEVKITA64__"); \ ++ } while (0) ++ ++ +diff --git a/gcc/config/devkitpro.opt b/gcc/config/devkitpro.opt +new file mode 100644 +index 00000000000..9acbbf9d27c +--- /dev/null ++++ b/gcc/config/devkitpro.opt +@@ -0,0 +1,29 @@ ++; Options for devkitPro toolchains. ++ ++; Copyright (C) 2011-2018 Free Software Foundation, Inc. ++; ++; This file is part of GCC. ++; ++; GCC is free software; you can redistribute it and/or modify it under ++; the terms of the GNU General Public License as published by the Free ++; Software Foundation; either version 3, or (at your option) any later ++; version. ++; ++; GCC is distributed in the hope that it will be useful, but WITHOUT ANY ++; WARRANTY; without even the implied warranty of MERCHANTABILITY or ++; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ++; for more details. ++; ++; You should have received a copy of the GNU General Public License ++; along with GCC; see the file COPYING3. If not see ++; . ++ ++; See the GCC internals manual (options.texi) for a description of ++; this file's format. ++ ++; Please try to keep this file in ASCII collating order. ++ ++pthread ++Driver ++ ++; This comment is to ensure we retain the blank line above. diff --git a/gcc/gcc.c b/gcc/gcc.c index a716f708259..6a11011dba7 100644 --- a/gcc/gcc.c @@ -197,3 +274,40 @@ index 5e894455e16..f2347455de0 100644 /* 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 88b0178f9e3..e94fcf9d721 100644 +--- a/libgcc/gthr.h ++++ b/libgcc/gthr.h +@@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + /* The pe-coff weak support isn't fully compatible to ELF's weak. + For static libraries it might would work, but as we need to deal + with shared versions too, we disable it for mingw-targets. */ +-#ifdef __MINGW32__ ++#if defined(__MINGW32__) || defined(__DEVKITA64__) + #undef GTHREAD_USE_WEAK + #define GTHREAD_USE_WEAK 0 + #endif +diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am +index 77e6dc2f6be..3a102997371 100644 +--- a/libstdc++-v3/include/Makefile.am ++++ b/libstdc++-v3/include/Makefile.am +@@ -1293,6 +1293,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' \ ++ -e 's/_GLIBCXX___DEVKITA64_GLIBCXX___/__DEVKITA64__/g' \ + -e 's,^#include "\(.*\)",#include ,g' \ + < $< > $@ + +diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in +index 948a5c1f1c5..ee8e240f6c5 100644 +--- a/libstdc++-v3/include/Makefile.in ++++ b/libstdc++-v3/include/Makefile.in +@@ -1719,6 +1719,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' \ ++ -e 's/_GLIBCXX___DEVKITA64_GLIBCXX___/__DEVKITA64__/g' \ + -e 's,^#include "\(.*\)",#include ,g' \ + < $< > $@ + diff --git a/select_toolchain.sh b/select_toolchain.sh index d4b2076..288822f 100755 --- a/select_toolchain.sh +++ b/select_toolchain.sh @@ -51,7 +51,7 @@ case "$VERSION" in toolchain=DEVKITPPC ;; "3" ) - GCC_VER=8.2.0 + GCC_VER=8.3.0 BINUTILS_VER=2.32 NEWLIB_VER=3.0.0 GDB_VER=8.0