devkitA64: update gcc to 13.1.0

This commit is contained in:
Dave Murphy 2023-05-01 22:58:56 +01:00
parent 06e7ade19c
commit cc0e589e56
No known key found for this signature in database
GPG Key ID: F7FD5492264BB9D0
3 changed files with 69 additions and 369 deletions

View File

@ -1,322 +0,0 @@
diff -NBaur gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/aarch64.cc gcc-13.1.0-RC2-20230419/gcc/config/aarch64/aarch64.cc
--- gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/aarch64.cc 2023-04-19 13:53:45.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/gcc/config/aarch64/aarch64.cc 2023-04-26 23:50:10.772394548 +0100
@@ -19555,8 +19555,24 @@
|| !register_operand (target, Pmode))
target = gen_reg_rtx (Pmode);
- /* Can return in any reg. */
- emit_insn (gen_aarch64_load_tp_hard (target));
+ if (TARGET_HARD_TP)
+ {
+ /* Can return in any reg. */
+ emit_insn (gen_aarch64_load_tp_hard (target));
+ }
+ else
+ {
+ /* Always returned in r0. Immediately copy the result into a pseudo,
+ otherwise other uses of r0 (e.g. setting up function arguments) may
+ clobber the value. */
+
+ rtx tmp;
+
+ emit_insn (gen_aarch64_load_tp_soft ());
+
+ tmp = gen_rtx_REG (DImode, R0_REGNUM);
+ emit_move_insn (target, tmp);
+ }
return target;
}
diff -NBaur gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/aarch64-elf-raw.h gcc-13.1.0-RC2-20230419/gcc/config/aarch64/aarch64-elf-raw.h
--- gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/aarch64-elf-raw.h 2023-04-19 13:53:45.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/gcc/config/aarch64/aarch64-elf-raw.h 2023-04-26 23:50:10.768394486 +0100
@@ -22,6 +22,7 @@
#ifndef GCC_AARCH64_ELF_RAW_H
#define GCC_AARCH64_ELF_RAW_H
+#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L %(libgloss) --end-group"
#define STARTFILE_SPEC " crti%O%s crtbegin%O%s crt0%O%s"
#define ENDFILE_SPEC \
" crtend%O%s crtn%O%s " \
diff -NBaur gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/aarch64.h gcc-13.1.0-RC2-20230419/gcc/config/aarch64/aarch64.h
--- gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/aarch64.h 2023-04-19 13:53:45.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/gcc/config/aarch64/aarch64.h 2023-04-26 23:52:03.318171734 +0100
@@ -1154,6 +1154,10 @@
/* Check TLS Descriptors mechanism is selected. */
#define TARGET_TLS_DESC (aarch64_tls_dialect == TLS_DESCRIPTORS)
+/* Check selected thread pointer access sequence to use. */
+#define TARGET_HARD_TP (target_thread_pointer == TP_HARD)
+#define TARGET_SOFT_TP (target_thread_pointer == TP_SOFT)
+
extern enum aarch64_code_model aarch64_cmodel;
/* When using the tiny addressing model conditional and unconditional branches
@@ -1185,7 +1189,7 @@
/* Extra specs when building a native AArch64-hosted compiler.
Option rewriting rules based on host system. */
-#if defined(__aarch64__)
+#if 0 // defined(__aarch64__)
extern const char *host_detect_local_cpu (int argc, const char **argv);
#define HAVE_LOCAL_CPU_DETECT
# define EXTRA_SPEC_FUNCTIONS \
diff -NBaur gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/aarch64.md gcc-13.1.0-RC2-20230419/gcc/config/aarch64/aarch64.md
--- gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/aarch64.md 2023-04-19 13:53:45.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/gcc/config/aarch64/aarch64.md 2023-04-26 23:50:10.776394611 +0100
@@ -7068,11 +7068,22 @@
(define_insn "aarch64_load_tp_hard"
[(set (match_operand:DI 0 "register_operand" "=r")
(unspec:DI [(const_int 0)] UNSPEC_TLS))]
- ""
- "mrs\\t%0, tpidr_el0"
+ "TARGET_HARD_TP"
+ "mrs\\t%0, tpidr_el0\\t// aarch64_load_tp_hard"
[(set_attr "type" "mrs")]
)
+(define_insn "aarch64_load_tp_soft"
+ [(set (reg:DI 0) (unspec:DI [(const_int 0)] UNSPEC_TLS))
+ (clobber (reg:DI IP0_REGNUM))
+ (clobber (reg:DI IP1_REGNUM))
+ (clobber (reg:DI LR_REGNUM))
+ (clobber (reg:CC CC_REGNUM))]
+ "TARGET_SOFT_TP"
+ "bl\\t__aarch64_read_tp\\t// aarch64_load_tp_soft"
+ [(set_attr "type" "branch")]
+)
+
;; The TLS ABI specifically requires that the compiler does not schedule
;; instructions in the TLS stubs, in order to enable linker relaxation.
;; Therefore we treat the stubs as an atomic sequence.
diff -NBaur gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/aarch64.opt gcc-13.1.0-RC2-20230419/gcc/config/aarch64/aarch64.opt
--- gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/aarch64.opt 2023-04-19 13:53:45.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/gcc/config/aarch64/aarch64.opt 2023-04-26 23:50:10.776394611 +0100
@@ -128,6 +128,21 @@
EnumValue
Enum(aarch64_tls_size) String(48) Value(48)
+mtp=
+Target RejectNegative Joined Enum(aarch64_tp_type) Var(target_thread_pointer) Init(TP_HARD)
+Specify how to access the thread pointer.
+
+Enum
+Name(aarch64_tp_type) Type(enum aarch64_tp_type)
+Valid arguments to -mtp=:
+
+EnumValue
+Enum(aarch64_tp_type) String(hard) Value(TP_HARD)
+
+EnumValue
+Enum(aarch64_tp_type) String(soft) Value(TP_SOFT)
+
+
march=
Target RejectNegative Negative(march=) ToLower Joined Var(aarch64_arch_string)
Use features of architecture ARCH.
@@ -266,7 +281,7 @@
long aarch64_stack_protector_guard_offset = 0
moutline-atomics
-Target Var(aarch64_flag_outline_atomics) Init(2) Save
+Target Var(aarch64_flag_outline_atomics) Save
Generate local calls to out-of-line atomic operations.
-param=aarch64-sve-compare-costs=
diff -NBaur gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/aarch64-opts.h gcc-13.1.0-RC2-20230419/gcc/config/aarch64/aarch64-opts.h
--- gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/aarch64-opts.h 2023-04-19 13:53:45.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/gcc/config/aarch64/aarch64-opts.h 2023-04-26 23:50:10.768394486 +0100
@@ -52,6 +52,12 @@
TLS_DESCRIPTORS
};
+/* Which thread pointer access sequence to use. */
+enum aarch64_tp_type {
+ TP_HARD,
+ TP_SOFT
+};
+
/* The code model defines the address generation strategy.
Most have a PIC and non-PIC variant. */
enum aarch64_code_model {
diff -NBaur gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/t-aarch64 gcc-13.1.0-RC2-20230419/gcc/config/aarch64/t-aarch64
--- gcc-13.1.0-RC2-20230419.orig/gcc/config/aarch64/t-aarch64 2023-04-19 13:53:45.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/gcc/config/aarch64/t-aarch64 2023-04-26 23:50:10.776394611 +0100
@@ -177,8 +177,10 @@
$(srcdir)/config/aarch64/aarch64-cc-fusion.cc
comma=,
-MULTILIB_OPTIONS = $(subst $(comma),/, $(patsubst %, mabi=%, $(subst $(comma),$(comma)mabi=,$(TM_MULTILIB_CONFIG))))
-MULTILIB_DIRNAMES = $(subst $(comma), ,$(TM_MULTILIB_CONFIG))
+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 -NBaur gcc-13.1.0-RC2-20230419.orig/gcc/config/devkitpro.h gcc-13.1.0-RC2-20230419/gcc/config/devkitpro.h
--- gcc-13.1.0-RC2-20230419.orig/gcc/config/devkitpro.h 1970-01-01 01:00:00.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/gcc/config/devkitpro.h 2023-04-26 23:50:10.776394611 +0100
@@ -0,0 +1,32 @@
+/* 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
+ <http://www.gnu.org/licenses/>. */
+
+#undef TARGET_OS_CPP_BUILTINS
+#define TARGET_OS_CPP_BUILTINS() \
+ do { \
+ builtin_define ("__DEVKITA64__"); \
+ builtin_define ("__DEVKITPRO__"); \
+ } while (0)
+
+
diff -NBaur gcc-13.1.0-RC2-20230419.orig/gcc/config/devkitpro.opt gcc-13.1.0-RC2-20230419/gcc/config/devkitpro.opt
--- gcc-13.1.0-RC2-20230419.orig/gcc/config/devkitpro.opt 1970-01-01 01:00:00.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/gcc/config/devkitpro.opt 2023-04-26 23:50:10.776394611 +0100
@@ -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
+; <http://www.gnu.org/licenses/>.
+
+; 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 -NBaur gcc-13.1.0-RC2-20230419.orig/gcc/config.gcc gcc-13.1.0-RC2-20230419/gcc/config.gcc
--- gcc-13.1.0-RC2-20230419.orig/gcc/config.gcc 2023-04-19 13:53:45.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/gcc/config.gcc 2023-04-26 23:50:10.768394486 +0100
@@ -1132,7 +1132,14 @@
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"
+ extra_options="${extra_options} devkitpro.opt"
+ case ${enable_threads} in
+ "" | yes | posix) thread_file='posix' ;;
+ esac
;;
aarch64-*-fuchsia*)
tm_file="${tm_file} fuchsia.h"
diff -NBaur gcc-13.1.0-RC2-20230419.orig/gcc/gcc.cc gcc-13.1.0-RC2-20230419/gcc/gcc.cc
--- gcc-13.1.0-RC2-20230419.orig/gcc/gcc.cc 2023-04-19 13:53:46.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/gcc/gcc.cc 2023-04-26 23:50:10.776394611 +0100
@@ -868,6 +868,11 @@
#endif
#endif
+#ifndef LIBGLOSS_SPEC
+# define LIBGLOSS_SPEC "-lsysbase"
+#endif
+
+
/* config.h can define STARTFILE_SPEC to override the default crt0 files. */
#ifndef STARTFILE_SPEC
#define STARTFILE_SPEC \
@@ -1191,6 +1196,7 @@
static const char *lib_spec = LIB_SPEC;
static const char *link_gomp_spec = "";
static const char *libgcc_spec = LIBGCC_SPEC;
+static const char *libgloss_spec = LIBGLOSS_SPEC;
static const char *endfile_spec = ENDFILE_SPEC;
static const char *startfile_spec = STARTFILE_SPEC;
static const char *linker_name_spec = LINKER_NAME;
@@ -1701,6 +1707,7 @@
INIT_STATIC_SPEC ("lib", &lib_spec),
INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec),
INIT_STATIC_SPEC ("libgcc", &libgcc_spec),
+ INIT_STATIC_SPEC ("libgloss", &libgloss_spec),
INIT_STATIC_SPEC ("startfile", &startfile_spec),
INIT_STATIC_SPEC ("cross_compile", &cross_compile),
INIT_STATIC_SPEC ("version", &compiler_version),
diff -NBaur gcc-13.1.0-RC2-20230419.orig/libgcc/crtstuff.c gcc-13.1.0-RC2-20230419/libgcc/crtstuff.c
--- gcc-13.1.0-RC2-20230419.orig/libgcc/crtstuff.c 2023-04-19 13:53:49.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/libgcc/crtstuff.c 2023-04-26 23:50:10.776394611 +0100
@@ -326,7 +326,7 @@
#ifdef OBJECT_FORMAT_ELF
-#if DEFAULT_USE_CXA_ATEXIT
+#if 1 /* DEFAULT_USE_CXA_ATEXIT */
/* Declare the __dso_handle variable. It should have a unique value
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 -NBaur gcc-13.1.0-RC2-20230419.orig/libgcc/gthr.h gcc-13.1.0-RC2-20230419/libgcc/gthr.h
--- gcc-13.1.0-RC2-20230419.orig/libgcc/gthr.h 2023-04-19 13:53:49.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/libgcc/gthr.h 2023-04-26 23:50:10.776394611 +0100
@@ -136,7 +136,7 @@
/* 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 -NBaur gcc-13.1.0-RC2-20230419.orig/libstdc++-v3/include/Makefile.am gcc-13.1.0-RC2-20230419/libstdc++-v3/include/Makefile.am
--- gcc-13.1.0-RC2-20230419.orig/libstdc++-v3/include/Makefile.am 2023-04-19 13:53:50.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/libstdc++-v3/include/Makefile.am 2023-04-26 23:50:10.776394611 +0100
@@ -1417,6 +1417,7 @@
-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 <bits/\1>,g' \
< $< > $@
diff -NBaur gcc-13.1.0-RC2-20230419.orig/libstdc++-v3/include/Makefile.in gcc-13.1.0-RC2-20230419/libstdc++-v3/include/Makefile.in
--- gcc-13.1.0-RC2-20230419.orig/libstdc++-v3/include/Makefile.in 2023-04-19 13:53:50.000000000 +0100
+++ gcc-13.1.0-RC2-20230419/libstdc++-v3/include/Makefile.in 2023-04-26 23:50:10.776394611 +0100
@@ -1891,6 +1891,7 @@
-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 <bits/\1>,g' \
< $< > $@

View File

@ -1,8 +1,8 @@
diff --git a/gcc/config.gcc b/gcc/config.gcc
index c5064dd3766..decfa78fb7b 100644
index 6fd1594480a..31deea1c63b 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1093,7 +1093,14 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
@@ -1132,7 +1132,14 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
tmake_file="${tmake_file} aarch64/t-aarch64"
case $target in
aarch64-*-elf*)
@ -17,8 +17,21 @@ index c5064dd3766..decfa78fb7b 100644
;;
aarch64-*-fuchsia*)
tm_file="${tm_file} fuchsia.h"
diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc
index cc6b7c01fd1..44d53659a2f 100644
--- a/gcc/config/aarch64/aarch64-builtins.cc
+++ b/gcc/config/aarch64/aarch64-builtins.cc
@@ -1547,7 +1547,7 @@ aarch64_scalar_builtin_type_p (aarch64_simd_type t)
/* Enable AARCH64_FL_* flags EXTRA_FLAGS on top of the base Advanced SIMD
set. */
-aarch64_simd_switcher::aarch64_simd_switcher (unsigned int extra_flags)
+aarch64_simd_switcher::aarch64_simd_switcher (uint64_t extra_flags)
: m_old_asm_isa_flags (aarch64_asm_isa_flags),
m_old_general_regs_only (TARGET_GENERAL_REGS_ONLY)
{
diff --git a/gcc/config/aarch64/aarch64-elf-raw.h b/gcc/config/aarch64/aarch64-elf-raw.h
index d4d820a9d54..ed5dd440846 100644
index ec45f23fa41..a208eabd806 100644
--- a/gcc/config/aarch64/aarch64-elf-raw.h
+++ b/gcc/config/aarch64/aarch64-elf-raw.h
@@ -22,6 +22,7 @@
@ -30,10 +43,10 @@ index d4d820a9d54..ed5dd440846 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 93572fe8330..9327c52a819 100644
index a9f3e2715ca..0c7304e1d81 100644
--- a/gcc/config/aarch64/aarch64-opts.h
+++ b/gcc/config/aarch64/aarch64-opts.h
@@ -48,6 +48,12 @@ enum aarch64_tls_type {
@@ -52,6 +52,12 @@ enum aarch64_tls_type {
TLS_DESCRIPTORS
};
@ -46,11 +59,29 @@ index 93572fe8330..9327c52a819 100644
/* The code model defines the address generation strategy.
Most have a PIC and non-PIC variant. */
enum aarch64_code_model {
diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h
index 63339fa47df..02b4d3cbb8f 100644
--- a/gcc/config/aarch64/aarch64-protos.h
+++ b/gcc/config/aarch64/aarch64-protos.h
@@ -733,11 +733,11 @@ const unsigned int AARCH64_BUILTIN_CLASS = (1 << AARCH64_BUILTIN_SHIFT) - 1;
class aarch64_simd_switcher
{
public:
- aarch64_simd_switcher (unsigned int extra_flags = 0);
+ aarch64_simd_switcher (uint64_t extra_flags = 0);
~aarch64_simd_switcher ();
private:
- unsigned long m_old_asm_isa_flags;
+ uint64_t m_old_asm_isa_flags;
bool m_old_general_regs_only;
};
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index 5c9e7791a12..718db155d57 100644
index 0f04ab9fba0..c524a2f76ba 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -19413,8 +19413,24 @@ aarch64_load_tp (rtx target)
@@ -19555,8 +19555,24 @@ aarch64_load_tp (rtx target)
|| !register_operand (target, Pmode))
target = gen_reg_rtx (Pmode);
@ -78,10 +109,10 @@ index 5c9e7791a12..718db155d57 100644
}
diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
index 359b6e8561f..f5b596fc312 100644
index 155cace6afe..93ff5264a2e 100644
--- a/gcc/config/aarch64/aarch64.h
+++ b/gcc/config/aarch64/aarch64.h
@@ -1245,6 +1245,10 @@ typedef struct
@@ -1154,6 +1154,10 @@ typedef struct
/* Check TLS Descriptors mechanism is selected. */
#define TARGET_TLS_DESC (aarch64_tls_dialect == TLS_DESCRIPTORS)
@ -92,20 +123,11 @@ index 359b6e8561f..f5b596fc312 100644
extern enum aarch64_code_model aarch64_cmodel;
/* When using the tiny addressing model conditional and unconditional branches
@@ -1290,7 +1294,7 @@ extern const char *aarch64_rewrite_mcpu (int argc, const char **argv);
#define MCPU_TO_MARCH_SPEC_FUNCTIONS \
{ "rewrite_mcpu", aarch64_rewrite_mcpu },
-#if defined(__aarch64__)
+#if 0 // defined(__aarch64__)
extern const char *host_detect_local_cpu (int argc, const char **argv);
#define HAVE_LOCAL_CPU_DETECT
# define EXTRA_SPEC_FUNCTIONS \
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index 34b8059b45b..4debacf3cb9 100644
index 022eef80bc1..2024af16a17 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -6906,11 +6906,22 @@
@@ -7068,11 +7068,22 @@
(define_insn "aarch64_load_tp_hard"
[(set (match_operand:DI 0 "register_operand" "=r")
(unspec:DI [(const_int 0)] UNSPEC_TLS))]
@ -131,10 +153,10 @@ index 34b8059b45b..4debacf3cb9 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 92220b26ee2..68abc1764f6 100644
index 1d7967db9c0..17870f18b8b 100644
--- a/gcc/config/aarch64/aarch64.opt
+++ b/gcc/config/aarch64/aarch64.opt
@@ -122,6 +122,21 @@ Enum(aarch64_tls_size) String(32) Value(32)
@@ -128,6 +128,21 @@ Enum(aarch64_tls_size) String(32) Value(32)
EnumValue
Enum(aarch64_tls_size) String(48) Value(48)
@ -156,7 +178,7 @@ index 92220b26ee2..68abc1764f6 100644
march=
Target RejectNegative Negative(march=) ToLower Joined Var(aarch64_arch_string)
Use features of architecture ARCH.
@@ -260,7 +275,7 @@ TargetVariable
@@ -266,7 +281,7 @@ TargetVariable
long aarch64_stack_protector_guard_offset = 0
moutline-atomics
@ -166,7 +188,7 @@ index 92220b26ee2..68abc1764f6 100644
-param=aarch64-sve-compare-costs=
diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64
index ba74abc0a43..5202ec05d0b 100644
index a9a244ab6d6..a29f2772d63 100644
--- a/gcc/config/aarch64/t-aarch64
+++ b/gcc/config/aarch64/t-aarch64
@@ -177,8 +177,10 @@ aarch64-cc-fusion.o: $(srcdir)/config/aarch64/aarch64-cc-fusion.cc \
@ -256,26 +278,26 @@ index 00000000000..9acbbf9d27c
+
+; This comment is to ensure we retain the blank line above.
diff --git a/gcc/config/i386/host-mingw32.cc b/gcc/config/i386/host-mingw32.cc
index 3b0d83ffc60..6e063b6ccd0 100644
index acff6138d63..8dc91b75f93 100644
--- a/gcc/config/i386/host-mingw32.cc
+++ b/gcc/config/i386/host-mingw32.cc
@@ -45,7 +45,11 @@ 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? */
@@ -93,7 +93,10 @@ mingw32_gt_pch_get_address (size_t size, int)
for NT system dlls is in 0x70000000 to 0x78000000 range.
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__
+static const size_t pch_VA_max_size = UINT64_C(64 * 1024 * 1024 * 1024);
+#else
static const size_t pch_VA_max_size = 128 * 1024 * 1024;
+ size = UINT64_C(64 * 1024 * 1024 * 1024);
+#endif
/* Granularity for reserving address space. */
static size_t va_granularity = 0x10000;
res = VirtualAlloc (NULL, size,
MEM_RESERVE | MEM_TOP_DOWN,
PAGE_NOACCESS);
diff --git a/gcc/gcc.cc b/gcc/gcc.cc
index bb07cc244e3..eff31f5093d 100644
index 16bb07f2cdc..22a181a3a1c 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -860,6 +860,11 @@ proper position among the other output files. */
@@ -868,6 +868,11 @@ proper position among the other output files. */
#endif
#endif
@ -287,7 +309,7 @@ index bb07cc244e3..eff31f5093d 100644
/* config.h can define STARTFILE_SPEC to override the default crt0 files. */
#ifndef STARTFILE_SPEC
#define STARTFILE_SPEC \
@@ -1204,6 +1209,7 @@ static const char *link_spec = LINK_SPEC;
@@ -1191,6 +1196,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;
@ -295,7 +317,7 @@ index bb07cc244e3..eff31f5093d 100644
static const char *endfile_spec = ENDFILE_SPEC;
static const char *startfile_spec = STARTFILE_SPEC;
static const char *linker_name_spec = LINKER_NAME;
@@ -1709,6 +1715,7 @@ static struct spec_list static_specs[] =
@@ -1701,6 +1707,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),
@ -304,10 +326,10 @@ index bb07cc244e3..eff31f5093d 100644
INIT_STATIC_SPEC ("cross_compile", &cross_compile),
INIT_STATIC_SPEC ("version", &compiler_version),
diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
index b98b86a5a88..3f62b3616d2 100644
index 93ff5b81dc5..20c0fe89a28 100644
--- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c
@@ -325,7 +325,7 @@ register_tm_clones (void)
@@ -326,7 +326,7 @@ register_tm_clones (void)
#ifdef OBJECT_FORMAT_ELF
@ -317,7 +339,7 @@ index b98b86a5a88..3f62b3616d2 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 7943c94f6d1..6d23362f7f0 100644
index 1989c0c86ed..f1c49b2d4b1 100644
--- a/libgcc/gthr.h
+++ b/libgcc/gthr.h
@@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@ -330,10 +352,10 @@ index 7943c94f6d1..6d23362f7f0 100644
#define GTHREAD_USE_WEAK 0
#endif
diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index 7708f4cf6c5..d3f484a5623 100644
index a880e8ee227..c58249f986c 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -1366,6 +1366,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias}
@@ -1417,6 +1417,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' \
@ -342,10 +364,10 @@ index 7708f4cf6c5..d3f484a5623 100644
< $< > $@
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index 7023c2de23e..d150a616d13 100644
index 0ff875b280b..37820c57a0a 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -1857,6 +1857,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias}
@@ -1891,6 +1891,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' \

View File

@ -49,7 +49,7 @@ case "$VERSION" in
toolchain=DEVKITPPC
;;
"3" )
GCC_VER=13.1.0-RC2-20230419
GCC_VER=13.1.0
BINUTILS_VER=2.32
NEWLIB_VER=4.3.0.20230120
basedir='dka64'