Compare commits

..

6 Commits

Author SHA1 Message Date
Dave Murphy
d2e6e22b37
remove stale patches 2026-02-20 15:55:30 +00:00
Dave Murphy
f1a462cc36
devkitPPC: update newlib patch 2026-02-20 15:54:52 +00:00
Dave Murphy
9681963375
devkitA64: update newlib patch 2026-02-20 15:52:39 +00:00
Dave Murphy
e9f9826e26
update patchsets for devkitARM release 67.1 2026-02-17 17:37:34 +00:00
Dave Murphy
6af2efa45a
remove unused patches 2026-02-01 23:50:47 +00:00
Dave Murphy
0aa89d4699
patchsets for devkitA64 r29.1 2026-02-01 23:48:24 +00:00
8 changed files with 74 additions and 29765 deletions

View File

@ -1,8 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# devkitARM release 67 # devkitARM release 67.1
# devkitPPC release 49.1 # devkitPPC release 49.2
# devkitA64 release 29 # devkitA64 release 29.2
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
if [ 0 -eq 1 ] ; then if [ 0 -eq 1 ] ; then

View File

@ -1,380 +0,0 @@
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 087aaa7be37..8ae1a7bbaf4 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -1192,7 +1192,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"
+ 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 --git a/gcc/config/aarch64/aarch64-elf-raw.h b/gcc/config/aarch64/aarch64-elf-raw.h
index 15cf1eb0389..aba0e9bbff9 100644
--- a/gcc/config/aarch64/aarch64-elf-raw.h
+++ b/gcc/config/aarch64/aarch64-elf-raw.h
@@ -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 --git a/gcc/config/aarch64/aarch64-opts.h b/gcc/config/aarch64/aarch64-opts.h
index a6ca5cf016b..90470fd6c44 100644
--- a/gcc/config/aarch64/aarch64-opts.h
+++ b/gcc/config/aarch64/aarch64-opts.h
@@ -91,7 +91,8 @@ enum aarch64_tp_reg {
AARCH64_TPIDR_EL1 = 1,
AARCH64_TPIDR_EL2 = 2,
AARCH64_TPIDR_EL3 = 3,
- AARCH64_TPIDRRO_EL0 = 4
+ AARCH64_TPIDRRO_EL0 = 4,
+ AARCH64_TP_SOFT = 5
};
/* SVE vector register sizes. */
diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc
index 6d6b6552a71..1595f0951e5 100644
--- a/gcc/config/aarch64/aarch64.cc
+++ b/gcc/config/aarch64/aarch64.cc
@@ -21393,8 +21393,24 @@ aarch64_load_tp (rtx target)
|| !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 --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
index e8bd8c73c12..4fc0d8f4ded 100644
--- a/gcc/config/aarch64/aarch64.h
+++ b/gcc/config/aarch64/aarch64.h
@@ -1436,6 +1436,10 @@ typedef struct
/* 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 (aarch64_tpidr_reg != AARCH64_TP_SOFT)
+#define TARGET_SOFT_TP (aarch64_tpidr_reg == AARCH64_TP_SOFT)
+
extern enum aarch64_code_model aarch64_cmodel;
/* 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 79bbf5fafb3..e648866c39f 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -7710,11 +7710,22 @@
(define_insn "aarch64_load_tp_hard"
[(set (match_operand:DI 0 "register_operand" "=r")
(unspec:DI [(const_int 0)] UNSPEC_TLS))]
- ""
+ "TARGET_HARD_TP"
"* return aarch64_output_load_tp (operands[0]);"
[(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 --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt
index f32d56d4ffa..7cf8d3ba3d4 100644
--- a/gcc/config/aarch64/aarch64.opt
+++ b/gcc/config/aarch64/aarch64.opt
@@ -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)
+EnumValue
+Enum(tp_reg) String(soft) Value(AARCH64_TP_SOFT)
+
mtp=
Target RejectNegative Joined Enum(tp_reg) Var(aarch64_tpidr_reg) Init(AARCH64_TPIDR_EL0) Save
Specify the thread pointer register.
@@ -338,7 +341,7 @@ TargetVariable
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-vect-compare-costs=
diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64
index 59571948479..f50c37d8b3c 100644
--- a/gcc/config/aarch64/t-aarch64
+++ b/gcc/config/aarch64/t-aarch64
@@ -198,8 +198,10 @@ aarch64-ldp-fusion.o: $(srcdir)/config/aarch64/aarch64-ldp-fusion.cc \
$(srcdir)/config/aarch64/aarch64-ldp-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 --git a/gcc/config/devkitpro.h b/gcc/config/devkitpro.h
new file mode 100644
index 00000000000..a25459e4352
--- /dev/null
+++ b/gcc/config/devkitpro.h
@@ -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 --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
+; <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 --git a/gcc/config/devkitpro.opt.urls b/gcc/config/devkitpro.opt.urls
new file mode 100644
index 00000000000..ab7b466aa71
--- /dev/null
+++ b/gcc/config/devkitpro.opt.urls
@@ -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 e083f49f3da..1b81e7e88ce 100644
--- a/gcc/config/i386/host-mingw32.cc
+++ b/gcc/config/i386/host-mingw32.cc
@@ -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 4fd87f2c4a1..6af06f7b032 100644
--- a/gcc/gcc.cc
+++ b/gcc/gcc.cc
@@ -888,6 +888,11 @@ proper position among the other output files. */
#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 \
@@ -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;
+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;
@@ -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),
+ 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 --git a/libcc1/configure b/libcc1/configure
index ea689a353c8..98f9d9b21b7 100755
--- a/libcc1/configure
+++ b/libcc1/configure
@@ -5119,7 +5119,7 @@ else
# Adding the `sed 1q' prevents false positives on HP-UX, which says:
# nm: unknown option "B" ignored
case `"$tmp_nm" -B "$tmp_nm_to_nm" 2>&1 | grep -v '^ *$' | sed '1q'` in
- *$tmp_nm*) lt_cv_path_NM="$tmp_nm -B"
+ $tmp_nm*) lt_cv_path_NM="$tmp_nm -B"
break
;;
*)
diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
index b9767cd1eee..362689c9f0b 100644
--- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c
@@ -326,7 +326,7 @@ register_tm_clones (void)
#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 --git a/libgcc/gthr.h b/libgcc/gthr.h
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
/* 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/libsanitizer/sanitizer_common/sanitizer_platform.h b/libsanitizer/sanitizer_common/sanitizer_platform.h
index 57966403c92..c624f31b5d6 100644
--- a/libsanitizer/sanitizer_common/sanitizer_platform.h
+++ b/libsanitizer/sanitizer_common/sanitizer_platform.h
@@ -12,11 +12,13 @@
#ifndef SANITIZER_PLATFORM_H
#define SANITIZER_PLATFORM_H
+#if 0
#if !defined(__linux__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && \
!defined(__APPLE__) && !defined(_WIN32) && !defined(__Fuchsia__) && \
!(defined(__sun__) && defined(__svr4__))
# error "This operating system is not supported"
#endif
+#endif
// Get __GLIBC__ on a glibc platform. Exclude Android: features.h includes C
// function declarations into a .S file which doesn't compile.
diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index 537774c2668..76da4f35b96 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -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' \
+ -e 's/_GLIBCXX___DEVKITA64_GLIBCXX___/__DEVKITA64__/g' \
-e 's,^#include "\(.*\)",#include <bits/\1>,g' \
< $< > $@
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index 7b96b2207f8..817de242772 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -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' \
+ -e 's/_GLIBCXX___DEVKITA64_GLIBCXX___/__DEVKITA64__/g' \
-e 's,^#include "\(.*\)",#include <bits/\1>,g' \
< $< > $@
diff --git a/lto-plugin/configure b/lto-plugin/configure
index 28f5dd79cd7..a79f318a4d6 100755
--- a/lto-plugin/configure
+++ b/lto-plugin/configure
@@ -6469,7 +6469,7 @@ else
# Adding the `sed 1q' prevents false positives on HP-UX, which says:
# nm: unknown option "B" ignored
case `"$tmp_nm" -B "$tmp_nm_to_nm" 2>&1 | grep -v '^ *$' | sed '1q'` in
- *$tmp_nm*) lt_cv_path_NM="$tmp_nm -B"
+ $tmp_nm*) lt_cv_path_NM="$tmp_nm -B"
break
;;
*)

File diff suppressed because it is too large Load Diff

View File

@ -245,7 +245,7 @@ index 1939d55b9fd..62d425cb596 100644
option nofp remove ALL_FP option nofp remove ALL_FP
diff --git a/gcc/config/arm/devkitarm.h b/gcc/config/arm/devkitarm.h diff --git a/gcc/config/arm/devkitarm.h b/gcc/config/arm/devkitarm.h
new file mode 100644 new file mode 100644
index 00000000000..4d6c16a3db4 index 00000000000..7f408d6d81d
--- /dev/null --- /dev/null
+++ b/gcc/config/arm/devkitarm.h +++ b/gcc/config/arm/devkitarm.h
@@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
@ -278,7 +278,7 @@ index 00000000000..4d6c16a3db4
+ do { \ + do { \
+ builtin_define ("__DEVKITPRO__"); \ + builtin_define ("__DEVKITPRO__"); \
+ builtin_define ("__DEVKITARM__"); \ + builtin_define ("__DEVKITARM__"); \
+ TARGET_BPABI_CPP_BUILTINS(); + TARGET_BPABI_CPP_BUILTINS(); \
+ } while (0) + } while (0)
+ +
+ +

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -7241,10 +7241,10 @@ index 000000000..5c5831cdf
+} +}
diff --git a/libgloss/libsysbase/flock.c b/libgloss/libsysbase/flock.c diff --git a/libgloss/libsysbase/flock.c b/libgloss/libsysbase/flock.c
new file mode 100644 new file mode 100644
index 000000000..8a66cd19f index 000000000..e9d2200d4
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/flock.c +++ b/libgloss/libsysbase/flock.c
@@ -0,0 +1,22 @@ @@ -0,0 +1,43 @@
+#include <config.h> +#include <config.h>
+#include <_ansi.h> +#include <_ansi.h>
+#include <_syslist.h> +#include <_syslist.h>
@ -7267,6 +7267,28 @@ index 000000000..8a66cd19f
+ __lock_release_recursive(*(_LOCK_RECURSIVE_T*)&fp->_lock); + __lock_release_recursive(*(_LOCK_RECURSIVE_T*)&fp->_lock);
+} +}
+ +
+void flockfile(FILE *fp)
+{
+ if (!(fp->_flags & __SSTR)) {
+ __lock_acquire_recursive(fp->_lock);
+ }
+}
+
+void funlockfile(FILE *fp)
+{
+ if (!(fp->_flags & __SSTR)) {
+ __lock_release_recursive(fp->_lock);
+ }
+}
+
+int ftrylockfile(FILE *fp)
+{
+ if (!(fp->_flags & __SSTR)) {
+ return __lock_try_acquire_recursive(fp->_lock);
+ }
+ return 0;
+}
\ No newline at end of file
diff --git a/libgloss/libsysbase/fnmatch.c b/libgloss/libsysbase/fnmatch.c diff --git a/libgloss/libsysbase/fnmatch.c b/libgloss/libsysbase/fnmatch.c
new file mode 100644 new file mode 100644
index 000000000..893b662ab index 000000000..893b662ab
@ -7966,10 +7988,10 @@ index 000000000..5e81c5d42
+#endif +#endif
diff --git a/libgloss/libsysbase/iosupport.c b/libgloss/libsysbase/iosupport.c diff --git a/libgloss/libsysbase/iosupport.c b/libgloss/libsysbase/iosupport.c
new file mode 100644 new file mode 100644
index 000000000..3fdf9749f index 000000000..d766b3a17
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/iosupport.c +++ b/libgloss/libsysbase/iosupport.c
@@ -0,0 +1,132 @@ @@ -0,0 +1,108 @@
+#include <stdlib.h> +#include <stdlib.h>
+#include <string.h> +#include <string.h>
+#include <ctype.h> +#include <ctype.h>
@ -7994,34 +8016,10 @@ index 000000000..3fdf9749f
+//--------------------------------------------------------------------------------- +//---------------------------------------------------------------------------------
+const devoptab_t dotab_stdnull = { +const devoptab_t dotab_stdnull = {
+//--------------------------------------------------------------------------------- +//---------------------------------------------------------------------------------
+ "stdnull", // device name + .name = "stdnull",
+ 0, // size of file structure + .structSize = 0,
+ NULL, // device open + .write_r = null_write,
+ NULL, // device close + .dirStateSize = 0
+ null_write, // device write
+ NULL, // device read
+ NULL, // device seek
+ NULL, // device fstat
+ NULL, // device stat
+ NULL, // device link
+ NULL, // device unlink
+ NULL, // device chdir
+ NULL, // device rename
+ NULL, // device mkdir
+ 0, // dirStateSize
+ NULL, // device diropen_r
+ NULL, // device dirreset_r
+ NULL, // device dirnext_r
+ NULL, // device dirclose_r
+ NULL, // device statvfs_r
+ NULL, // device ftruncate_r
+ NULL, // device fsync_r
+ NULL, // deviceData
+ NULL, // chmod_r
+ NULL, // fchmod_r
+ NULL, // rmdir_r
+ NULL, // lstat_r
+ NULL, // utimes_r
+}; +};
+ +
+//--------------------------------------------------------------------------------- +//---------------------------------------------------------------------------------
@ -11821,6 +11819,19 @@ index 000000000..380329d34
+ +
+#endif // _SYS_STATVFS_H +#endif // _SYS_STATVFS_H
\ No newline at end of file \ No newline at end of file
diff --git a/newlib/libc/include/sys/stdio.h b/newlib/libc/include/sys/stdio.h
index 91a274596..f264adb74 100644
--- a/newlib/libc/include/sys/stdio.h
+++ b/newlib/libc/include/sys/stdio.h
@@ -24,4 +24,8 @@
#endif
#endif
+void flockfile (FILE *fp);
+void funlockfile (FILE *fp);
+int ftrylockfile (FILE *fp);
+
#endif /* _NEWLIB_STDIO_H */
diff --git a/newlib/libc/include/sys/syslimits.h b/newlib/libc/include/sys/syslimits.h diff --git a/newlib/libc/include/sys/syslimits.h b/newlib/libc/include/sys/syslimits.h
index c872d2018..b3800187f 100644 index c872d2018..b3800187f 100644
--- a/newlib/libc/include/sys/syslimits.h --- a/newlib/libc/include/sys/syslimits.h
@ -12067,7 +12078,7 @@ index 000000000..2aaca6080
+#endif // _dirent_h_ +#endif // _dirent_h_
diff --git a/newlib/libc/machine/aarch64/sys/lock.h b/newlib/libc/machine/aarch64/sys/lock.h diff --git a/newlib/libc/machine/aarch64/sys/lock.h b/newlib/libc/machine/aarch64/sys/lock.h
new file mode 100644 new file mode 100644
index 000000000..41803dd9d index 000000000..358f2ae56
--- /dev/null --- /dev/null
+++ b/newlib/libc/machine/aarch64/sys/lock.h +++ b/newlib/libc/machine/aarch64/sys/lock.h
@@ -0,0 +1,119 @@ @@ -0,0 +1,119 @@
@ -12096,17 +12107,17 @@ index 000000000..41803dd9d
+extern "C" { +extern "C" {
+#endif +#endif
+ +
+static inline void __libc_lock_init(_LOCK_T *lock) { +static __inline void __libc_lock_init(_LOCK_T *lock) {
+ *lock = __LOCK_INITIALIZER; + *lock = __LOCK_INITIALIZER;
+} +}
+ +
+static inline void __libc_lock_close(_LOCK_T *lock ) {} +static __inline void __libc_lock_close(_LOCK_T *lock ) {}
+ +
+static inline void __libc_lock_init_recursive(_LOCK_RECURSIVE_T *lock) { +static __inline void __libc_lock_init_recursive(_LOCK_RECURSIVE_T *lock) {
+ *lock = __LOCK_INITIALIZER_RECURSIVE; + *lock = __LOCK_INITIALIZER_RECURSIVE;
+} +}
+ +
+static inline void __libc_lock_close_recursive(_LOCK_RECURSIVE_T *lock ) {} +static __inline void __libc_lock_close_recursive(_LOCK_RECURSIVE_T *lock ) {}
+ +
+extern void __libc_lock_acquire(_LOCK_T *lock); +extern void __libc_lock_acquire(_LOCK_T *lock);
+extern void __libc_lock_acquire_recursive(_LOCK_RECURSIVE_T *lock); +extern void __libc_lock_acquire_recursive(_LOCK_RECURSIVE_T *lock);
@ -12118,10 +12129,10 @@ index 000000000..41803dd9d
+extern int __libc_lock_try_acquire_recursive(_LOCK_RECURSIVE_T *lock); +extern int __libc_lock_try_acquire_recursive(_LOCK_RECURSIVE_T *lock);
+ +
+/* Returns errno */ +/* Returns errno */
+static inline int __libc_cond_init(_COND_T *cond) { +static __inline int __libc_cond_init(_COND_T *cond) {
+ *cond = __COND_INITIALIZER; + *cond = __COND_INITIALIZER;
+} +}
+static inline void __libc_cond_close(_COND_T *cond ) {} +static __inline void __libc_cond_close(_COND_T *cond ) {}
+ +
+extern int __libc_cond_signal(_COND_T *cond); +extern int __libc_cond_signal(_COND_T *cond);
+extern int __libc_cond_broadcast(_COND_T *cond); +extern int __libc_cond_broadcast(_COND_T *cond);
@ -12501,10 +12512,10 @@ index 000000000..3618eea85
+#endif // __SYS_LOCK_H__ +#endif // __SYS_LOCK_H__
diff --git a/newlib/libc/machine/powerpc/sys/stdio.h b/newlib/libc/machine/powerpc/sys/stdio.h diff --git a/newlib/libc/machine/powerpc/sys/stdio.h b/newlib/libc/machine/powerpc/sys/stdio.h
new file mode 100644 new file mode 100644
index 000000000..04ebd1ee0 index 000000000..ed88fef8a
--- /dev/null --- /dev/null
+++ b/newlib/libc/machine/powerpc/sys/stdio.h +++ b/newlib/libc/machine/powerpc/sys/stdio.h
@@ -0,0 +1,25 @@ @@ -0,0 +1,29 @@
+#ifndef _NEWLIB_STDIO_H +#ifndef _NEWLIB_STDIO_H
+#define _NEWLIB_STDIO_H +#define _NEWLIB_STDIO_H
+ +
@ -12528,6 +12539,10 @@ index 000000000..04ebd1ee0
+# endif +# endif
+#endif /* __SINGLE_THREAD__ */ +#endif /* __SINGLE_THREAD__ */
+ +
+void flockfile (FILE *fp);
+void funlockfile (FILE *fp);
+int ftrylockfile (FILE *fp);
+
+#endif /* _NEWLIB_STDIO_H */ +#endif /* _NEWLIB_STDIO_H */
+ +
diff --git a/newlib/libc/stdio/fread.c b/newlib/libc/stdio/fread.c diff --git a/newlib/libc/stdio/fread.c b/newlib/libc/stdio/fread.c
@ -13284,7 +13299,7 @@ index 000000000..2aaca6080
+#endif // _dirent_h_ +#endif // _dirent_h_
diff --git a/newlib/libc/sys/arm/sys/lock.h b/newlib/libc/sys/arm/sys/lock.h diff --git a/newlib/libc/sys/arm/sys/lock.h b/newlib/libc/sys/arm/sys/lock.h
new file mode 100644 new file mode 100644
index 000000000..fd98c32d7 index 000000000..ccce683f1
--- /dev/null --- /dev/null
+++ b/newlib/libc/sys/arm/sys/lock.h +++ b/newlib/libc/sys/arm/sys/lock.h
@@ -0,0 +1,122 @@ @@ -0,0 +1,122 @@
@ -13314,13 +13329,13 @@ index 000000000..fd98c32d7
+extern "C" { +extern "C" {
+#endif +#endif
+ +
+static inline void __libc_lock_init(_LOCK_T *lock) { +static __inline void __libc_lock_init(_LOCK_T *lock) {
+ *lock = __LOCK_INITIALIZER; + *lock = __LOCK_INITIALIZER;
+} +}
+ +
+static inline void __libc_lock_close(_LOCK_T *lock ) {} +static __inline void __libc_lock_close(_LOCK_T *lock ) {}
+ +
+static inline void __libc_lock_init_recursive(_LOCK_RECURSIVE_T *lock) { +static __inline void __libc_lock_init_recursive(_LOCK_RECURSIVE_T *lock) {
+ *lock = __LOCK_INITIALIZER_RECURSIVE; + *lock = __LOCK_INITIALIZER_RECURSIVE;
+} +}
+ +
@ -13336,10 +13351,10 @@ index 000000000..fd98c32d7
+extern int __libc_lock_try_acquire_recursive(_LOCK_RECURSIVE_T *lock); +extern int __libc_lock_try_acquire_recursive(_LOCK_RECURSIVE_T *lock);
+ +
+/* Returns errno */ +/* Returns errno */
+static inline int __libc_cond_init(_COND_T *cond) { +static __inline int __libc_cond_init(_COND_T *cond) {
+ *cond = __COND_INITIALIZER; + *cond = __COND_INITIALIZER;
+} +}
+static inline void __libc_cond_close(_COND_T *cond ) {} +static __inline void __libc_cond_close(_COND_T *cond ) {}
+ +
+extern int __libc_cond_signal(_COND_T *cond); +extern int __libc_cond_signal(_COND_T *cond);
+extern int __libc_cond_broadcast(_COND_T *cond); +extern int __libc_cond_broadcast(_COND_T *cond);

View File

@ -32,10 +32,10 @@ case "$VERSION" in
"1" ) "1" )
BINUTILS_VER=2.45.1 BINUTILS_VER=2.45.1
GCC_VER=15.2.0 GCC_VER=15.2.0
NEWLIB_VER=4.5.0.20241231 NEWLIB_VER=4.6.0.20260123
BINUTILS_PKGREL=2 BINUTILS_PKGREL=2
GCC_PKGREL=6 GCC_PKGREL=7
NEWLIB_PKGREL=5 NEWLIB_PKGREL=4
basedir='dkarm-eabi' basedir='dkarm-eabi'
package=devkitARM package=devkitARM
target=arm-none-eabi target=arm-none-eabi
@ -52,7 +52,7 @@ case "$VERSION" in
NEWLIB_VER=4.6.0.20260123 NEWLIB_VER=4.6.0.20260123
BINUTILS_PKGREL=2 BINUTILS_PKGREL=2
GCC_PKGREL=7 GCC_PKGREL=7
NEWLIB_PKGREL=2 NEWLIB_PKGREL=4
basedir='dkppc' basedir='dkppc'
package=devkitPPC package=devkitPPC
target=powerpc-eabi target=powerpc-eabi
@ -66,10 +66,10 @@ case "$VERSION" in
"3" ) "3" )
GCC_VER=15.2.0 GCC_VER=15.2.0
BINUTILS_VER=2.45.1 BINUTILS_VER=2.45.1
NEWLIB_VER=4.5.0.20241231 NEWLIB_VER=4.6.0.20260123
BINUTILS_PKGREL=2 BINUTILS_PKGREL=2
GCC_PKGREL=3 GCC_PKGREL=7
NEWLIB_PKGREL=5 NEWLIB_PKGREL=4
basedir='dka64' basedir='dka64'
package=devkitA64 package=devkitA64
target=aarch64-none-elf target=aarch64-none-elf