diff --git a/dkarm-eabi/patches/newlib-3.0.0.patch b/dkarm-eabi/patches/newlib-3.1.0.patch similarity index 99% rename from dkarm-eabi/patches/newlib-3.0.0.patch rename to dkarm-eabi/patches/newlib-3.1.0.patch index 8c2315c..b6454d1 100644 --- a/dkarm-eabi/patches/newlib-3.0.0.patch +++ b/dkarm-eabi/patches/newlib-3.1.0.patch @@ -1,8 +1,8 @@ diff --git a/libgloss/configure b/libgloss/configure -index aa6f8f834..0e8579890 100755 +index 1a4033dce..ba7aea7b0 100755 --- a/libgloss/configure +++ b/libgloss/configure -@@ -2594,6 +2594,8 @@ if test "${config_libnosys}" = "true"; then +@@ -2599,6 +2599,8 @@ if test "${config_libnosys}" = "true"; then fi @@ -12,7 +12,7 @@ index aa6f8f834..0e8579890 100755 ac_config_commands="$ac_config_commands depfiles" diff --git a/libgloss/configure.in b/libgloss/configure.in -index 6da164352..f18f17447 100644 +index 41843eed1..dc0e2a5fd 100644 --- a/libgloss/configure.in +++ b/libgloss/configure.in @@ -2,6 +2,7 @@ dnl Process this file with autoconf to produce a configure script. @@ -23,7 +23,7 @@ index 6da164352..f18f17447 100644 if test "${enable_shared}" = "yes" ; then echo "Shared libraries not supported for cross compiling, ignored" -@@ -187,6 +188,7 @@ dnl fi +@@ -190,6 +191,7 @@ dnl fi if test "${config_libnosys}" = "true"; then AC_CONFIG_SUBDIRS([libnosys]) fi @@ -7404,10 +7404,10 @@ index 000000000..61de918bc + return ret; +} diff --git a/newlib/configure.host b/newlib/configure.host -index eb645868b..9cb69fde9 100644 +index 6c49cb750..6a5e1c78d 100644 --- a/newlib/configure.host +++ b/newlib/configure.host -@@ -631,6 +631,14 @@ newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DEXIT_PROVID +@@ -666,6 +666,14 @@ newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DEXIT_PROVID syscall_dir=syscalls default_newlib_io_long_long="yes" ;; @@ -7423,7 +7423,7 @@ index eb645868b..9cb69fde9 100644 syscall_dir=syscalls ;; diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h -index cbc0fa989..10960f912 100644 +index 164d95bca..083e48758 100644 --- a/newlib/libc/include/stdio.h +++ b/newlib/libc/include/stdio.h @@ -233,7 +233,7 @@ int fsetpos (FILE *, const _fpos_t *); @@ -7436,7 +7436,7 @@ index cbc0fa989..10960f912 100644 void clearerr (FILE *); int feof (FILE *); diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h -index 2082dfdb1..e535f189b 100644 +index 49b62ebf6..d84ffaa59 100644 --- a/newlib/libc/include/sys/config.h +++ b/newlib/libc/include/sys/config.h @@ -4,6 +4,9 @@ @@ -7516,7 +7516,7 @@ index a3fb5c02c..5debd1525 100644 + +#endif // _dirent_h_ diff --git a/newlib/libc/include/sys/features.h b/newlib/libc/include/sys/features.h -index 2900b332f..6efb54eb3 100644 +index f28dd071b..96980676d 100644 --- a/newlib/libc/include/sys/features.h +++ b/newlib/libc/include/sys/features.h @@ -330,6 +330,9 @@ extern "C" { @@ -7531,7 +7531,7 @@ index 2900b332f..6efb54eb3 100644 #ifdef __rtems__ diff --git a/newlib/libc/include/sys/iosupport.h b/newlib/libc/include/sys/iosupport.h new file mode 100644 -index 000000000..dfed4107e +index 000000000..c190fa37d --- /dev/null +++ b/newlib/libc/include/sys/iosupport.h @@ -0,0 +1,112 @@ @@ -7547,7 +7547,7 @@ index 000000000..dfed4107e +#include +#include +#include -+#include ++#include + +enum { + STD_IN, @@ -7648,7 +7648,7 @@ index 000000000..dfed4107e +#endif // __iosupp_h__ +//--------------------------------------------------------------------------------- diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h -index 1ef226194..ce3721a14 100644 +index 6e55e1c1f..6e0c1c9cf 100644 --- a/newlib/libc/include/sys/reent.h +++ b/newlib/libc/include/sys/reent.h @@ -416,6 +416,8 @@ struct _reent @@ -7659,8 +7659,8 @@ index 1ef226194..ce3721a14 100644 + void *deviceData; }; - extern const struct __sFILE_fake __sf_fake_stdin; -@@ -647,6 +649,7 @@ struct _reent + #ifdef _REENT_GLOBAL_STDIO_STREAMS +@@ -686,6 +688,7 @@ struct _reent # ifndef _REENT_GLOBAL_STDIO_STREAMS __FILE __sf[3]; /* first three file descriptors */ # endif @@ -7752,10 +7752,10 @@ index 5e937f103..635a7a6b8 100644 }; #endif diff --git a/newlib/libc/locale/locale.c b/newlib/libc/locale/locale.c -index baa5451a6..a11f89473 100644 +index 4c343e462..c04493460 100644 --- a/newlib/libc/locale/locale.c +++ b/newlib/libc/locale/locale.c -@@ -91,7 +91,7 @@ beginning with <<"LC_">>. +@@ -92,7 +92,7 @@ beginning with <<"LC_">>. <> returns a pointer to a structure (also defined in `<>') describing the locale-specific conventions currently @@ -7764,7 +7764,7 @@ index baa5451a6..a11f89473 100644 <<_localeconv_r>> and <<_setlocale_r>> are reentrant versions of <> and <> respectively. The extra argument -@@ -165,15 +165,18 @@ No supporting OS subroutines are required. +@@ -166,15 +166,18 @@ No supporting OS subroutines are required. #include "../ctype/ctype_.h" #include "../stdlib/local.h" @@ -7783,7 +7783,7 @@ index baa5451a6..a11f89473 100644 #ifdef _MB_CAPABLE /* * Category names for getenv() -@@ -193,7 +196,11 @@ static char *categories[_LC_LAST] = { +@@ -194,7 +197,11 @@ static char *categories[_LC_LAST] = { * Default locale per POSIX. Can be overridden on a per-target base. */ #ifndef DEFAULT_LOCALE @@ -7796,7 +7796,7 @@ index baa5451a6..a11f89473 100644 #endif #ifdef _MB_CAPABLE -@@ -206,8 +213,13 @@ char __default_locale[ENCODING_LEN + 1] = DEFAULT_LOCALE; +@@ -207,8 +214,13 @@ char __default_locale[ENCODING_LEN + 1] = DEFAULT_LOCALE; const struct __locale_t __C_locale = { { "C", "C", "C", "C", "C", "C", "C", }, @@ -7810,7 +7810,7 @@ index baa5451a6..a11f89473 100644 0, DEFAULT_CTYPE_PTR, { -@@ -218,9 +230,15 @@ const struct __locale_t __C_locale = +@@ -219,9 +231,15 @@ const struct __locale_t __C_locale = CHAR_MAX, CHAR_MAX }, #ifndef __HAVE_LOCALE_INFO__ @@ -7826,7 +7826,7 @@ index baa5451a6..a11f89473 100644 #else /* __HAVE_LOCALE_INFO__ */ { { NULL, NULL }, /* LC_ALL */ -@@ -239,10 +257,11 @@ const struct __locale_t __C_locale = +@@ -240,10 +258,11 @@ const struct __locale_t __C_locale = }; #endif /* _MB_CAPABLE */ @@ -7839,7 +7839,7 @@ index baa5451a6..a11f89473 100644 __utf8_wctomb, __utf8_mbtowc, #else -@@ -259,9 +278,15 @@ struct __locale_t __global_locale = +@@ -260,9 +279,15 @@ struct __locale_t __global_locale = CHAR_MAX, CHAR_MAX }, #ifndef __HAVE_LOCALE_INFO__ @@ -7855,7 +7855,7 @@ index baa5451a6..a11f89473 100644 #else /* __HAVE_LOCALE_INFO__ */ { { NULL, NULL }, /* LC_ALL */ -@@ -295,7 +320,7 @@ _setlocale_r (struct _reent *p, +@@ -296,7 +321,7 @@ _setlocale_r (struct _reent *p, { #ifndef _MB_CAPABLE if (locale) @@ -7864,7 +7864,7 @@ index baa5451a6..a11f89473 100644 if (strcmp (locale, "POSIX") && strcmp (locale, "C") && strcmp (locale, "")) return NULL; -@@ -982,6 +1007,7 @@ __locale_ctype_ptr_l (struct __locale_t *locale) +@@ -990,6 +1015,7 @@ __locale_ctype_ptr_l (struct __locale_t *locale) const char * __locale_ctype_ptr (void) @@ -7932,17 +7932,15 @@ index d9dbcd5c3..43712f813 100644 diff --git a/newlib/libc/machine/arm/sync_synchronize.c b/newlib/libc/machine/arm/sync_synchronize.c new file mode 100644 -index 000000000..3acc9e094 +index 000000000..f5a85c3a8 --- /dev/null +++ b/newlib/libc/machine/arm/sync_synchronize.c -@@ -0,0 +1,10 @@ +@@ -0,0 +1,8 @@ +#if __ARM_ARCH < 6 +#include +void __attribute__((weak)) +__sync_synchronize (void) +{ -+ __warn_references (__sync_synchronize, -+ "legacy compatible __sync_synchronize used. Not suitable for multi-threaded applications"); + return; +} +#endif @@ -8093,7 +8091,7 @@ index c4bf2dbe3..d756df37d 100644 if (ch == 'S' || (flags & LONGINT)) { mbstate_t ps; diff --git a/newlib/libc/stdio/vfscanf.c b/newlib/libc/stdio/vfscanf.c -index b97235559..298f68a9c 100644 +index 9c38eebf4..fbc8d877d 100644 --- a/newlib/libc/stdio/vfscanf.c +++ b/newlib/libc/stdio/vfscanf.c @@ -74,6 +74,8 @@ These are GNU extensions. @@ -8120,7 +8118,7 @@ index 980b31e3b..722be905e 100644 #ifdef INTEGER_ONLY diff --git a/newlib/libc/stdio/vfwscanf.c b/newlib/libc/stdio/vfwscanf.c -index c3470a15c..626f13723 100644 +index 0464b0837..435fc0142 100644 --- a/newlib/libc/stdio/vfwscanf.c +++ b/newlib/libc/stdio/vfwscanf.c @@ -74,6 +74,9 @@ PORTABILITY diff --git a/select_toolchain.sh b/select_toolchain.sh index 847982b..e90374a 100755 --- a/select_toolchain.sh +++ b/select_toolchain.sh @@ -32,7 +32,7 @@ case "$VERSION" in "1" ) GCC_VER=8.2.0 BINUTILS_VER=2.32 - NEWLIB_VER=3.0.0 + NEWLIB_VER=3.1.0 GDB_VER=8.2.1 basedir='dkarm-eabi' package=devkitARM