Compare commits

...

19 Commits

Author SHA1 Message Date
Dave Murphy
b8c7c915bc allow prevention of binary stripping 2021-05-09 13:50:54 +01:00
Dave Murphy
c108162819 use ansi stdio on mingw host too 2021-05-09 13:38:10 +01:00
Dave Murphy
e952463476 use the supplied zlib 2021-05-08 21:28:54 +01:00
Dave Murphy
1444dc91df allow external variables to influence build 2021-05-08 21:10:04 +01:00
Dave Murphy
4219405837 devkitARM: update gcc patch 2021-04-30 13:08:32 +01:00
Dave Murphy
aacd4f8bf6 devkitARM: allow external gcc config params 2021-04-30 13:08:32 +01:00
Dave Murphy
e4cb9e3b2f devkitARM: update binutils to 2.36.1 2021-04-30 13:08:32 +01:00
Dave Murphy
85ec801a13 devkitARM: update newlib to 4.1.0 2021-04-30 13:08:32 +01:00
Dave Murphy
0eb81ba063 devkitARM: next release is 56 2021-04-30 13:08:32 +01:00
Dave Murphy
5740d1d57d devkitARM: update gcc to 11.1.0 2021-04-30 13:08:32 +01:00
Dave Murphy
d2c48d04c2 ignore .xz files 2021-04-29 22:53:42 +01:00
Dave Murphy
289d6a6aa0 use latest crtls & rules 2021-04-29 22:53:42 +01:00
Dave Murphy
c33f389df1 add zstd to configure options 2021-04-29 22:53:42 +01:00
Dave Murphy
2938af4ed5 add isl to configure options 2021-04-29 22:53:42 +01:00
Dave Murphy
0f4422c92c devkitA64: allow external gcc config params 2021-04-29 22:53:42 +01:00
Dave Murphy
dc5b7bb5a6 remove cross build scripts 2021-04-29 22:53:42 +01:00
Dave Murphy
a87f68d4dd devkitA64: update gcc to 11.1.0 2021-04-29 22:53:26 +01:00
Dave Murphy
a9b611e134 dlls no longer required 2021-04-27 16:49:40 +01:00
Dave Murphy
6015da5cab devkitA64: update newlib to 4.1.0 2021-04-27 16:49:31 +01:00
17 changed files with 491 additions and 367 deletions

1
.gitignore vendored
View File

@@ -2,6 +2,7 @@ config.sh
.devkitARM* .devkitARM*
.devkitPPC* .devkitPPC*
.devkitA64* .devkitA64*
*.xz
*.gz *.gz
*.bz2 *.bz2
*~ *~

View File

@@ -1,9 +1,9 @@
#!/bin/bash #!/bin/bash
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# devkitARM release 55 # devkitARM release 56
# devkitPPC release 38 # devkitPPC release 38
# devkitA64 release 16 # devkitA64 release 17
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
if [ 0 -eq 1 ] ; then if [ 0 -eq 1 ] ; then
@@ -28,12 +28,12 @@ echo
DKARM_RULES_VER=1.2.0 DKARM_RULES_VER=1.2.1
DKARM_CRTLS_VER=1.0.0 DKARM_CRTLS_VER=1.1.1
DKPPC_RULES_VER=1.0.0 DKPPC_RULES_VER=1.1.0
DKA64_RULES_VER=1.0.0 DKA64_RULES_VER=1.0.1
OSXMIN=${OSXMIN:-10.9} OSXMIN=${OSXMIN:-10.9}
@@ -59,13 +59,6 @@ if [ ! -z "$CROSSBUILD" ] ; then
fi fi
fi fi
#---------------------------------------------------------------------------------
# Sane defaults for building toolchain
#---------------------------------------------------------------------------------
export CFLAGS="-O2 -pipe"
export CXXFLAGS="$CFLAGS"
unset LDFLAGS
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# Look for automated configuration file to bypass prompts # Look for automated configuration file to bypass prompts
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
@@ -126,7 +119,7 @@ if [ ! -z $CROSSBUILD ]; then
export PATH=/opt/devkitpro/$package/bin:$PATH export PATH=/opt/devkitpro/$package/bin:$PATH
prefix=$INSTALLDIR/$CROSSBUILD/$package prefix=$INSTALLDIR/$CROSSBUILD/$package
CROSS_PARAMS="$CROSS_PARAMS --host=$CROSSBUILD" CROSS_PARAMS="$CROSS_PARAMS --host=$CROSSBUILD"
CROSS_GCC_PARAMS="--with-gmp=$CROSSPATH --with-mpfr=$CROSSPATH --with-mpc=$CROSSPATH" CROSS_GCC_PARAMS="--with-gmp=$CROSSPATH --with-mpfr=$CROSSPATH --with-mpc=$CROSSPATH --with-isl=$CROSSPATH --with-zstd=$CROSSPATH"
else else
prefix=$INSTALLDIR/$package prefix=$INSTALLDIR/$package
fi fi
@@ -162,7 +155,7 @@ case $PLATFORM in
fi fi
;; ;;
MINGW32* ) MINGW32* )
cppflags="-D__USE_MINGW_ACCESS" cppflags="-D__USE_MINGW_ACCESS -D__USE_MINGW_ANSI_STDIO=1"
;; ;;
esac esac
@@ -189,15 +182,15 @@ fi
if [ "$BUILD_DKPRO_SKIP_CRTLS" != "1" ]; then if [ "$BUILD_DKPRO_SKIP_CRTLS" != "1" ]; then
if [ $VERSION -eq 1 ]; then if [ $VERSION -eq 1 ]; then
archives="devkitarm-rules-$DKARM_RULES_VER.tar.xz devkitarm-crtls-$DKARM_CRTLS_VER.tar.xz $archives" archives="devkitarm-rules-$DKARM_RULES_VER.tar.gz devkitarm-crtls-$DKARM_CRTLS_VER.tar.gz $archives"
fi fi
if [ $VERSION -eq 2 ]; then if [ $VERSION -eq 2 ]; then
archives="devkitppc-rules-$DKPPC_RULES_VER.tar.xz $archives" archives="devkitppc-rules-$DKPPC_RULES_VER.tar.gz $archives"
fi fi
if [ $VERSION -eq 3 ]; then if [ $VERSION -eq 3 ]; then
archives="devkita64-rules-$DKA64_RULES_VER.tar.xz $archives" archives="devkita64-rules-$DKA64_RULES_VER.tar.gz $archives"
fi fi
fi fi
@@ -238,14 +231,11 @@ fi
cd $BUILDSCRIPTDIR cd $BUILDSCRIPTDIR
if [ ! -z $CROSSBUILD ] && grep -q "mingw" <<<"$CROSSBUILD" ; then if [ "$BUILD_DKPRO_NO_STRIP_BINARIES" != "1" ]; then
cp -v $CROSSBINPATH/libwinpthread-1.dll $prefix/bin/ echo "stripping installed binaries"
cp -v $CROSSBINPATH/libwinpthread-1.dll $prefix/libexec/gcc/$target/$GCC_VER/ . ./strip_bins.sh
fi fi
echo "stripping installed binaries"
. ./strip_bins.sh
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# Clean up temporary files and source directories # Clean up temporary files and source directories
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------

View File

@@ -1,6 +0,0 @@
#!/bin/bash
export CROSSBUILD=aarch64-linux-gnu
export CROSSPATH=/opt/aarch64-linux-gnu
export CROSSLIBPATH=$CROSSPATH/lib
export CROSSBINPATH=$CROSSPATH/bin

View File

@@ -1,7 +0,0 @@
#!/bin/bash
export CROSSBUILD=i686-w64-mingw32
export CROSSPATH=/opt/mingw32/mingw
export CROSSLIBPATH=$CROSSPATH/lib
export CROSSBINPATH=$CROSSPATH/bin
export PATH=/opt/mingw32/bin:$PATH

View File

@@ -1,18 +0,0 @@
#!/bin/bash
export CPPFLAGS=-I/opt/osx/x86_64-apple-darwin15/include
export LDFLAGS=-L/opt/osx/x86_64-apple-darwin15/lib
export OSXCROSS_PKG_CONFIG_USE_NATIVE_VARIABLES=1
export CC=x86_64-apple-darwin15-clang
export CXX=x86_64-apple-darwin15-clang++
export CROSSBUILD=x86_64-apple-darwin15
export CROSSPATH=/opt/osx/x86_64-apple-darwin15
export CROSSLIBPATH=$CROSSPATH/lib
export CROSSBINPATH=$CROSSPATH/bin
export PATH=/opt/osx/bin:$PATH
export PKG_CONFIG_PATH=
export PKG_CONFIG_LIBDIR=$CROSSLIBPATH/pkgconfig

View File

@@ -1,7 +0,0 @@
#!/bin/bash
export CROSSBUILD=x86_64-w64-mingw32
export CROSSPATH=/opt/mingw64/mingw
export CROSSLIBPATH=$CROSSPATH/lib
export CROSSBINPATH=$CROSSPATH/bin
export PATH=/opt/mingw64/bin:$PATH

View File

@@ -1,8 +1,8 @@
diff --git a/gcc/config.gcc b/gcc/config.gcc diff --git a/gcc/config.gcc b/gcc/config.gcc
index 6a349965c0a..2206091e057 100644 index 357b0bed067..6b1e254785a 100644
--- a/gcc/config.gcc --- a/gcc/config.gcc
+++ b/gcc/config.gcc +++ b/gcc/config.gcc
@@ -1039,7 +1039,14 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) @@ -1090,7 +1090,14 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
tmake_file="${tmake_file} aarch64/t-aarch64" tmake_file="${tmake_file} aarch64/t-aarch64"
case $target in case $target in
aarch64-*-elf*) aarch64-*-elf*)
@@ -17,8 +17,23 @@ index 6a349965c0a..2206091e057 100644
;; ;;
aarch64-*-fuchsia*) aarch64-*-fuchsia*)
tm_file="${tm_file} fuchsia.h" tm_file="${tm_file} fuchsia.h"
diff --git a/gcc/config.host b/gcc/config.host
index 0a02c33cc80..38f7adc655e 100644
--- a/gcc/config.host
+++ b/gcc/config.host
@@ -251,6 +251,10 @@ case ${host} in
host_extra_gcc_objs="${host_extra_gcc_objs} driver-mingw32.o"
host_lto_plugin_soname=liblto_plugin.dll
;;
+ aarch64-*-darwin*)
+ out_host_hook_obj="${out_host_hook_obj} host-aarch64-darwin.o"
+ host_xmake_file="${host_xmake_file} aarch64/x-darwin"
+ ;;
i[34567]86-*-darwin* | x86_64-*-darwin*)
out_host_hook_obj="${out_host_hook_obj} host-i386-darwin.o"
host_xmake_file="${host_xmake_file} i386/x-darwin"
diff --git a/gcc/config/aarch64/aarch64-elf-raw.h b/gcc/config/aarch64/aarch64-elf-raw.h diff --git a/gcc/config/aarch64/aarch64-elf-raw.h b/gcc/config/aarch64/aarch64-elf-raw.h
index da5872cf4d8..ca840ab29cb 100644 index e986149e400..9264d53f32c 100644
--- a/gcc/config/aarch64/aarch64-elf-raw.h --- a/gcc/config/aarch64/aarch64-elf-raw.h
+++ b/gcc/config/aarch64/aarch64-elf-raw.h +++ b/gcc/config/aarch64/aarch64-elf-raw.h
@@ -22,6 +22,7 @@ @@ -22,6 +22,7 @@
@@ -30,7 +45,7 @@ index da5872cf4d8..ca840ab29cb 100644
#define ENDFILE_SPEC \ #define ENDFILE_SPEC \
" crtend%O%s crtn%O%s " \ " crtend%O%s crtn%O%s " \
diff --git a/gcc/config/aarch64/aarch64-opts.h b/gcc/config/aarch64/aarch64-opts.h diff --git a/gcc/config/aarch64/aarch64-opts.h b/gcc/config/aarch64/aarch64-opts.h
index ee7bed34924..d1e2742d750 100644 index af3b7364a74..6df7a0dc8a1 100644
--- a/gcc/config/aarch64/aarch64-opts.h --- a/gcc/config/aarch64/aarch64-opts.h
+++ b/gcc/config/aarch64/aarch64-opts.h +++ b/gcc/config/aarch64/aarch64-opts.h
@@ -48,6 +48,12 @@ enum aarch64_tls_type { @@ -48,6 +48,12 @@ enum aarch64_tls_type {
@@ -47,10 +62,10 @@ index ee7bed34924..d1e2742d750 100644
Most have a PIC and non-PIC variant. */ Most have a PIC and non-PIC variant. */
enum aarch64_code_model { enum aarch64_code_model {
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index b86434a6acf..389e3fe3910 100644 index 12625a4bee3..4353e2658a1 100644
--- a/gcc/config/aarch64/aarch64.c --- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c
@@ -15983,8 +15983,24 @@ aarch64_load_tp (rtx target) @@ -18053,8 +18053,24 @@ aarch64_load_tp (rtx target)
|| !register_operand (target, Pmode)) || !register_operand (target, Pmode))
target = gen_reg_rtx (Pmode); target = gen_reg_rtx (Pmode);
@@ -78,10 +93,10 @@ index b86434a6acf..389e3fe3910 100644
} }
diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
index 1ce23c68781..57216651648 100644 index bfffbcd6abf..814de8c2918 100644
--- a/gcc/config/aarch64/aarch64.h --- a/gcc/config/aarch64/aarch64.h
+++ b/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h
@@ -1134,6 +1134,10 @@ typedef struct @@ -1191,6 +1191,10 @@ typedef struct
/* Check TLS Descriptors mechanism is selected. */ /* Check TLS Descriptors mechanism is selected. */
#define TARGET_TLS_DESC (aarch64_tls_dialect == TLS_DESCRIPTORS) #define TARGET_TLS_DESC (aarch64_tls_dialect == TLS_DESCRIPTORS)
@@ -92,11 +107,20 @@ index 1ce23c68781..57216651648 100644
extern enum aarch64_code_model aarch64_cmodel; extern enum aarch64_code_model aarch64_cmodel;
/* When using the tiny addressing model conditional and unconditional branches /* When using the tiny addressing model conditional and unconditional branches
@@ -1236,7 +1240,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 diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index 8c8be3c2740..1257616a659 100644 index abfd8452674..8b9f4423adb 100644
--- a/gcc/config/aarch64/aarch64.md --- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md
@@ -6789,11 +6789,22 @@ @@ -6771,11 +6771,22 @@
(define_insn "aarch64_load_tp_hard" (define_insn "aarch64_load_tp_hard"
[(set (match_operand:DI 0 "register_operand" "=r") [(set (match_operand:DI 0 "register_operand" "=r")
(unspec:DI [(const_int 0)] UNSPEC_TLS))] (unspec:DI [(const_int 0)] UNSPEC_TLS))]
@@ -122,10 +146,10 @@ index 8c8be3c2740..1257616a659 100644
;; instructions in the TLS stubs, in order to enable linker relaxation. ;; instructions in the TLS stubs, in order to enable linker relaxation.
;; Therefore we treat the stubs as an atomic sequence. ;; Therefore we treat the stubs as an atomic sequence.
diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt
index d99d14c137d..08e52537dc6 100644 index 32191cf1acf..49b03937bdd 100644
--- a/gcc/config/aarch64/aarch64.opt --- a/gcc/config/aarch64/aarch64.opt
+++ b/gcc/config/aarch64/aarch64.opt +++ b/gcc/config/aarch64/aarch64.opt
@@ -118,6 +118,21 @@ Enum(aarch64_tls_size) String(32) Value(32) @@ -122,6 +122,21 @@ Enum(aarch64_tls_size) String(32) Value(32)
EnumValue EnumValue
Enum(aarch64_tls_size) String(48) Value(48) Enum(aarch64_tls_size) String(48) Value(48)
@@ -147,21 +171,59 @@ index d99d14c137d..08e52537dc6 100644
march= march=
Target RejectNegative Negative(march=) ToLower Joined Var(aarch64_arch_string) Target RejectNegative Negative(march=) ToLower Joined Var(aarch64_arch_string)
Use features of architecture ARCH. Use features of architecture ARCH.
@@ -256,7 +271,7 @@ TargetVariable @@ -260,7 +275,7 @@ TargetVariable
long aarch64_stack_protector_guard_offset = 0 long aarch64_stack_protector_guard_offset = 0
moutline-atomics moutline-atomics
-Target Report Var(aarch64_flag_outline_atomics) Init(2) Save -Target Var(aarch64_flag_outline_atomics) Init(2) Save
+Target Report Var(aarch64_flag_outline_atomics) Save +Target Var(aarch64_flag_outline_atomics) Save
Generate local calls to out-of-line atomic operations. Generate local calls to out-of-line atomic operations.
-param=aarch64-sve-compare-costs= -param=aarch64-sve-compare-costs=
diff --git a/gcc/config/aarch64/host-aarch64-darwin.c b/gcc/config/aarch64/host-aarch64-darwin.c
new file mode 100644
index 00000000000..92c38b0b9db
--- /dev/null
+++ b/gcc/config/aarch64/host-aarch64-darwin.c
@@ -0,0 +1,32 @@
+/* i386-darwin host-specific hook definitions.
+ Copyright (C) 2003-2021 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/>. */
+
+#define IN_TARGET_CODE 1
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "hosthooks.h"
+#include "hosthooks-def.h"
+#include "config/host-darwin.h"
+
+/* Darwin doesn't do anything special for aarch64 hosts; this file exists just
+ to include config/host-darwin.h. */
+
+const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER;
diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64 diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64
index 11d20b7be14..02ca761d3bf 100644 index 7e1606c47ac..3b650075724 100644
--- a/gcc/config/aarch64/t-aarch64 --- a/gcc/config/aarch64/t-aarch64
+++ b/gcc/config/aarch64/t-aarch64 +++ b/gcc/config/aarch64/t-aarch64
@@ -159,8 +159,10 @@ aarch64-bti-insert.o: $(srcdir)/config/aarch64/aarch64-bti-insert.c \ @@ -165,8 +165,10 @@ aarch64-cc-fusion.o: $(srcdir)/config/aarch64/aarch64-cc-fusion.cc \
$(srcdir)/config/aarch64/aarch64-bti-insert.c $(srcdir)/config/aarch64/aarch64-cc-fusion.cc
comma=, comma=,
-MULTILIB_OPTIONS = $(subst $(comma),/, $(patsubst %, mabi=%, $(subst $(comma),$(comma)mabi=,$(TM_MULTILIB_CONFIG)))) -MULTILIB_OPTIONS = $(subst $(comma),/, $(patsubst %, mabi=%, $(subst $(comma),$(comma)mabi=,$(TM_MULTILIB_CONFIG))))
@@ -173,6 +235,15 @@ index 11d20b7be14..02ca761d3bf 100644
insn-conditions.md: s-check-sve-md insn-conditions.md: s-check-sve-md
s-check-sve-md: $(srcdir)/config/aarch64/check-sve-md.awk \ s-check-sve-md: $(srcdir)/config/aarch64/check-sve-md.awk \
diff --git a/gcc/config/aarch64/x-darwin b/gcc/config/aarch64/x-darwin
new file mode 100644
index 00000000000..6d788d5e89c
--- /dev/null
+++ b/gcc/config/aarch64/x-darwin
@@ -0,0 +1,3 @@
+host-aarch64-darwin.o : $(srcdir)/config/aarch64/host-aarch64-darwin.c
+ $(COMPILE) $<
+ $(POSTCOMPILE)
diff --git a/gcc/config/devkitpro.h b/gcc/config/devkitpro.h diff --git a/gcc/config/devkitpro.h b/gcc/config/devkitpro.h
new file mode 100644 new file mode 100644
index 00000000000..11ba0f5ab1c index 00000000000..11ba0f5ab1c
@@ -246,52 +317,26 @@ index 00000000000..9acbbf9d27c
+ +
+; This comment is to ensure we retain the blank line above. +; This comment is to ensure we retain the blank line above.
diff --git a/gcc/config/i386/host-mingw32.c b/gcc/config/i386/host-mingw32.c diff --git a/gcc/config/i386/host-mingw32.c b/gcc/config/i386/host-mingw32.c
index 250fef59b55..36b2239aa5d 100644 index 360a280b23a..2c03947999a 100644
--- a/gcc/config/i386/host-mingw32.c --- a/gcc/config/i386/host-mingw32.c
+++ b/gcc/config/i386/host-mingw32.c +++ b/gcc/config/i386/host-mingw32.c
@@ -44,9 +44,6 @@ static size_t mingw32_gt_pch_alloc_granularity (void); @@ -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*); static inline void w32_error(const char*, const char*, int, const char*);
-/* FIXME: Is this big enough? */ /* FIXME: Is this big enough? */
-static const size_t pch_VA_max_size = 128 * 1024 * 1024; +#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;
+#endif
/* Granularity for reserving address space. */ /* Granularity for reserving address space. */
static size_t va_granularity = 0x10000; static size_t va_granularity = 0x10000;
@@ -88,9 +85,6 @@ static void *
mingw32_gt_pch_get_address (size_t size, int)
{
void* res;
- size = (size + va_granularity - 1) & ~(va_granularity - 1);
- if (size > pch_VA_max_size)
- return NULL;
/* FIXME: We let system determine base by setting first arg to NULL.
Allocating at top of available address space avoids unnecessary
@@ -100,7 +94,7 @@ 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. */
- res = VirtualAlloc (NULL, pch_VA_max_size,
+ res = VirtualAlloc (NULL, size,
MEM_RESERVE | MEM_TOP_DOWN,
PAGE_NOACCESS);
if (!res)
@@ -150,7 +144,7 @@ mingw32_gt_pch_use_address (void *addr, size_t size, int fd,
/* Offset must be also be a multiple of allocation granularity for
this to work. We can't change the offset. */
- if ((offset & (va_granularity - 1)) != 0 || size > pch_VA_max_size)
+ if ((offset & (va_granularity - 1)) != 0)
return -1;
diff --git a/gcc/gcc.c b/gcc/gcc.c diff --git a/gcc/gcc.c b/gcc/gcc.c
index 9f790db0daf..97f52d0b893 100644 index 7837553958b..69d7a798e2e 100644
--- a/gcc/gcc.c --- a/gcc/gcc.c
+++ b/gcc/gcc.c +++ b/gcc/gcc.c
@@ -793,6 +793,11 @@ proper position among the other output files. */ @@ -853,6 +853,11 @@ proper position among the other output files. */
#endif #endif
#endif #endif
@@ -303,7 +348,7 @@ index 9f790db0daf..97f52d0b893 100644
/* config.h can define STARTFILE_SPEC to override the default crt0 files. */ /* config.h can define STARTFILE_SPEC to override the default crt0 files. */
#ifndef STARTFILE_SPEC #ifndef STARTFILE_SPEC
#define STARTFILE_SPEC \ #define STARTFILE_SPEC \
@@ -1085,6 +1090,7 @@ static const char *link_spec = LINK_SPEC; @@ -1197,6 +1202,7 @@ static const char *link_spec = LINK_SPEC;
static const char *lib_spec = LIB_SPEC; static const char *lib_spec = LIB_SPEC;
static const char *link_gomp_spec = ""; static const char *link_gomp_spec = "";
static const char *libgcc_spec = LIBGCC_SPEC; static const char *libgcc_spec = LIBGCC_SPEC;
@@ -311,7 +356,7 @@ index 9f790db0daf..97f52d0b893 100644
static const char *endfile_spec = ENDFILE_SPEC; static const char *endfile_spec = ENDFILE_SPEC;
static const char *startfile_spec = STARTFILE_SPEC; static const char *startfile_spec = STARTFILE_SPEC;
static const char *linker_name_spec = LINKER_NAME; static const char *linker_name_spec = LINKER_NAME;
@@ -1582,6 +1588,7 @@ static struct spec_list static_specs[] = @@ -1702,6 +1708,7 @@ static struct spec_list static_specs[] =
INIT_STATIC_SPEC ("lib", &lib_spec), INIT_STATIC_SPEC ("lib", &lib_spec),
INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec), INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec),
INIT_STATIC_SPEC ("libgcc", &libgcc_spec), INIT_STATIC_SPEC ("libgcc", &libgcc_spec),
@@ -320,7 +365,7 @@ index 9f790db0daf..97f52d0b893 100644
INIT_STATIC_SPEC ("cross_compile", &cross_compile), INIT_STATIC_SPEC ("cross_compile", &cross_compile),
INIT_STATIC_SPEC ("version", &compiler_version), INIT_STATIC_SPEC ("version", &compiler_version),
diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
index 3f769a1c660..e005d8304b7 100644 index 675930db043..bdfd6f6b0bb 100644
--- a/libgcc/crtstuff.c --- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c +++ b/libgcc/crtstuff.c
@@ -325,7 +325,7 @@ register_tm_clones (void) @@ -325,7 +325,7 @@ register_tm_clones (void)
@@ -333,7 +378,7 @@ index 3f769a1c660..e005d8304b7 100644
in every shared-object; in a main program its value is zero. The in every shared-object; in a main program its value is zero. The
object should in any case be protected. This means the instance object should in any case be protected. This means the instance
diff --git a/libgcc/gthr.h b/libgcc/gthr.h diff --git a/libgcc/gthr.h b/libgcc/gthr.h
index f31cf083cbe..649f900aac3 100644 index cca3f294b7b..deffea4107b 100644
--- a/libgcc/gthr.h --- a/libgcc/gthr.h
+++ b/libgcc/gthr.h +++ b/libgcc/gthr.h
@@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see @@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -346,10 +391,10 @@ index f31cf083cbe..649f900aac3 100644
#define GTHREAD_USE_WEAK 0 #define GTHREAD_USE_WEAK 0
#endif #endif
diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index 80aeb3f8959..308ceedc673 100644 index 40a41ef2a1c..4d06c6f9953 100644
--- a/libstdc++-v3/include/Makefile.am --- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am +++ b/libstdc++-v3/include/Makefile.am
@@ -1315,6 +1315,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias} @@ -1347,6 +1347,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias}
-e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCXX_\1/g' \ -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCXX_\1/g' \
-e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \ -e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \
-e 's/_GLIBCXX___MINGW32_GLIBCXX___/__MINGW32__/g' \ -e 's/_GLIBCXX___MINGW32_GLIBCXX___/__MINGW32__/g' \
@@ -358,10 +403,10 @@ index 80aeb3f8959..308ceedc673 100644
< $< > $@ < $< > $@
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index eb437ad8d8d..6e076fc63bd 100644 index fcd2b5b2d40..c034367994a 100644
--- a/libstdc++-v3/include/Makefile.in --- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in
@@ -1793,6 +1793,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias} @@ -1830,6 +1830,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias}
-e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCXX_\1/g' \ -e '/^#/s/\(${uppercase}${uppercase}*\)/_GLIBCXX_\1/g' \
-e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \ -e 's/_GLIBCXX_SUPPORTS_WEAK/__GXX_WEAK__/g' \
-e 's/_GLIBCXX___MINGW32_GLIBCXX___/__MINGW32__/g' \ -e 's/_GLIBCXX___MINGW32_GLIBCXX___/__MINGW32__/g' \
@@ -369,3 +414,43 @@ index eb437ad8d8d..6e076fc63bd 100644
-e 's,^#include "\(.*\)",#include <bits/\1>,g' \ -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
< $< > $@ < $< > $@
diff --git a/libstdc++-v3/include/c_compatibility/fenv.h b/libstdc++-v3/include/c_compatibility/fenv.h
index 0413e3b7c25..ff5f8bbe1a1 100644
--- a/libstdc++-v3/include/c_compatibility/fenv.h
+++ b/libstdc++-v3/include/c_compatibility/fenv.h
@@ -26,6 +26,10 @@
* This is a Standard C++ Library header.
*/
+#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS
+# include_next <fenv.h>
+#else
+
#ifndef _GLIBCXX_FENV_H
#define _GLIBCXX_FENV_H 1
@@ -79,3 +83,5 @@ namespace std
#endif // C++11
#endif // _GLIBCXX_FENV_H
+
+#endif // __cplusplus
diff --git a/libstdc++-v3/include/c_global/cfenv b/libstdc++-v3/include/c_global/cfenv
index 0b0ec35a837..d24cb1a3c81 100644
--- a/libstdc++-v3/include/c_global/cfenv
+++ b/libstdc++-v3/include/c_global/cfenv
@@ -37,9 +37,11 @@
#include <bits/c++config.h>
-#if _GLIBCXX_HAVE_FENV_H
-# include <fenv.h>
-#endif
+// Need to ensure this finds the C library's <fenv.h> not a libstdc++
+// wrapper that might already be installed later in the include search path.
+#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
+#include_next <fenv.h>
+#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
#ifdef _GLIBCXX_USE_C99_FENV_TR1

View File

@@ -1,8 +1,8 @@
diff --git a/libgloss/configure b/libgloss/configure diff --git a/libgloss/configure b/libgloss/configure
index 0d2918c..bccfb07 100755 index 816b9c4b8..b79edb6c8 100755
--- a/libgloss/configure --- a/libgloss/configure
+++ b/libgloss/configure +++ b/libgloss/configure
@@ -2604,6 +2604,8 @@ if test "${config_libnosys}" = "true"; then @@ -2609,6 +2609,8 @@ if test "${config_libnosys}" = "true"; then
fi fi
@@ -12,7 +12,7 @@ index 0d2918c..bccfb07 100755
ac_config_commands="$ac_config_commands depfiles" ac_config_commands="$ac_config_commands depfiles"
diff --git a/libgloss/configure.in b/libgloss/configure.in diff --git a/libgloss/configure.in b/libgloss/configure.in
index f38d529..509c310 100644 index 4111724e1..0e44d885e 100644
--- a/libgloss/configure.in --- a/libgloss/configure.in
+++ b/libgloss/configure.in +++ b/libgloss/configure.in
@@ -2,6 +2,7 @@ dnl Process this file with autoconf to produce a configure script. @@ -2,6 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
@@ -23,7 +23,7 @@ index f38d529..509c310 100644
if test "${enable_shared}" = "yes" ; then if test "${enable_shared}" = "yes" ; then
echo "Shared libraries not supported for cross compiling, ignored" echo "Shared libraries not supported for cross compiling, ignored"
@@ -193,6 +194,7 @@ dnl fi @@ -196,6 +197,7 @@ dnl fi
if test "${config_libnosys}" = "true"; then if test "${config_libnosys}" = "true"; then
AC_CONFIG_SUBDIRS([libnosys]) AC_CONFIG_SUBDIRS([libnosys])
fi fi
@@ -33,7 +33,7 @@ index f38d529..509c310 100644
AS=${AS-as} AS=${AS-as}
diff --git a/libgloss/libsysbase/Makefile.in b/libgloss/libsysbase/Makefile.in diff --git a/libgloss/libsysbase/Makefile.in b/libgloss/libsysbase/Makefile.in
new file mode 100644 new file mode 100644
index 0000000..3db0c08 index 000000000..3db0c08bc
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/Makefile.in +++ b/libgloss/libsysbase/Makefile.in
@@ -0,0 +1,151 @@ @@ -0,0 +1,151 @@
@@ -190,7 +190,7 @@ index 0000000..3db0c08
+ $(SHELL) config.status --recheck + $(SHELL) config.status --recheck
diff --git a/libgloss/libsysbase/_exit.c b/libgloss/libsysbase/_exit.c diff --git a/libgloss/libsysbase/_exit.c b/libgloss/libsysbase/_exit.c
new file mode 100644 new file mode 100644
index 0000000..6effb11 index 000000000..6effb1105
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/_exit.c +++ b/libgloss/libsysbase/_exit.c
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
@@ -213,7 +213,7 @@ index 0000000..6effb11
+} +}
diff --git a/libgloss/libsysbase/abort.c b/libgloss/libsysbase/abort.c diff --git a/libgloss/libsysbase/abort.c b/libgloss/libsysbase/abort.c
new file mode 100644 new file mode 100644
index 0000000..9272e22 index 000000000..9272e22c9
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/abort.c +++ b/libgloss/libsysbase/abort.c
@@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
@@ -227,7 +227,7 @@ index 0000000..9272e22
+ +
diff --git a/libgloss/libsysbase/acconfig.h b/libgloss/libsysbase/acconfig.h diff --git a/libgloss/libsysbase/acconfig.h b/libgloss/libsysbase/acconfig.h
new file mode 100644 new file mode 100644
index 0000000..200ea78 index 000000000..200ea7873
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/acconfig.h +++ b/libgloss/libsysbase/acconfig.h
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
@@ -262,7 +262,7 @@ index 0000000..200ea78
+#undef __SYMBOL_PREFIX +#undef __SYMBOL_PREFIX
diff --git a/libgloss/libsysbase/aclocal.m4 b/libgloss/libsysbase/aclocal.m4 diff --git a/libgloss/libsysbase/aclocal.m4 b/libgloss/libsysbase/aclocal.m4
new file mode 100644 new file mode 100644
index 0000000..b6cdfae index 000000000..b6cdfaeb8
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/aclocal.m4 +++ b/libgloss/libsysbase/aclocal.m4
@@ -0,0 +1,344 @@ @@ -0,0 +1,344 @@
@@ -612,7 +612,7 @@ index 0000000..b6cdfae
+m4_include([../acinclude.m4]) +m4_include([../acinclude.m4])
diff --git a/libgloss/libsysbase/chdir.c b/libgloss/libsysbase/chdir.c diff --git a/libgloss/libsysbase/chdir.c b/libgloss/libsysbase/chdir.c
new file mode 100644 new file mode 100644
index 0000000..b94f6a8 index 000000000..b94f6a8b4
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/chdir.c +++ b/libgloss/libsysbase/chdir.c
@@ -0,0 +1,200 @@ @@ -0,0 +1,200 @@
@@ -818,7 +818,7 @@ index 0000000..b94f6a8
+} +}
diff --git a/libgloss/libsysbase/chmod.c b/libgloss/libsysbase/chmod.c diff --git a/libgloss/libsysbase/chmod.c b/libgloss/libsysbase/chmod.c
new file mode 100644 new file mode 100644
index 0000000..3668b58 index 000000000..3668b5801
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/chmod.c +++ b/libgloss/libsysbase/chmod.c
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
@@ -854,7 +854,7 @@ index 0000000..3668b58
+ +
diff --git a/libgloss/libsysbase/clocks.c b/libgloss/libsysbase/clocks.c diff --git a/libgloss/libsysbase/clocks.c b/libgloss/libsysbase/clocks.c
new file mode 100644 new file mode 100644
index 0000000..b36b5c0 index 000000000..b36b5c079
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/clocks.c +++ b/libgloss/libsysbase/clocks.c
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
@@ -894,7 +894,7 @@ index 0000000..b36b5c0
+ +
diff --git a/libgloss/libsysbase/close.c b/libgloss/libsysbase/close.c diff --git a/libgloss/libsysbase/close.c b/libgloss/libsysbase/close.c
new file mode 100644 new file mode 100644
index 0000000..931ad07 index 000000000..931ad07b1
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/close.c +++ b/libgloss/libsysbase/close.c
@@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
@@ -946,7 +946,7 @@ index 0000000..931ad07
+} +}
diff --git a/libgloss/libsysbase/config.h.in b/libgloss/libsysbase/config.h.in diff --git a/libgloss/libsysbase/config.h.in b/libgloss/libsysbase/config.h.in
new file mode 100644 new file mode 100644
index 0000000..48ce950 index 000000000..48ce950b4
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/config.h.in +++ b/libgloss/libsysbase/config.h.in
@@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
@@ -977,7 +977,7 @@ index 0000000..48ce950
+#undef __SYMBOL_PREFIX +#undef __SYMBOL_PREFIX
diff --git a/libgloss/libsysbase/configure b/libgloss/libsysbase/configure diff --git a/libgloss/libsysbase/configure b/libgloss/libsysbase/configure
new file mode 100644 new file mode 100644
index 0000000..aa653c2 index 000000000..aa653c235
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/configure +++ b/libgloss/libsysbase/configure
@@ -0,0 +1,4160 @@ @@ -0,0 +1,4160 @@
@@ -5143,7 +5143,7 @@ index 0000000..aa653c2
+ +
diff --git a/libgloss/libsysbase/configure.in b/libgloss/libsysbase/configure.in diff --git a/libgloss/libsysbase/configure.in b/libgloss/libsysbase/configure.in
new file mode 100644 new file mode 100644
index 0000000..da85a3f index 000000000..da85a3f46
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/configure.in +++ b/libgloss/libsysbase/configure.in
@@ -0,0 +1,202 @@ @@ -0,0 +1,202 @@
@@ -5351,7 +5351,7 @@ index 0000000..da85a3f
+ +
diff --git a/libgloss/libsysbase/dirent.c b/libgloss/libsysbase/dirent.c diff --git a/libgloss/libsysbase/dirent.c b/libgloss/libsysbase/dirent.c
new file mode 100644 new file mode 100644
index 0000000..7d1f454 index 000000000..7d1f4545d
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/dirent.c +++ b/libgloss/libsysbase/dirent.c
@@ -0,0 +1,256 @@ @@ -0,0 +1,256 @@
@@ -5613,7 +5613,7 @@ index 0000000..7d1f454
+} +}
diff --git a/libgloss/libsysbase/environ.c b/libgloss/libsysbase/environ.c diff --git a/libgloss/libsysbase/environ.c b/libgloss/libsysbase/environ.c
new file mode 100644 new file mode 100644
index 0000000..1c485b2 index 000000000..1c485b26f
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/environ.c +++ b/libgloss/libsysbase/environ.c
@@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
@@ -5625,7 +5625,7 @@ index 0000000..1c485b2
+char **environ = __env; +char **environ = __env;
diff --git a/libgloss/libsysbase/execve.c b/libgloss/libsysbase/execve.c diff --git a/libgloss/libsysbase/execve.c b/libgloss/libsysbase/execve.c
new file mode 100644 new file mode 100644
index 0000000..82e7013 index 000000000..82e70139f
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/execve.c +++ b/libgloss/libsysbase/execve.c
@@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
@@ -5661,7 +5661,7 @@ index 0000000..82e7013
+ +
diff --git a/libgloss/libsysbase/fchmod.c b/libgloss/libsysbase/fchmod.c diff --git a/libgloss/libsysbase/fchmod.c b/libgloss/libsysbase/fchmod.c
new file mode 100644 new file mode 100644
index 0000000..5c5831c index 000000000..5c5831cdf
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/fchmod.c +++ b/libgloss/libsysbase/fchmod.c
@@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
@@ -5698,7 +5698,7 @@ index 0000000..5c5831c
+} +}
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 0000000..c6b8c92 index 000000000..c6b8c92ad
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/flock.c +++ b/libgloss/libsysbase/flock.c
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
@@ -5725,7 +5725,7 @@ index 0000000..c6b8c92
+} +}
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 0000000..893b662 index 000000000..893b662ab
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/fnmatch.c +++ b/libgloss/libsysbase/fnmatch.c
@@ -0,0 +1,201 @@ @@ -0,0 +1,201 @@
@@ -5932,7 +5932,7 @@ index 0000000..893b662
+} +}
diff --git a/libgloss/libsysbase/fork.c b/libgloss/libsysbase/fork.c diff --git a/libgloss/libsysbase/fork.c b/libgloss/libsysbase/fork.c
new file mode 100644 new file mode 100644
index 0000000..efb6a34 index 000000000..efb6a3496
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/fork.c +++ b/libgloss/libsysbase/fork.c
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
@@ -5959,7 +5959,7 @@ index 0000000..efb6a34
+} +}
diff --git a/libgloss/libsysbase/fstat.c b/libgloss/libsysbase/fstat.c diff --git a/libgloss/libsysbase/fstat.c b/libgloss/libsysbase/fstat.c
new file mode 100644 new file mode 100644
index 0000000..e32b067 index 000000000..e32b06755
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/fstat.c +++ b/libgloss/libsysbase/fstat.c
@@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
@@ -6009,7 +6009,7 @@ index 0000000..e32b067
+} +}
diff --git a/libgloss/libsysbase/fsync.c b/libgloss/libsysbase/fsync.c diff --git a/libgloss/libsysbase/fsync.c b/libgloss/libsysbase/fsync.c
new file mode 100644 new file mode 100644
index 0000000..fb06cb6 index 000000000..fb06cb6d1
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/fsync.c +++ b/libgloss/libsysbase/fsync.c
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
@@ -6049,7 +6049,7 @@ index 0000000..fb06cb6
+} +}
diff --git a/libgloss/libsysbase/ftruncate.c b/libgloss/libsysbase/ftruncate.c diff --git a/libgloss/libsysbase/ftruncate.c b/libgloss/libsysbase/ftruncate.c
new file mode 100644 new file mode 100644
index 0000000..2cc03a3 index 000000000..2cc03a3d9
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/ftruncate.c +++ b/libgloss/libsysbase/ftruncate.c
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
@@ -6089,7 +6089,7 @@ index 0000000..2cc03a3
+} +}
diff --git a/libgloss/libsysbase/getpid.c b/libgloss/libsysbase/getpid.c diff --git a/libgloss/libsysbase/getpid.c b/libgloss/libsysbase/getpid.c
new file mode 100644 new file mode 100644
index 0000000..fdce14b index 000000000..fdce14b5f
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/getpid.c +++ b/libgloss/libsysbase/getpid.c
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
@@ -6114,7 +6114,7 @@ index 0000000..fdce14b
+ +
diff --git a/libgloss/libsysbase/getreent.c b/libgloss/libsysbase/getreent.c diff --git a/libgloss/libsysbase/getreent.c b/libgloss/libsysbase/getreent.c
new file mode 100644 new file mode 100644
index 0000000..a3f1e98 index 000000000..a3f1e98a9
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/getreent.c +++ b/libgloss/libsysbase/getreent.c
@@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
@@ -6140,7 +6140,7 @@ index 0000000..a3f1e98
+ +
diff --git a/libgloss/libsysbase/gettod.c b/libgloss/libsysbase/gettod.c diff --git a/libgloss/libsysbase/gettod.c b/libgloss/libsysbase/gettod.c
new file mode 100644 new file mode 100644
index 0000000..f18c59b index 000000000..f18c59ba3
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/gettod.c +++ b/libgloss/libsysbase/gettod.c
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
@@ -6180,7 +6180,7 @@ index 0000000..f18c59b
+ +
diff --git a/libgloss/libsysbase/handle_manager.c b/libgloss/libsysbase/handle_manager.c diff --git a/libgloss/libsysbase/handle_manager.c b/libgloss/libsysbase/handle_manager.c
new file mode 100644 new file mode 100644
index 0000000..f3fcc88 index 000000000..f3fcc88f7
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/handle_manager.c +++ b/libgloss/libsysbase/handle_manager.c
@@ -0,0 +1,173 @@ @@ -0,0 +1,173 @@
@@ -6359,7 +6359,7 @@ index 0000000..f3fcc88
+} +}
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 0000000..948c6ef index 000000000..948c6ef93
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/iosupport.c +++ b/libgloss/libsysbase/iosupport.c
@@ -0,0 +1,140 @@ @@ -0,0 +1,140 @@
@@ -6505,7 +6505,7 @@ index 0000000..948c6ef
+ +
diff --git a/libgloss/libsysbase/isatty.c b/libgloss/libsysbase/isatty.c diff --git a/libgloss/libsysbase/isatty.c b/libgloss/libsysbase/isatty.c
new file mode 100644 new file mode 100644
index 0000000..280a457 index 000000000..280a4579a
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/isatty.c +++ b/libgloss/libsysbase/isatty.c
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
@@ -6528,7 +6528,7 @@ index 0000000..280a457
+} +}
diff --git a/libgloss/libsysbase/kill.c b/libgloss/libsysbase/kill.c diff --git a/libgloss/libsysbase/kill.c b/libgloss/libsysbase/kill.c
new file mode 100644 new file mode 100644
index 0000000..13bd0fb index 000000000..13bd0fba1
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/kill.c +++ b/libgloss/libsysbase/kill.c
@@ -0,0 +1,21 @@ @@ -0,0 +1,21 @@
@@ -6555,7 +6555,7 @@ index 0000000..13bd0fb
+} +}
diff --git a/libgloss/libsysbase/link.c b/libgloss/libsysbase/link.c diff --git a/libgloss/libsysbase/link.c b/libgloss/libsysbase/link.c
new file mode 100644 new file mode 100644
index 0000000..162f70f index 000000000..162f70f63
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/link.c +++ b/libgloss/libsysbase/link.c
@@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
@@ -6597,7 +6597,7 @@ index 0000000..162f70f
+ +
diff --git a/libgloss/libsysbase/locks.c b/libgloss/libsysbase/locks.c diff --git a/libgloss/libsysbase/locks.c b/libgloss/libsysbase/locks.c
new file mode 100644 new file mode 100644
index 0000000..c41d91f index 000000000..c41d91ff9
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/locks.c +++ b/libgloss/libsysbase/locks.c
@@ -0,0 +1,158 @@ @@ -0,0 +1,158 @@
@@ -6761,7 +6761,7 @@ index 0000000..c41d91f
+ +
diff --git a/libgloss/libsysbase/lseek.c b/libgloss/libsysbase/lseek.c diff --git a/libgloss/libsysbase/lseek.c b/libgloss/libsysbase/lseek.c
new file mode 100644 new file mode 100644
index 0000000..eb232c8 index 000000000..eb232c86b
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/lseek.c +++ b/libgloss/libsysbase/lseek.c
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
@@ -6812,7 +6812,7 @@ index 0000000..eb232c8
+} +}
diff --git a/libgloss/libsysbase/lstat.c b/libgloss/libsysbase/lstat.c diff --git a/libgloss/libsysbase/lstat.c b/libgloss/libsysbase/lstat.c
new file mode 100644 new file mode 100644
index 0000000..fc39343 index 000000000..fc393430b
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/lstat.c +++ b/libgloss/libsysbase/lstat.c
@@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
@@ -6849,7 +6849,7 @@ index 0000000..fc39343
+ +
diff --git a/libgloss/libsysbase/malloc_vars.c b/libgloss/libsysbase/malloc_vars.c diff --git a/libgloss/libsysbase/malloc_vars.c b/libgloss/libsysbase/malloc_vars.c
new file mode 100644 new file mode 100644
index 0000000..4565909 index 000000000..456590956
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/malloc_vars.c +++ b/libgloss/libsysbase/malloc_vars.c
@@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
@@ -6857,7 +6857,7 @@ index 0000000..4565909
+char *fake_heap_start = (char*)0; +char *fake_heap_start = (char*)0;
diff --git a/libgloss/libsysbase/mkdir.c b/libgloss/libsysbase/mkdir.c diff --git a/libgloss/libsysbase/mkdir.c b/libgloss/libsysbase/mkdir.c
new file mode 100644 new file mode 100644
index 0000000..19742b7 index 000000000..19742b774
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/mkdir.c +++ b/libgloss/libsysbase/mkdir.c
@@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
@@ -6886,7 +6886,7 @@ index 0000000..19742b7
+} +}
diff --git a/libgloss/libsysbase/nanosleep.c b/libgloss/libsysbase/nanosleep.c diff --git a/libgloss/libsysbase/nanosleep.c b/libgloss/libsysbase/nanosleep.c
new file mode 100644 new file mode 100644
index 0000000..a233b9d index 000000000..a233b9df6
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/nanosleep.c +++ b/libgloss/libsysbase/nanosleep.c
@@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
@@ -6906,7 +6906,7 @@ index 0000000..a233b9d
+} +}
diff --git a/libgloss/libsysbase/open.c b/libgloss/libsysbase/open.c diff --git a/libgloss/libsysbase/open.c b/libgloss/libsysbase/open.c
new file mode 100644 new file mode 100644
index 0000000..f8d98fd index 000000000..f8d98fd3b
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/open.c +++ b/libgloss/libsysbase/open.c
@@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
@@ -6965,7 +6965,7 @@ index 0000000..f8d98fd
+} +}
diff --git a/libgloss/libsysbase/pthread.c b/libgloss/libsysbase/pthread.c diff --git a/libgloss/libsysbase/pthread.c b/libgloss/libsysbase/pthread.c
new file mode 100755 new file mode 100755
index 0000000..ff84cd3 index 000000000..ff84cd355
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/pthread.c +++ b/libgloss/libsysbase/pthread.c
@@ -0,0 +1,1083 @@ @@ -0,0 +1,1083 @@
@@ -8054,7 +8054,7 @@ index 0000000..ff84cd3
+} +}
diff --git a/libgloss/libsysbase/read.c b/libgloss/libsysbase/read.c diff --git a/libgloss/libsysbase/read.c b/libgloss/libsysbase/read.c
new file mode 100644 new file mode 100644
index 0000000..838a8c7 index 000000000..838a8c796
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/read.c +++ b/libgloss/libsysbase/read.c
@@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
@@ -8099,7 +8099,7 @@ index 0000000..838a8c7
+ +
diff --git a/libgloss/libsysbase/rename.c b/libgloss/libsysbase/rename.c diff --git a/libgloss/libsysbase/rename.c b/libgloss/libsysbase/rename.c
new file mode 100644 new file mode 100644
index 0000000..b54e0ce index 000000000..b54e0ce7c
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/rename.c +++ b/libgloss/libsysbase/rename.c
@@ -0,0 +1,37 @@ @@ -0,0 +1,37 @@
@@ -8142,7 +8142,7 @@ index 0000000..b54e0ce
+} +}
diff --git a/libgloss/libsysbase/rmdir.c b/libgloss/libsysbase/rmdir.c diff --git a/libgloss/libsysbase/rmdir.c b/libgloss/libsysbase/rmdir.c
new file mode 100644 new file mode 100644
index 0000000..2692a29 index 000000000..2692a2997
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/rmdir.c +++ b/libgloss/libsysbase/rmdir.c
@@ -0,0 +1,25 @@ @@ -0,0 +1,25 @@
@@ -8173,7 +8173,7 @@ index 0000000..2692a29
+} +}
diff --git a/libgloss/libsysbase/sbrk.c b/libgloss/libsysbase/sbrk.c diff --git a/libgloss/libsysbase/sbrk.c b/libgloss/libsysbase/sbrk.c
new file mode 100644 new file mode 100644
index 0000000..5dd550c index 000000000..5dd550c5c
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/sbrk.c +++ b/libgloss/libsysbase/sbrk.c
@@ -0,0 +1,60 @@ @@ -0,0 +1,60 @@
@@ -8239,7 +8239,7 @@ index 0000000..5dd550c
+} +}
diff --git a/libgloss/libsysbase/scandir.c b/libgloss/libsysbase/scandir.c diff --git a/libgloss/libsysbase/scandir.c b/libgloss/libsysbase/scandir.c
new file mode 100644 new file mode 100644
index 0000000..5c673af index 000000000..5c673af52
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/scandir.c +++ b/libgloss/libsysbase/scandir.c
@@ -0,0 +1,76 @@ @@ -0,0 +1,76 @@
@@ -8321,7 +8321,7 @@ index 0000000..5c673af
+ +
diff --git a/libgloss/libsysbase/sleep.c b/libgloss/libsysbase/sleep.c diff --git a/libgloss/libsysbase/sleep.c b/libgloss/libsysbase/sleep.c
new file mode 100644 new file mode 100644
index 0000000..f3aa979 index 000000000..f3aa97954
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/sleep.c +++ b/libgloss/libsysbase/sleep.c
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
@@ -8345,7 +8345,7 @@ index 0000000..f3aa979
+} +}
diff --git a/libgloss/libsysbase/stat.c b/libgloss/libsysbase/stat.c diff --git a/libgloss/libsysbase/stat.c b/libgloss/libsysbase/stat.c
new file mode 100644 new file mode 100644
index 0000000..d0ad002 index 000000000..d0ad00202
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/stat.c +++ b/libgloss/libsysbase/stat.c
@@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
@@ -8389,7 +8389,7 @@ index 0000000..d0ad002
+ +
diff --git a/libgloss/libsysbase/statvfs.c b/libgloss/libsysbase/statvfs.c diff --git a/libgloss/libsysbase/statvfs.c b/libgloss/libsysbase/statvfs.c
new file mode 100644 new file mode 100644
index 0000000..84e2213 index 000000000..84e221340
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/statvfs.c +++ b/libgloss/libsysbase/statvfs.c
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
@@ -8419,7 +8419,7 @@ index 0000000..84e2213
+} +}
diff --git a/libgloss/libsysbase/times.c b/libgloss/libsysbase/times.c diff --git a/libgloss/libsysbase/times.c b/libgloss/libsysbase/times.c
new file mode 100644 new file mode 100644
index 0000000..79484e7 index 000000000..79484e7f4
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/times.c +++ b/libgloss/libsysbase/times.c
@@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
@@ -8442,7 +8442,7 @@ index 0000000..79484e7
+ +
diff --git a/libgloss/libsysbase/truncate.c b/libgloss/libsysbase/truncate.c diff --git a/libgloss/libsysbase/truncate.c b/libgloss/libsysbase/truncate.c
new file mode 100644 new file mode 100644
index 0000000..8495259 index 000000000..849525990
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/truncate.c +++ b/libgloss/libsysbase/truncate.c
@@ -0,0 +1,54 @@ @@ -0,0 +1,54 @@
@@ -8502,7 +8502,7 @@ index 0000000..8495259
+} +}
diff --git a/libgloss/libsysbase/unlink.c b/libgloss/libsysbase/unlink.c diff --git a/libgloss/libsysbase/unlink.c b/libgloss/libsysbase/unlink.c
new file mode 100644 new file mode 100644
index 0000000..7920b79 index 000000000..7920b79ac
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/unlink.c +++ b/libgloss/libsysbase/unlink.c
@@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
@@ -8542,7 +8542,7 @@ index 0000000..7920b79
+ +
diff --git a/libgloss/libsysbase/usleep.c b/libgloss/libsysbase/usleep.c diff --git a/libgloss/libsysbase/usleep.c b/libgloss/libsysbase/usleep.c
new file mode 100644 new file mode 100644
index 0000000..b547147 index 000000000..b54714775
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/usleep.c +++ b/libgloss/libsysbase/usleep.c
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
@@ -8566,7 +8566,7 @@ index 0000000..b547147
+} +}
diff --git a/libgloss/libsysbase/utime.c b/libgloss/libsysbase/utime.c diff --git a/libgloss/libsysbase/utime.c b/libgloss/libsysbase/utime.c
new file mode 100644 new file mode 100644
index 0000000..f72bf9f index 000000000..f72bf9fc6
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/utime.c +++ b/libgloss/libsysbase/utime.c
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
@@ -8617,7 +8617,7 @@ index 0000000..f72bf9f
+} +}
diff --git a/libgloss/libsysbase/wait.c b/libgloss/libsysbase/wait.c diff --git a/libgloss/libsysbase/wait.c b/libgloss/libsysbase/wait.c
new file mode 100644 new file mode 100644
index 0000000..247486e index 000000000..247486e42
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/wait.c +++ b/libgloss/libsysbase/wait.c
@@ -0,0 +1,24 @@ @@ -0,0 +1,24 @@
@@ -8647,7 +8647,7 @@ index 0000000..247486e
+ +
diff --git a/libgloss/libsysbase/warning.h b/libgloss/libsysbase/warning.h diff --git a/libgloss/libsysbase/warning.h b/libgloss/libsysbase/warning.h
new file mode 100644 new file mode 100644
index 0000000..2c29982 index 000000000..2c2998250
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/warning.h +++ b/libgloss/libsysbase/warning.h
@@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
@@ -8696,7 +8696,7 @@ index 0000000..2c29982
+#endif /* __WARNING_H__ */ +#endif /* __WARNING_H__ */
diff --git a/libgloss/libsysbase/write.c b/libgloss/libsysbase/write.c diff --git a/libgloss/libsysbase/write.c b/libgloss/libsysbase/write.c
new file mode 100644 new file mode 100644
index 0000000..61de918 index 000000000..61de918bc
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/write.c +++ b/libgloss/libsysbase/write.c
@@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
@@ -8739,10 +8739,10 @@ index 0000000..61de918
+ return ret; + return ret;
+} +}
diff --git a/newlib/configure.host b/newlib/configure.host diff --git a/newlib/configure.host b/newlib/configure.host
index a84c0c8..aa9ea05 100644 index 1ddbb6c76..f096346dc 100644
--- a/newlib/configure.host --- a/newlib/configure.host
+++ b/newlib/configure.host +++ b/newlib/configure.host
@@ -680,13 +680,25 @@ newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DEXIT_PROVID @@ -687,13 +687,25 @@ newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DEXIT_PROVID
syscall_dir=syscalls syscall_dir=syscalls
;; ;;
aarch64*-*-*) aarch64*-*-*)
@@ -8768,8 +8768,34 @@ index a84c0c8..aa9ea05 100644
arm*-*-pe) arm*-*-pe)
syscall_dir=syscalls syscall_dir=syscalls
;; ;;
diff --git a/newlib/libc/ctype/jp2uc.c b/newlib/libc/ctype/jp2uc.c
index 5e30f09be..1ea357f92 100644
--- a/newlib/libc/ctype/jp2uc.c
+++ b/newlib/libc/ctype/jp2uc.c
@@ -35,7 +35,7 @@
#ifdef _MB_CAPABLE
/* Under Cygwin, the incoming wide character is already given in UTF due
to the requirements of the underlying OS. */
-#ifndef __CYGWIN__
+#if !defined(__CYGWIN__) && !defined(__DEVKITA64__)
#include <_ansi.h>
#include <string.h>
diff --git a/newlib/libc/ctype/local.h b/newlib/libc/ctype/local.h
index 5c293c83d..75ccf89f5 100644
--- a/newlib/libc/ctype/local.h
+++ b/newlib/libc/ctype/local.h
@@ -32,7 +32,7 @@
* for towupper and towlower, the result must be back-transformed
into the respective locale encoding; currently NOT IMPLEMENTED
*/
-#ifdef __CYGWIN__
+#if defined(__CYGWIN__) || defined(__DEVKITA64__)
/* Under Cygwin, wchar_t (or its extension wint_t) is Unicode */
#define _jp2uc(c) (c)
#define _jp2uc_l(c, l) (c)
diff --git a/newlib/libc/include/fnmatch.h b/newlib/libc/include/fnmatch.h diff --git a/newlib/libc/include/fnmatch.h b/newlib/libc/include/fnmatch.h
index a94e923..9171e98 100644 index a94e923a4..9171e98aa 100644
--- a/newlib/libc/include/fnmatch.h --- a/newlib/libc/include/fnmatch.h
+++ b/newlib/libc/include/fnmatch.h +++ b/newlib/libc/include/fnmatch.h
@@ -44,6 +44,7 @@ @@ -44,6 +44,7 @@
@@ -8782,7 +8808,7 @@ index a94e923..9171e98 100644
#endif #endif
diff --git a/newlib/libc/include/machine/_threads.h b/newlib/libc/include/machine/_threads.h diff --git a/newlib/libc/include/machine/_threads.h b/newlib/libc/include/machine/_threads.h
new file mode 100755 new file mode 100755
index 0000000..a71a5d8 index 000000000..a71a5d847
--- /dev/null --- /dev/null
+++ b/newlib/libc/include/machine/_threads.h +++ b/newlib/libc/include/machine/_threads.h
@@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@
@@ -8831,10 +8857,10 @@ index 0000000..a71a5d8
+ +
+#endif +#endif
diff --git a/newlib/libc/include/math.h b/newlib/libc/include/math.h diff --git a/newlib/libc/include/math.h b/newlib/libc/include/math.h
index 1efc5b9..91a8d74 100644 index ba1a8a17e..f521cad89 100644
--- a/newlib/libc/include/math.h --- a/newlib/libc/include/math.h
+++ b/newlib/libc/include/math.h +++ b/newlib/libc/include/math.h
@@ -416,7 +416,7 @@ extern float hypotf (float, float); @@ -426,7 +426,7 @@ extern float hypotf (float, float);
simply call the double functions. On Cygwin the long double functions simply call the double functions. On Cygwin the long double functions
are implemented independently from newlib to be able to use optimized are implemented independently from newlib to be able to use optimized
assembler functions despite using the Microsoft x86_64 ABI. */ assembler functions despite using the Microsoft x86_64 ABI. */
@@ -8845,7 +8871,7 @@ index 1efc5b9..91a8d74 100644
extern long double atanl (long double); extern long double atanl (long double);
diff --git a/newlib/libc/include/semaphore.h b/newlib/libc/include/semaphore.h diff --git a/newlib/libc/include/semaphore.h b/newlib/libc/include/semaphore.h
new file mode 100755 new file mode 100755
index 0000000..4afb0e4 index 000000000..4afb0e419
--- /dev/null --- /dev/null
+++ b/newlib/libc/include/semaphore.h +++ b/newlib/libc/include/semaphore.h
@@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
@@ -8919,7 +8945,7 @@ index 0000000..4afb0e4
+ +
+#endif /* !_SEMAPHORE_H_ */ +#endif /* !_SEMAPHORE_H_ */
diff --git a/newlib/libc/include/sys/_pthreadtypes.h b/newlib/libc/include/sys/_pthreadtypes.h diff --git a/newlib/libc/include/sys/_pthreadtypes.h b/newlib/libc/include/sys/_pthreadtypes.h
index 75e9e1c..dc63dbe 100644 index 75e9e1cbf..dc63dbe6a 100644
--- a/newlib/libc/include/sys/_pthreadtypes.h --- a/newlib/libc/include/sys/_pthreadtypes.h
+++ b/newlib/libc/include/sys/_pthreadtypes.h +++ b/newlib/libc/include/sys/_pthreadtypes.h
@@ -18,19 +18,18 @@ @@ -18,19 +18,18 @@
@@ -9092,7 +9118,7 @@ index 75e9e1c..dc63dbe 100644
int process_shared; /* allow this to be shared amongst processes */ int process_shared; /* allow this to be shared amongst processes */
#endif #endif
diff --git a/newlib/libc/include/sys/_timespec.h b/newlib/libc/include/sys/_timespec.h diff --git a/newlib/libc/include/sys/_timespec.h b/newlib/libc/include/sys/_timespec.h
index f810b00..ca7e11d 100644 index f810b008f..ca7e11dc7 100644
--- a/newlib/libc/include/sys/_timespec.h --- a/newlib/libc/include/sys/_timespec.h
+++ b/newlib/libc/include/sys/_timespec.h +++ b/newlib/libc/include/sys/_timespec.h
@@ -49,4 +49,10 @@ struct timespec { @@ -49,4 +49,10 @@ struct timespec {
@@ -9107,7 +9133,7 @@ index f810b00..ca7e11d 100644
+ +
#endif /* !_SYS__TIMESPEC_H_ */ #endif /* !_SYS__TIMESPEC_H_ */
diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h
index d746b15..80169d9 100644 index 4bc8d29bf..35c05e6af 100644
--- a/newlib/libc/include/sys/config.h --- a/newlib/libc/include/sys/config.h
+++ b/newlib/libc/include/sys/config.h +++ b/newlib/libc/include/sys/config.h
@@ -4,6 +4,9 @@ @@ -4,6 +4,9 @@
@@ -9121,7 +9147,7 @@ index d746b15..80169d9 100644
#define MALLOC_ALIGNMENT 16 #define MALLOC_ALIGNMENT 16
#endif #endif
diff --git a/newlib/libc/include/sys/dirent.h b/newlib/libc/include/sys/dirent.h diff --git a/newlib/libc/include/sys/dirent.h b/newlib/libc/include/sys/dirent.h
index a3fb5c0..b208de4 100644 index a3fb5c02c..b208de4a7 100644
--- a/newlib/libc/include/sys/dirent.h --- a/newlib/libc/include/sys/dirent.h
+++ b/newlib/libc/include/sys/dirent.h +++ b/newlib/libc/include/sys/dirent.h
@@ -1,13 +1,60 @@ @@ -1,13 +1,60 @@
@@ -9189,7 +9215,7 @@ index a3fb5c0..b208de4 100644
+ +
+#endif // _dirent_h_ +#endif // _dirent_h_
diff --git a/newlib/libc/include/sys/features.h b/newlib/libc/include/sys/features.h diff --git a/newlib/libc/include/sys/features.h b/newlib/libc/include/sys/features.h
index 2188071..93294ad 100644 index 218807178..93294ad2e 100644
--- a/newlib/libc/include/sys/features.h --- a/newlib/libc/include/sys/features.h
+++ b/newlib/libc/include/sys/features.h +++ b/newlib/libc/include/sys/features.h
@@ -330,6 +330,16 @@ extern "C" { @@ -330,6 +330,16 @@ extern "C" {
@@ -9211,7 +9237,7 @@ index 2188071..93294ad 100644
#ifdef __rtems__ #ifdef __rtems__
diff --git a/newlib/libc/include/sys/iosupport.h b/newlib/libc/include/sys/iosupport.h diff --git a/newlib/libc/include/sys/iosupport.h b/newlib/libc/include/sys/iosupport.h
new file mode 100644 new file mode 100644
index 0000000..82d2e35 index 000000000..82d2e3576
--- /dev/null --- /dev/null
+++ b/newlib/libc/include/sys/iosupport.h +++ b/newlib/libc/include/sys/iosupport.h
@@ -0,0 +1,126 @@ @@ -0,0 +1,126 @@
@@ -9342,7 +9368,7 @@ index 0000000..82d2e35
+#endif // __iosupp_h__ +#endif // __iosupp_h__
+//--------------------------------------------------------------------------------- +//---------------------------------------------------------------------------------
diff --git a/newlib/libc/include/sys/lock.h b/newlib/libc/include/sys/lock.h diff --git a/newlib/libc/include/sys/lock.h b/newlib/libc/include/sys/lock.h
index 5289049..2c3e64f 100644 index 528904957..2c3e64f1b 100644
--- a/newlib/libc/include/sys/lock.h --- a/newlib/libc/include/sys/lock.h
+++ b/newlib/libc/include/sys/lock.h +++ b/newlib/libc/include/sys/lock.h
@@ -1,69 +1,105 @@ @@ -1,69 +1,105 @@
@@ -9502,7 +9528,7 @@ index 5289049..2c3e64f 100644
-#endif /* __SYS_LOCK_H__ */ -#endif /* __SYS_LOCK_H__ */
+#endif // __SYS_LOCK_H__ +#endif // __SYS_LOCK_H__
diff --git a/newlib/libc/include/sys/param.h b/newlib/libc/include/sys/param.h diff --git a/newlib/libc/include/sys/param.h b/newlib/libc/include/sys/param.h
index 9a6f115..fdd6cf9 100644 index 9a6f115a6..fdd6cf92b 100644
--- a/newlib/libc/include/sys/param.h --- a/newlib/libc/include/sys/param.h
+++ b/newlib/libc/include/sys/param.h +++ b/newlib/libc/include/sys/param.h
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
@@ -9515,7 +9541,7 @@ index 9a6f115..fdd6cf9 100644
#define MAX(a,b) ((a) > (b) ? (a) : (b)) #define MAX(a,b) ((a) > (b) ? (a) : (b))
#define MIN(a,b) ((a) < (b) ? (a) : (b)) #define MIN(a,b) ((a) < (b) ? (a) : (b))
diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h
index 74b70e9..d8c5410 100644 index 74b70e9c0..d8c5410ec 100644
--- a/newlib/libc/include/sys/reent.h --- a/newlib/libc/include/sys/reent.h
+++ b/newlib/libc/include/sys/reent.h +++ b/newlib/libc/include/sys/reent.h
@@ -421,6 +421,8 @@ struct _reent @@ -421,6 +421,8 @@ struct _reent
@@ -9536,7 +9562,7 @@ index 74b70e9..d8c5410 100644
#ifdef _REENT_GLOBAL_STDIO_STREAMS #ifdef _REENT_GLOBAL_STDIO_STREAMS
diff --git a/newlib/libc/include/sys/stat.h b/newlib/libc/include/sys/stat.h diff --git a/newlib/libc/include/sys/stat.h b/newlib/libc/include/sys/stat.h
index 8769112..5526e59 100644 index 8769112b0..5526e59ee 100644
--- a/newlib/libc/include/sys/stat.h --- a/newlib/libc/include/sys/stat.h
+++ b/newlib/libc/include/sys/stat.h +++ b/newlib/libc/include/sys/stat.h
@@ -142,8 +142,9 @@ int mkfifo (const char *__path, mode_t __mode ); @@ -142,8 +142,9 @@ int mkfifo (const char *__path, mode_t __mode );
@@ -9552,7 +9578,7 @@ index 8769112..5526e59 100644
diff --git a/newlib/libc/include/sys/statvfs.h b/newlib/libc/include/sys/statvfs.h diff --git a/newlib/libc/include/sys/statvfs.h b/newlib/libc/include/sys/statvfs.h
new file mode 100644 new file mode 100644
index 0000000..380329d index 000000000..380329d34
--- /dev/null --- /dev/null
+++ b/newlib/libc/include/sys/statvfs.h +++ b/newlib/libc/include/sys/statvfs.h
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
@@ -9593,10 +9619,10 @@ index 0000000..380329d
+#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/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 ba9dbd6..49c213c 100644 index c872d2018..b3800187f 100644
--- a/newlib/libc/include/sys/syslimits.h --- a/newlib/libc/include/sys/syslimits.h
+++ b/newlib/libc/include/sys/syslimits.h +++ b/newlib/libc/include/sys/syslimits.h
@@ -62,4 +62,6 @@ @@ -58,4 +58,6 @@
#define LINE_MAX 2048 /* max bytes in an input line */ #define LINE_MAX 2048 /* max bytes in an input line */
#define RE_DUP_MAX 255 /* max RE's in interval notation */ #define RE_DUP_MAX 255 /* max RE's in interval notation */
@@ -9604,7 +9630,7 @@ index ba9dbd6..49c213c 100644
+ +
#endif #endif
diff --git a/newlib/libc/include/sys/utime.h b/newlib/libc/include/sys/utime.h diff --git a/newlib/libc/include/sys/utime.h b/newlib/libc/include/sys/utime.h
index 5e937f1..635a7a6 100644 index 5e937f103..635a7a6b8 100644
--- a/newlib/libc/include/sys/utime.h --- a/newlib/libc/include/sys/utime.h
+++ b/newlib/libc/include/sys/utime.h +++ b/newlib/libc/include/sys/utime.h
@@ -9,12 +9,19 @@ @@ -9,12 +9,19 @@
@@ -9630,7 +9656,7 @@ index 5e937f1..635a7a6 100644
}; };
#endif #endif
diff --git a/newlib/libc/locale/locale.c b/newlib/libc/locale/locale.c diff --git a/newlib/libc/locale/locale.c b/newlib/libc/locale/locale.c
index 4c343e4..c044934 100644 index 968642745..2ab1f9570 100644
--- a/newlib/libc/locale/locale.c --- a/newlib/libc/locale/locale.c
+++ b/newlib/libc/locale/locale.c +++ b/newlib/libc/locale/locale.c
@@ -92,7 +92,7 @@ beginning with <<"LC_">>. @@ -92,7 +92,7 @@ beginning with <<"LC_">>.
@@ -9742,7 +9768,7 @@ index 4c343e4..c044934 100644
if (strcmp (locale, "POSIX") && strcmp (locale, "C") if (strcmp (locale, "POSIX") && strcmp (locale, "C")
&& strcmp (locale, "")) && strcmp (locale, ""))
return NULL; return NULL;
@@ -990,6 +1015,7 @@ __locale_ctype_ptr_l (struct __locale_t *locale) @@ -991,6 +1016,7 @@ __locale_ctype_ptr_l (struct __locale_t *locale)
const char * const char *
__locale_ctype_ptr (void) __locale_ctype_ptr (void)
@@ -9751,7 +9777,7 @@ index 4c343e4..c044934 100644
return __get_current_locale ()->ctype_ptr; return __get_current_locale ()->ctype_ptr;
} }
diff --git a/newlib/libc/locale/setlocale.h b/newlib/libc/locale/setlocale.h diff --git a/newlib/libc/locale/setlocale.h b/newlib/libc/locale/setlocale.h
index a0c8084..efabdcf 100644 index a0c80843a..efabdcfc4 100644
--- a/newlib/libc/locale/setlocale.h --- a/newlib/libc/locale/setlocale.h
+++ b/newlib/libc/locale/setlocale.h +++ b/newlib/libc/locale/setlocale.h
@@ -217,11 +217,7 @@ __get_global_locale () @@ -217,11 +217,7 @@ __get_global_locale ()
@@ -9779,7 +9805,7 @@ index a0c8084..efabdcf 100644
/* Only access fixed "C" locale using this function. Fake for !_MB_CAPABLE /* Only access fixed "C" locale using this function. Fake for !_MB_CAPABLE
diff --git a/newlib/libc/machine/aarch64/Makefile.am b/newlib/libc/machine/aarch64/Makefile.am diff --git a/newlib/libc/machine/aarch64/Makefile.am b/newlib/libc/machine/aarch64/Makefile.am
index e8b8197..011f69d 100644 index e8b8197fa..011f69d69 100644
--- a/newlib/libc/machine/aarch64/Makefile.am --- a/newlib/libc/machine/aarch64/Makefile.am
+++ b/newlib/libc/machine/aarch64/Makefile.am +++ b/newlib/libc/machine/aarch64/Makefile.am
@@ -9,6 +9,7 @@ AM_CCASFLAGS = $(INCLUDES) @@ -9,6 +9,7 @@ AM_CCASFLAGS = $(INCLUDES)
@@ -9791,7 +9817,7 @@ index e8b8197..011f69d 100644
lib_a_SOURCES += memchr.S lib_a_SOURCES += memchr.S
lib_a_SOURCES += memcmp-stub.c lib_a_SOURCES += memcmp-stub.c
diff --git a/newlib/libc/machine/aarch64/Makefile.in b/newlib/libc/machine/aarch64/Makefile.in diff --git a/newlib/libc/machine/aarch64/Makefile.in b/newlib/libc/machine/aarch64/Makefile.in
index 39b23a1..9695124 100644 index 39b23a1ce..969512471 100644
--- a/newlib/libc/machine/aarch64/Makefile.in --- a/newlib/libc/machine/aarch64/Makefile.in
+++ b/newlib/libc/machine/aarch64/Makefile.in +++ b/newlib/libc/machine/aarch64/Makefile.in
@@ -69,22 +69,22 @@ LIBRARIES = $(noinst_LIBRARIES) @@ -69,22 +69,22 @@ LIBRARIES = $(noinst_LIBRARIES)
@@ -9857,7 +9883,7 @@ index 39b23a1..9695124 100644
diff --git a/newlib/libc/machine/aarch64/access.c b/newlib/libc/machine/aarch64/access.c diff --git a/newlib/libc/machine/aarch64/access.c b/newlib/libc/machine/aarch64/access.c
new file mode 100644 new file mode 100644
index 0000000..980682e index 000000000..980682ef3
--- /dev/null --- /dev/null
+++ b/newlib/libc/machine/aarch64/access.c +++ b/newlib/libc/machine/aarch64/access.c
@@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
@@ -9895,7 +9921,7 @@ index 0000000..980682e
+} +}
+ +
diff --git a/newlib/libc/machine/arm/Makefile.am b/newlib/libc/machine/arm/Makefile.am diff --git a/newlib/libc/machine/arm/Makefile.am b/newlib/libc/machine/arm/Makefile.am
index 9bd35e7..7311300 100644 index 9bd35e733..731130092 100644
--- a/newlib/libc/machine/arm/Makefile.am --- a/newlib/libc/machine/arm/Makefile.am
+++ b/newlib/libc/machine/arm/Makefile.am +++ b/newlib/libc/machine/arm/Makefile.am
@@ -11,7 +11,9 @@ noinst_LIBRARIES = lib.a @@ -11,7 +11,9 @@ noinst_LIBRARIES = lib.a
@@ -9910,7 +9936,7 @@ index 9bd35e7..7311300 100644
lib_a_SOURCES += memchr.S lib_a_SOURCES += memchr.S
lib_a_SOURCES += memcpy-stub.c lib_a_SOURCES += memcpy-stub.c
diff --git a/newlib/libc/machine/arm/Makefile.in b/newlib/libc/machine/arm/Makefile.in diff --git a/newlib/libc/machine/arm/Makefile.in b/newlib/libc/machine/arm/Makefile.in
index d9dbcd5..43712f8 100644 index d9dbcd5c3..43712f813 100644
--- a/newlib/libc/machine/arm/Makefile.in --- a/newlib/libc/machine/arm/Makefile.in
+++ b/newlib/libc/machine/arm/Makefile.in +++ b/newlib/libc/machine/arm/Makefile.in
@@ -75,10 +75,10 @@ am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT) lib_a-strcmp.$(OBJEXT) \ @@ -75,10 +75,10 @@ am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT) lib_a-strcmp.$(OBJEXT) \
@@ -9954,7 +9980,7 @@ index d9dbcd5..43712f8 100644
diff --git a/newlib/libc/machine/arm/sync_synchronize.c b/newlib/libc/machine/arm/sync_synchronize.c diff --git a/newlib/libc/machine/arm/sync_synchronize.c b/newlib/libc/machine/arm/sync_synchronize.c
new file mode 100644 new file mode 100644
index 0000000..3acc9e0 index 000000000..3acc9e094
--- /dev/null --- /dev/null
+++ b/newlib/libc/machine/arm/sync_synchronize.c +++ b/newlib/libc/machine/arm/sync_synchronize.c
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
@@ -9970,7 +9996,7 @@ index 0000000..3acc9e0
+#endif +#endif
diff --git a/newlib/libc/machine/arm/sys/stdio.h b/newlib/libc/machine/arm/sys/stdio.h diff --git a/newlib/libc/machine/arm/sys/stdio.h b/newlib/libc/machine/arm/sys/stdio.h
new file mode 100644 new file mode 100644
index 0000000..4eb278e index 000000000..4eb278e2f
--- /dev/null --- /dev/null
+++ b/newlib/libc/machine/arm/sys/stdio.h +++ b/newlib/libc/machine/arm/sys/stdio.h
@@ -0,0 +1,27 @@ @@ -0,0 +1,27 @@
@@ -10002,7 +10028,7 @@ index 0000000..4eb278e
+ +
+#endif /* _NEWLIB_STDIO_H */ +#endif /* _NEWLIB_STDIO_H */
diff --git a/newlib/libc/reent/getreent.c b/newlib/libc/reent/getreent.c diff --git a/newlib/libc/reent/getreent.c b/newlib/libc/reent/getreent.c
index 5fa98e9..ef8a15e 100644 index 5fa98e96b..ef8a15e1b 100644
--- a/newlib/libc/reent/getreent.c --- a/newlib/libc/reent/getreent.c
+++ b/newlib/libc/reent/getreent.c +++ b/newlib/libc/reent/getreent.c
@@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
@@ -10017,7 +10043,7 @@ index 5fa98e9..ef8a15e 100644
+#endif +#endif
\ No newline at end of file \ No newline at end of file
diff --git a/newlib/libc/reent/gettimeofdayr.c b/newlib/libc/reent/gettimeofdayr.c diff --git a/newlib/libc/reent/gettimeofdayr.c b/newlib/libc/reent/gettimeofdayr.c
index 9b982a9..8c0aaac 100644 index 9b982a993..8c0aaac8c 100644
--- a/newlib/libc/reent/gettimeofdayr.c --- a/newlib/libc/reent/gettimeofdayr.c
+++ b/newlib/libc/reent/gettimeofdayr.c +++ b/newlib/libc/reent/gettimeofdayr.c
@@ -51,7 +51,7 @@ DESCRIPTION @@ -51,7 +51,7 @@ DESCRIPTION
@@ -10037,7 +10063,7 @@ index 9b982a9..8c0aaac 100644
+*/ +*/
#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ #endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */
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
index b358d2b..11c2343 100644 index df8321461..55ceaab42 100644
--- a/newlib/libc/stdio/fread.c --- a/newlib/libc/stdio/fread.c
+++ b/newlib/libc/stdio/fread.c +++ b/newlib/libc/stdio/fread.c
@@ -135,7 +135,7 @@ crlf_r (struct _reent * ptr, @@ -135,7 +135,7 @@ crlf_r (struct _reent * ptr,
@@ -10101,7 +10127,7 @@ index b358d2b..11c2343 100644
/* no more input: return partial result */ /* no more input: return partial result */
#ifdef __SCLE #ifdef __SCLE
diff --git a/newlib/libc/stdio/local.h b/newlib/libc/stdio/local.h diff --git a/newlib/libc/stdio/local.h b/newlib/libc/stdio/local.h
index 53694aa..79a8f46 100644 index 84ff40b49..ba1d4ee7b 100644
--- a/newlib/libc/stdio/local.h --- a/newlib/libc/stdio/local.h
+++ b/newlib/libc/stdio/local.h +++ b/newlib/libc/stdio/local.h
@@ -56,7 +56,7 @@ @@ -56,7 +56,7 @@
@@ -10114,10 +10140,10 @@ index 53694aa..79a8f46 100644
#endif #endif
diff --git a/newlib/libc/stdio/vfprintf.c b/newlib/libc/stdio/vfprintf.c diff --git a/newlib/libc/stdio/vfprintf.c b/newlib/libc/stdio/vfprintf.c
index c4bf2db..d756df3 100644 index 1aaf05aa4..b67182a79 100644
--- a/newlib/libc/stdio/vfprintf.c --- a/newlib/libc/stdio/vfprintf.c
+++ b/newlib/libc/stdio/vfprintf.c +++ b/newlib/libc/stdio/vfprintf.c
@@ -112,6 +112,8 @@ Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, @@ -108,6 +108,8 @@ Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,
<<lseek>>, <<read>>, <<sbrk>>, <<write>>. <<lseek>>, <<read>>, <<sbrk>>, <<write>>.
*/ */
@@ -10126,7 +10152,7 @@ index c4bf2db..d756df3 100644
#if defined(LIBC_SCCS) && !defined(lint) #if defined(LIBC_SCCS) && !defined(lint)
/*static char *sccsid = "from: @(#)vfprintf.c 5.50 (Berkeley) 12/16/92";*/ /*static char *sccsid = "from: @(#)vfprintf.c 5.50 (Berkeley) 12/16/92";*/
static char *rcsid = "$Id$"; static char *rcsid = "$Id$";
@@ -1438,7 +1440,7 @@ reswitch: switch (ch) { @@ -1434,7 +1436,7 @@ reswitch: switch (ch) {
string: string:
#endif #endif
sign = '\0'; sign = '\0';
@@ -10135,7 +10161,7 @@ index c4bf2db..d756df3 100644
/* Behavior is undefined if the user passed a /* Behavior is undefined if the user passed a
NULL string when precision is not 0. NULL string when precision is not 0.
However, if we are not optimizing for size, However, if we are not optimizing for size,
@@ -1448,7 +1450,7 @@ string: @@ -1444,7 +1446,7 @@ string:
size = ((unsigned) prec > 6U) ? 6 : prec; size = ((unsigned) prec > 6U) ? 6 : prec;
} }
else else
@@ -10145,7 +10171,7 @@ index c4bf2db..d756df3 100644
if (ch == 'S' || (flags & LONGINT)) { if (ch == 'S' || (flags & LONGINT)) {
mbstate_t ps; mbstate_t ps;
diff --git a/newlib/libc/stdio/vfscanf.c b/newlib/libc/stdio/vfscanf.c diff --git a/newlib/libc/stdio/vfscanf.c b/newlib/libc/stdio/vfscanf.c
index 9c38eeb..fbc8d87 100644 index 994cee7fc..5d1d0a1cd 100644
--- a/newlib/libc/stdio/vfscanf.c --- a/newlib/libc/stdio/vfscanf.c
+++ b/newlib/libc/stdio/vfscanf.c +++ b/newlib/libc/stdio/vfscanf.c
@@ -74,6 +74,8 @@ These are GNU extensions. @@ -74,6 +74,8 @@ These are GNU extensions.
@@ -10158,7 +10184,7 @@ index 9c38eeb..fbc8d87 100644
#include <reent.h> #include <reent.h>
#include <newlib.h> #include <newlib.h>
diff --git a/newlib/libc/stdio/vfwprintf.c b/newlib/libc/stdio/vfwprintf.c diff --git a/newlib/libc/stdio/vfwprintf.c b/newlib/libc/stdio/vfwprintf.c
index 980b31e..722be90 100644 index 980b31e3b..722be905e 100644
--- a/newlib/libc/stdio/vfwprintf.c --- a/newlib/libc/stdio/vfwprintf.c
+++ b/newlib/libc/stdio/vfwprintf.c +++ b/newlib/libc/stdio/vfwprintf.c
@@ -92,6 +92,9 @@ SEEALSO @@ -92,6 +92,9 @@ SEEALSO
@@ -10172,7 +10198,7 @@ index 980b31e..722be90 100644
#ifdef INTEGER_ONLY #ifdef INTEGER_ONLY
diff --git a/newlib/libc/stdio/vfwscanf.c b/newlib/libc/stdio/vfwscanf.c diff --git a/newlib/libc/stdio/vfwscanf.c b/newlib/libc/stdio/vfwscanf.c
index ffb6cc8..db33d4f 100644 index f00d41a09..7e290ee8d 100644
--- a/newlib/libc/stdio/vfwscanf.c --- a/newlib/libc/stdio/vfwscanf.c
+++ b/newlib/libc/stdio/vfwscanf.c +++ b/newlib/libc/stdio/vfwscanf.c
@@ -74,6 +74,9 @@ PORTABILITY @@ -74,6 +74,9 @@ PORTABILITY
@@ -10186,7 +10212,7 @@ index ffb6cc8..db33d4f 100644
#include <reent.h> #include <reent.h>
#include <newlib.h> #include <newlib.h>
diff --git a/newlib/libc/stdlib/Makefile.am b/newlib/libc/stdlib/Makefile.am diff --git a/newlib/libc/stdlib/Makefile.am b/newlib/libc/stdlib/Makefile.am
index 357e37b..7183b21 100644 index 357e37beb..7183b2100 100644
--- a/newlib/libc/stdlib/Makefile.am --- a/newlib/libc/stdlib/Makefile.am
+++ b/newlib/libc/stdlib/Makefile.am +++ b/newlib/libc/stdlib/Makefile.am
@@ -110,6 +110,7 @@ MALLOCR=mallocr @@ -110,6 +110,7 @@ MALLOCR=mallocr
@@ -10198,7 +10224,7 @@ index 357e37b..7183b21 100644
arc4random_uniform.c \ arc4random_uniform.c \
cxa_atexit.c \ cxa_atexit.c \
diff --git a/newlib/libc/stdlib/Makefile.in b/newlib/libc/stdlib/Makefile.in diff --git a/newlib/libc/stdlib/Makefile.in b/newlib/libc/stdlib/Makefile.in
index 699831f..1e6d2e6 100644 index 699831f13..1e6d2e612 100644
--- a/newlib/libc/stdlib/Makefile.in --- a/newlib/libc/stdlib/Makefile.in
+++ b/newlib/libc/stdlib/Makefile.in +++ b/newlib/libc/stdlib/Makefile.in
@@ -119,7 +119,7 @@ am__objects_2 = lib_a-__adjust.$(OBJEXT) lib_a-__atexit.$(OBJEXT) \ @@ -119,7 +119,7 @@ am__objects_2 = lib_a-__adjust.$(OBJEXT) lib_a-__atexit.$(OBJEXT) \
@@ -10233,39 +10259,20 @@ index 699831f..1e6d2e6 100644
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-arc4random.o `test -f 'arc4random.c' || echo '$(srcdir)/'`arc4random.c $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-arc4random.o `test -f 'arc4random.c' || echo '$(srcdir)/'`arc4random.c
diff --git a/newlib/libc/stdlib/aligned_alloc.c b/newlib/libc/stdlib/aligned_alloc.c diff --git a/newlib/libc/stdlib/aligned_alloc.c b/newlib/libc/stdlib/aligned_alloc.c
index 88413ce..24029a6 100644 index feb22c24b..3dae0c9a9 100644
--- a/newlib/libc/stdlib/aligned_alloc.c --- a/newlib/libc/stdlib/aligned_alloc.c
+++ b/newlib/libc/stdlib/aligned_alloc.c +++ b/newlib/libc/stdlib/aligned_alloc.c
@@ -1,5 +1,5 @@ @@ -28,6 +28,8 @@
/*-
- * Copyright (c) 2015 embedded brains GmbH
+ * Copyright (c) 2018 Dave Murphy
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -25,14 +25,15 @@
*/
#include <reent.h>
#include <stdlib.h> #include <stdlib.h>
+#include <malloc.h> +#include <malloc.h>
+#include <errno.h> +#include <errno.h>
void * void *
aligned_alloc(size_t alignment, size_t size) aligned_alloc (size_t align, size_t size)
{
- void *p;
- int error;
+ if ((alignment !=0) && !(alignment & (alignment - 1 )) && !(size & (alignment - 1)))
+ return memalign(alignment,size);
- error = posix_memalign(&p, alignment, size);
-
- return (error == 0 ? p : NULL);
+ errno = EINVAL;
+ return (void*)NULL;
}
diff --git a/newlib/libc/stdlib/mbtowc_r.c b/newlib/libc/stdlib/mbtowc_r.c diff --git a/newlib/libc/stdlib/mbtowc_r.c b/newlib/libc/stdlib/mbtowc_r.c
index 920a7ea..ba5ee76 100644 index 920a7ea3c..ba5ee7652 100644
--- a/newlib/libc/stdlib/mbtowc_r.c --- a/newlib/libc/stdlib/mbtowc_r.c
+++ b/newlib/libc/stdlib/mbtowc_r.c +++ b/newlib/libc/stdlib/mbtowc_r.c
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
@@ -10278,7 +10285,7 @@ index 920a7ea..ba5ee76 100644
wchar_t *__restrict pwc, wchar_t *__restrict pwc,
diff --git a/newlib/libc/stdlib/threads.c b/newlib/libc/stdlib/threads.c diff --git a/newlib/libc/stdlib/threads.c b/newlib/libc/stdlib/threads.c
new file mode 100755 new file mode 100755
index 0000000..741111e index 000000000..741111ea0
--- /dev/null --- /dev/null
+++ b/newlib/libc/stdlib/threads.c +++ b/newlib/libc/stdlib/threads.c
@@ -0,0 +1,224 @@ @@ -0,0 +1,224 @@
@@ -10508,7 +10515,7 @@ index 0000000..741111e
+} +}
diff --git a/newlib/libc/sys/arm/include/machine/_types.h b/newlib/libc/sys/arm/include/machine/_types.h diff --git a/newlib/libc/sys/arm/include/machine/_types.h b/newlib/libc/sys/arm/include/machine/_types.h
new file mode 100644 new file mode 100644
index 0000000..40092f9 index 000000000..40092f99f
--- /dev/null --- /dev/null
+++ b/newlib/libc/sys/arm/include/machine/_types.h +++ b/newlib/libc/sys/arm/include/machine/_types.h
@@ -0,0 +1,19 @@ @@ -0,0 +1,19 @@
@@ -10533,7 +10540,7 @@ index 0000000..40092f9
+ +
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 0000000..567fed5 index 000000000..567fed56b
--- /dev/null --- /dev/null
+++ b/newlib/libc/sys/arm/sys/lock.h +++ b/newlib/libc/sys/arm/sys/lock.h
@@ -0,0 +1,66 @@ @@ -0,0 +1,66 @@

View File

@@ -10,7 +10,6 @@ export DEVKITPRO=$TOOLPATH
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
cd $BUILDDIR cd $BUILDDIR
mkdir -p rules tar -xvf $SRCDIR/devkita64-rules-$DKA64_RULES_VER.tar.gz
cd rules cd devkita64-rules-$DKA64_RULES_VER
tar -xvf $SRCDIR/devkita64-rules-$DKA64_RULES_VER.tar.xz
make install make install

View File

@@ -62,13 +62,13 @@ then
--with-newlib=yes \ --with-newlib=yes \
--with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \ --with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \
--prefix=$prefix \ --prefix=$prefix \
--enable-lto $plugin_ld\ --enable-lto \
--with-system-zlib \ --disable-tm-clone-registry \
--disable-tm-clone-registry \ --disable-__cxa_atexit \
--disable-__cxa_atexit \ --with-bugurl="https://github.com/devkitPro/buildscripts/issues" --with-pkgversion="devkitA64 release 17" \
--with-bugurl="https://github.com/devkitPro/buildscripts/issues" --with-pkgversion="devkitA64 release 16" \
$CROSS_PARAMS \ $CROSS_PARAMS \
$CROSS_GCC_PARAMS \ $CROSS_GCC_PARAMS \
$EXTRA_GCC_PARAMS \
|| { echo "Error configuring gcc"; exit 1; } || { echo "Error configuring gcc"; exit 1; }
touch configured-gcc touch configured-gcc
fi fi

View File

@@ -1,8 +1,70 @@
diff --git a/gcc/config.host b/gcc/config.host
index 0a02c33cc80..38f7adc655e 100644
--- a/gcc/config.host
+++ b/gcc/config.host
@@ -251,6 +251,10 @@ case ${host} in
host_extra_gcc_objs="${host_extra_gcc_objs} driver-mingw32.o"
host_lto_plugin_soname=liblto_plugin.dll
;;
+ aarch64-*-darwin*)
+ out_host_hook_obj="${out_host_hook_obj} host-aarch64-darwin.o"
+ host_xmake_file="${host_xmake_file} aarch64/x-darwin"
+ ;;
i[34567]86-*-darwin* | x86_64-*-darwin*)
out_host_hook_obj="${out_host_hook_obj} host-i386-darwin.o"
host_xmake_file="${host_xmake_file} i386/x-darwin"
diff --git a/gcc/config/aarch64/host-aarch64-darwin.c b/gcc/config/aarch64/host-aarch64-darwin.c
new file mode 100644
index 00000000000..92c38b0b9db
--- /dev/null
+++ b/gcc/config/aarch64/host-aarch64-darwin.c
@@ -0,0 +1,32 @@
+/* i386-darwin host-specific hook definitions.
+ Copyright (C) 2003-2021 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/>. */
+
+#define IN_TARGET_CODE 1
+
+#include "config.h"
+#include "system.h"
+#include "coretypes.h"
+#include "hosthooks.h"
+#include "hosthooks-def.h"
+#include "config/host-darwin.h"
+
+/* Darwin doesn't do anything special for aarch64 hosts; this file exists just
+ to include config/host-darwin.h. */
+
+const struct host_hooks host_hooks = HOST_HOOKS_INITIALIZER;
diff --git a/gcc/config/aarch64/x-darwin b/gcc/config/aarch64/x-darwin
new file mode 100644
index 00000000000..6d788d5e89c
--- /dev/null
+++ b/gcc/config/aarch64/x-darwin
@@ -0,0 +1,3 @@
+host-aarch64-darwin.o : $(srcdir)/config/aarch64/host-aarch64-darwin.c
+ $(COMPILE) $<
+ $(POSTCOMPILE)
diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in
index 728be500b80..74c1abad635 100644 index 0becb4385b6..30bd4a24cd6 100644
--- a/gcc/config/arm/arm-cpus.in --- a/gcc/config/arm/arm-cpus.in
+++ b/gcc/config/arm/arm-cpus.in +++ b/gcc/config/arm/arm-cpus.in
@@ -392,7 +392,7 @@ begin arch armv6k @@ -400,7 +400,7 @@ begin arch armv6k
tune for mpcore tune for mpcore
tune flags CO_PROC tune flags CO_PROC
base 6K base 6K
@@ -12,7 +74,7 @@ index 728be500b80..74c1abad635 100644
optalias vfpv2 fp optalias vfpv2 fp
option nofp remove ALL_FP option nofp remove ALL_FP
diff --git a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf diff --git a/gcc/config/arm/t-arm-elf b/gcc/config/arm/t-arm-elf
index 3d92bd23322..35cefcde676 100644 index d68def30867..d31f1e31ee6 100644
--- a/gcc/config/arm/t-arm-elf --- a/gcc/config/arm/t-arm-elf
+++ b/gcc/config/arm/t-arm-elf +++ b/gcc/config/arm/t-arm-elf
@@ -16,111 +16,14 @@ @@ -16,111 +16,14 @@
@@ -133,7 +195,7 @@ index 3d92bd23322..35cefcde676 100644
-MULTILIB_REUSE += mthumb/mfpu.auto/march.armv7+fp/mfloat-abi.hard=mfpu.auto/march.armv7+fp/mfloat-abi.hard -MULTILIB_REUSE += mthumb/mfpu.auto/march.armv7+fp/mfloat-abi.hard=mfpu.auto/march.armv7+fp/mfloat-abi.hard
-MULTILIB_REUSE += mthumb/mfpu.auto/march.armv7+fp/mfloat-abi.hard=march.armv7+fp/mfloat-abi.hard -MULTILIB_REUSE += mthumb/mfpu.auto/march.armv7+fp/mfloat-abi.hard=march.armv7+fp/mfloat-abi.hard
diff --git a/gcc/config/arm/unknown-elf.h b/gcc/config/arm/unknown-elf.h diff --git a/gcc/config/arm/unknown-elf.h b/gcc/config/arm/unknown-elf.h
index 9ad2947505f..1790caa8e88 100644 index cca6f0ece54..8b78c28c7bb 100644
--- a/gcc/config/arm/unknown-elf.h --- a/gcc/config/arm/unknown-elf.h
+++ b/gcc/config/arm/unknown-elf.h +++ b/gcc/config/arm/unknown-elf.h
@@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
@@ -153,52 +215,26 @@ index 9ad2947505f..1790caa8e88 100644
+#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L %(libgloss) --end-group" +#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L %(libgloss) --end-group"
+ +
diff --git a/gcc/config/i386/host-mingw32.c b/gcc/config/i386/host-mingw32.c diff --git a/gcc/config/i386/host-mingw32.c b/gcc/config/i386/host-mingw32.c
index 250fef59b55..36b2239aa5d 100644 index 360a280b23a..2c03947999a 100644
--- a/gcc/config/i386/host-mingw32.c --- a/gcc/config/i386/host-mingw32.c
+++ b/gcc/config/i386/host-mingw32.c +++ b/gcc/config/i386/host-mingw32.c
@@ -44,9 +44,6 @@ static size_t mingw32_gt_pch_alloc_granularity (void); @@ -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*); static inline void w32_error(const char*, const char*, int, const char*);
-/* FIXME: Is this big enough? */ /* FIXME: Is this big enough? */
-static const size_t pch_VA_max_size = 128 * 1024 * 1024; +#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;
+#endif
/* Granularity for reserving address space. */ /* Granularity for reserving address space. */
static size_t va_granularity = 0x10000; static size_t va_granularity = 0x10000;
@@ -88,9 +85,6 @@ static void *
mingw32_gt_pch_get_address (size_t size, int)
{
void* res;
- size = (size + va_granularity - 1) & ~(va_granularity - 1);
- if (size > pch_VA_max_size)
- return NULL;
/* FIXME: We let system determine base by setting first arg to NULL.
Allocating at top of available address space avoids unnecessary
@@ -100,7 +94,7 @@ 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. */
- res = VirtualAlloc (NULL, pch_VA_max_size,
+ res = VirtualAlloc (NULL, size,
MEM_RESERVE | MEM_TOP_DOWN,
PAGE_NOACCESS);
if (!res)
@@ -150,7 +144,7 @@ mingw32_gt_pch_use_address (void *addr, size_t size, int fd,
/* Offset must be also be a multiple of allocation granularity for
this to work. We can't change the offset. */
- if ((offset & (va_granularity - 1)) != 0 || size > pch_VA_max_size)
+ if ((offset & (va_granularity - 1)) != 0)
return -1;
diff --git a/gcc/gcc.c b/gcc/gcc.c diff --git a/gcc/gcc.c b/gcc/gcc.c
index 9f790db0daf..97f52d0b893 100644 index 7837553958b..69d7a798e2e 100644
--- a/gcc/gcc.c --- a/gcc/gcc.c
+++ b/gcc/gcc.c +++ b/gcc/gcc.c
@@ -793,6 +793,11 @@ proper position among the other output files. */ @@ -853,6 +853,11 @@ proper position among the other output files. */
#endif #endif
#endif #endif
@@ -210,7 +246,7 @@ index 9f790db0daf..97f52d0b893 100644
/* config.h can define STARTFILE_SPEC to override the default crt0 files. */ /* config.h can define STARTFILE_SPEC to override the default crt0 files. */
#ifndef STARTFILE_SPEC #ifndef STARTFILE_SPEC
#define STARTFILE_SPEC \ #define STARTFILE_SPEC \
@@ -1085,6 +1090,7 @@ static const char *link_spec = LINK_SPEC; @@ -1197,6 +1202,7 @@ static const char *link_spec = LINK_SPEC;
static const char *lib_spec = LIB_SPEC; static const char *lib_spec = LIB_SPEC;
static const char *link_gomp_spec = ""; static const char *link_gomp_spec = "";
static const char *libgcc_spec = LIBGCC_SPEC; static const char *libgcc_spec = LIBGCC_SPEC;
@@ -218,7 +254,7 @@ index 9f790db0daf..97f52d0b893 100644
static const char *endfile_spec = ENDFILE_SPEC; static const char *endfile_spec = ENDFILE_SPEC;
static const char *startfile_spec = STARTFILE_SPEC; static const char *startfile_spec = STARTFILE_SPEC;
static const char *linker_name_spec = LINKER_NAME; static const char *linker_name_spec = LINKER_NAME;
@@ -1582,6 +1588,7 @@ static struct spec_list static_specs[] = @@ -1702,6 +1708,7 @@ static struct spec_list static_specs[] =
INIT_STATIC_SPEC ("lib", &lib_spec), INIT_STATIC_SPEC ("lib", &lib_spec),
INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec), INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec),
INIT_STATIC_SPEC ("libgcc", &libgcc_spec), INIT_STATIC_SPEC ("libgcc", &libgcc_spec),
@@ -237,7 +273,7 @@ index dddddc7c444..c2502597953 100644
-LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions -LIB2_DIVMOD_EXCEPTION_FLAGS := -fexceptions
+LIB2_DIVMOD_EXCEPTION_FLAGS := -fno-exceptions +LIB2_DIVMOD_EXCEPTION_FLAGS := -fno-exceptions
diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
index 3f769a1c660..e005d8304b7 100644 index 675930db043..bdfd6f6b0bb 100644
--- a/libgcc/crtstuff.c --- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c +++ b/libgcc/crtstuff.c
@@ -325,7 +325,7 @@ register_tm_clones (void) @@ -325,7 +325,7 @@ register_tm_clones (void)
@@ -249,3 +285,43 @@ index 3f769a1c660..e005d8304b7 100644
/* Declare the __dso_handle variable. It should have a unique value /* Declare the __dso_handle variable. It should have a unique value
in every shared-object; in a main program its value is zero. The in every shared-object; in a main program its value is zero. The
object should in any case be protected. This means the instance object should in any case be protected. This means the instance
diff --git a/libstdc++-v3/include/c_compatibility/fenv.h b/libstdc++-v3/include/c_compatibility/fenv.h
index 0413e3b7c25..ff5f8bbe1a1 100644
--- a/libstdc++-v3/include/c_compatibility/fenv.h
+++ b/libstdc++-v3/include/c_compatibility/fenv.h
@@ -26,6 +26,10 @@
* This is a Standard C++ Library header.
*/
+#if !defined __cplusplus || defined _GLIBCXX_INCLUDE_NEXT_C_HEADERS
+# include_next <fenv.h>
+#else
+
#ifndef _GLIBCXX_FENV_H
#define _GLIBCXX_FENV_H 1
@@ -79,3 +83,5 @@ namespace std
#endif // C++11
#endif // _GLIBCXX_FENV_H
+
+#endif // __cplusplus
diff --git a/libstdc++-v3/include/c_global/cfenv b/libstdc++-v3/include/c_global/cfenv
index 0b0ec35a837..d24cb1a3c81 100644
--- a/libstdc++-v3/include/c_global/cfenv
+++ b/libstdc++-v3/include/c_global/cfenv
@@ -37,9 +37,11 @@
#include <bits/c++config.h>
-#if _GLIBCXX_HAVE_FENV_H
-# include <fenv.h>
-#endif
+// Need to ensure this finds the C library's <fenv.h> not a libstdc++
+// wrapper that might already be installed later in the include search path.
+#define _GLIBCXX_INCLUDE_NEXT_C_HEADERS
+#include_next <fenv.h>
+#undef _GLIBCXX_INCLUDE_NEXT_C_HEADERS
#ifdef _GLIBCXX_USE_C99_FENV_TR1

View File

@@ -1,8 +1,8 @@
diff --git a/libgloss/configure b/libgloss/configure diff --git a/libgloss/configure b/libgloss/configure
index 0d2918cee..bccfb07b4 100755 index 816b9c4b8..b79edb6c8 100755
--- a/libgloss/configure --- a/libgloss/configure
+++ b/libgloss/configure +++ b/libgloss/configure
@@ -2604,6 +2604,8 @@ if test "${config_libnosys}" = "true"; then @@ -2609,6 +2609,8 @@ if test "${config_libnosys}" = "true"; then
fi fi
@@ -12,7 +12,7 @@ index 0d2918cee..bccfb07b4 100755
ac_config_commands="$ac_config_commands depfiles" ac_config_commands="$ac_config_commands depfiles"
diff --git a/libgloss/configure.in b/libgloss/configure.in diff --git a/libgloss/configure.in b/libgloss/configure.in
index f38d5298e..509c31071 100644 index 4111724e1..0e44d885e 100644
--- a/libgloss/configure.in --- a/libgloss/configure.in
+++ b/libgloss/configure.in +++ b/libgloss/configure.in
@@ -2,6 +2,7 @@ dnl Process this file with autoconf to produce a configure script. @@ -2,6 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
@@ -23,7 +23,7 @@ index f38d5298e..509c31071 100644
if test "${enable_shared}" = "yes" ; then if test "${enable_shared}" = "yes" ; then
echo "Shared libraries not supported for cross compiling, ignored" echo "Shared libraries not supported for cross compiling, ignored"
@@ -193,6 +194,7 @@ dnl fi @@ -196,6 +197,7 @@ dnl fi
if test "${config_libnosys}" = "true"; then if test "${config_libnosys}" = "true"; then
AC_CONFIG_SUBDIRS([libnosys]) AC_CONFIG_SUBDIRS([libnosys])
fi fi
@@ -7408,10 +7408,10 @@ index 000000000..61de918bc
+ return ret; + return ret;
+} +}
diff --git a/newlib/configure.host b/newlib/configure.host diff --git a/newlib/configure.host b/newlib/configure.host
index a84c0c80a..29fb7ed24 100644 index 1ddbb6c76..ed9999bea 100644
--- a/newlib/configure.host --- a/newlib/configure.host
+++ b/newlib/configure.host +++ b/newlib/configure.host
@@ -687,6 +687,14 @@ newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DEXIT_PROVID @@ -694,6 +694,14 @@ newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DEXIT_PROVID
syscall_dir=syscalls syscall_dir=syscalls
default_newlib_io_long_long="yes" default_newlib_io_long_long="yes"
;; ;;
@@ -7426,8 +7426,34 @@ index a84c0c80a..29fb7ed24 100644
arm*-*-pe) arm*-*-pe)
syscall_dir=syscalls syscall_dir=syscalls
;; ;;
diff --git a/newlib/libc/ctype/jp2uc.c b/newlib/libc/ctype/jp2uc.c
index 5e30f09be..1ea357f92 100644
--- a/newlib/libc/ctype/jp2uc.c
+++ b/newlib/libc/ctype/jp2uc.c
@@ -35,7 +35,7 @@
#ifdef _MB_CAPABLE
/* Under Cygwin, the incoming wide character is already given in UTF due
to the requirements of the underlying OS. */
-#ifndef __CYGWIN__
+#if !defined(__CYGWIN__) && !defined(__DEVKITA64__)
#include <_ansi.h>
#include <string.h>
diff --git a/newlib/libc/ctype/local.h b/newlib/libc/ctype/local.h
index 5c293c83d..75ccf89f5 100644
--- a/newlib/libc/ctype/local.h
+++ b/newlib/libc/ctype/local.h
@@ -32,7 +32,7 @@
* for towupper and towlower, the result must be back-transformed
into the respective locale encoding; currently NOT IMPLEMENTED
*/
-#ifdef __CYGWIN__
+#if defined(__CYGWIN__) || defined(__DEVKITA64__)
/* Under Cygwin, wchar_t (or its extension wint_t) is Unicode */
#define _jp2uc(c) (c)
#define _jp2uc_l(c, l) (c)
diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h diff --git a/newlib/libc/include/stdio.h b/newlib/libc/include/stdio.h
index 164d95bca..083e48758 100644 index ab18806e3..db77ebb2a 100644
--- a/newlib/libc/include/stdio.h --- a/newlib/libc/include/stdio.h
+++ b/newlib/libc/include/stdio.h +++ b/newlib/libc/include/stdio.h
@@ -233,7 +233,7 @@ int fsetpos (FILE *, const _fpos_t *); @@ -233,7 +233,7 @@ int fsetpos (FILE *, const _fpos_t *);
@@ -7440,7 +7466,7 @@ index 164d95bca..083e48758 100644
void clearerr (FILE *); void clearerr (FILE *);
int feof (FILE *); int feof (FILE *);
diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h diff --git a/newlib/libc/include/sys/config.h b/newlib/libc/include/sys/config.h
index d746b15fc..80169d9b7 100644 index 4bc8d29bf..35c05e6af 100644
--- a/newlib/libc/include/sys/config.h --- a/newlib/libc/include/sys/config.h
+++ b/newlib/libc/include/sys/config.h +++ b/newlib/libc/include/sys/config.h
@@ -4,6 +4,9 @@ @@ -4,6 +4,9 @@
@@ -7770,7 +7796,7 @@ index 5e937f103..635a7a6b8 100644
}; };
#endif #endif
diff --git a/newlib/libc/locale/locale.c b/newlib/libc/locale/locale.c diff --git a/newlib/libc/locale/locale.c b/newlib/libc/locale/locale.c
index 4c343e462..c04493460 100644 index 968642745..2ab1f9570 100644
--- a/newlib/libc/locale/locale.c --- a/newlib/libc/locale/locale.c
+++ b/newlib/libc/locale/locale.c +++ b/newlib/libc/locale/locale.c
@@ -92,7 +92,7 @@ beginning with <<"LC_">>. @@ -92,7 +92,7 @@ beginning with <<"LC_">>.
@@ -7882,7 +7908,7 @@ index 4c343e462..c04493460 100644
if (strcmp (locale, "POSIX") && strcmp (locale, "C") if (strcmp (locale, "POSIX") && strcmp (locale, "C")
&& strcmp (locale, "")) && strcmp (locale, ""))
return NULL; return NULL;
@@ -990,6 +1015,7 @@ __locale_ctype_ptr_l (struct __locale_t *locale) @@ -991,6 +1016,7 @@ __locale_ctype_ptr_l (struct __locale_t *locale)
const char * const char *
__locale_ctype_ptr (void) __locale_ctype_ptr (void)
@@ -8031,7 +8057,7 @@ index 9b982a993..8c0aaac8c 100644
+*/ +*/
#endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */ #endif /* ! defined (REENTRANT_SYSCALLS_PROVIDED) */
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
index b358d2b4a..a3e597fd2 100644 index df8321461..9263e5829 100644
--- a/newlib/libc/stdio/fread.c --- a/newlib/libc/stdio/fread.c
+++ b/newlib/libc/stdio/fread.c +++ b/newlib/libc/stdio/fread.c
@@ -135,7 +135,7 @@ crlf_r (struct _reent * ptr, @@ -135,7 +135,7 @@ crlf_r (struct _reent * ptr,
@@ -8060,7 +8086,7 @@ index b358d2b4a..a3e597fd2 100644
resid -= fp->_r; resid -= fp->_r;
p += fp->_r; p += fp->_r;
fp->_r = 0; fp->_r = 0;
@@ -225,7 +224,31 @@ _fread_r (struct _reent * ptr, @@ -225,7 +224,30 @@ _fread_r (struct _reent * ptr,
/* fp->_r = 0 ... done in __srefill */ /* fp->_r = 0 ... done in __srefill */
p += r; p += r;
resid -= r; resid -= r;
@@ -8075,7 +8101,7 @@ index b358d2b4a..a3e597fd2 100644
+ int old_size = fp->_bf._size; + int old_size = fp->_bf._size;
+ /* allow __refill to use user's buffer */ + /* allow __refill to use user's buffer */
+ fp->_bf._base = (unsigned char *) p; + fp->_bf._base = (unsigned char *) p;
+ fp->_bf._size = resid; + fp->_bf._size = resid - old_size;
+ fp->_p = (unsigned char *) p; + fp->_p = (unsigned char *) p;
+ rc = __srefill_r (ptr, fp); + rc = __srefill_r (ptr, fp);
+ /* restore fp buffering back to original state */ + /* restore fp buffering back to original state */
@@ -8084,20 +8110,19 @@ index b358d2b4a..a3e597fd2 100644
+ fp->_p = old_base; + fp->_p = old_base;
+ resid -= fp->_r; + resid -= fp->_r;
+ p += fp->_r; + p += fp->_r;
+ fp->_r = 0; + //fp->_r = 0;
+
+ } else {
+ rc = __srefill_r (ptr, fp);
+ } + }
+ rc = __srefill_r (ptr, fp);
+
+ if (rc) + if (rc)
{ {
/* no more input: return partial result */ /* no more input: return partial result */
#ifdef __SCLE #ifdef __SCLE
diff --git a/newlib/libc/stdio/vfprintf.c b/newlib/libc/stdio/vfprintf.c diff --git a/newlib/libc/stdio/vfprintf.c b/newlib/libc/stdio/vfprintf.c
index c4bf2dbe3..d756df37d 100644 index 1aaf05aa4..b67182a79 100644
--- a/newlib/libc/stdio/vfprintf.c --- a/newlib/libc/stdio/vfprintf.c
+++ b/newlib/libc/stdio/vfprintf.c +++ b/newlib/libc/stdio/vfprintf.c
@@ -112,6 +112,8 @@ Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, @@ -108,6 +108,8 @@ Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,
<<lseek>>, <<read>>, <<sbrk>>, <<write>>. <<lseek>>, <<read>>, <<sbrk>>, <<write>>.
*/ */
@@ -8106,7 +8131,7 @@ index c4bf2dbe3..d756df37d 100644
#if defined(LIBC_SCCS) && !defined(lint) #if defined(LIBC_SCCS) && !defined(lint)
/*static char *sccsid = "from: @(#)vfprintf.c 5.50 (Berkeley) 12/16/92";*/ /*static char *sccsid = "from: @(#)vfprintf.c 5.50 (Berkeley) 12/16/92";*/
static char *rcsid = "$Id$"; static char *rcsid = "$Id$";
@@ -1438,7 +1440,7 @@ reswitch: switch (ch) { @@ -1434,7 +1436,7 @@ reswitch: switch (ch) {
string: string:
#endif #endif
sign = '\0'; sign = '\0';
@@ -8115,7 +8140,7 @@ index c4bf2dbe3..d756df37d 100644
/* Behavior is undefined if the user passed a /* Behavior is undefined if the user passed a
NULL string when precision is not 0. NULL string when precision is not 0.
However, if we are not optimizing for size, However, if we are not optimizing for size,
@@ -1448,7 +1450,7 @@ string: @@ -1444,7 +1446,7 @@ string:
size = ((unsigned) prec > 6U) ? 6 : prec; size = ((unsigned) prec > 6U) ? 6 : prec;
} }
else else
@@ -8125,7 +8150,7 @@ index c4bf2dbe3..d756df37d 100644
if (ch == 'S' || (flags & LONGINT)) { if (ch == 'S' || (flags & LONGINT)) {
mbstate_t ps; mbstate_t ps;
diff --git a/newlib/libc/stdio/vfscanf.c b/newlib/libc/stdio/vfscanf.c diff --git a/newlib/libc/stdio/vfscanf.c b/newlib/libc/stdio/vfscanf.c
index 9c38eebf4..fbc8d877d 100644 index 994cee7fc..5d1d0a1cd 100644
--- a/newlib/libc/stdio/vfscanf.c --- a/newlib/libc/stdio/vfscanf.c
+++ b/newlib/libc/stdio/vfscanf.c +++ b/newlib/libc/stdio/vfscanf.c
@@ -74,6 +74,8 @@ These are GNU extensions. @@ -74,6 +74,8 @@ These are GNU extensions.
@@ -8152,7 +8177,7 @@ index 980b31e3b..722be905e 100644
#ifdef INTEGER_ONLY #ifdef INTEGER_ONLY
diff --git a/newlib/libc/stdio/vfwscanf.c b/newlib/libc/stdio/vfwscanf.c diff --git a/newlib/libc/stdio/vfwscanf.c b/newlib/libc/stdio/vfwscanf.c
index ffb6cc85b..db33d4f29 100644 index f00d41a09..7e290ee8d 100644
--- a/newlib/libc/stdio/vfwscanf.c --- a/newlib/libc/stdio/vfwscanf.c
+++ b/newlib/libc/stdio/vfwscanf.c +++ b/newlib/libc/stdio/vfwscanf.c
@@ -74,6 +74,9 @@ PORTABILITY @@ -74,6 +74,9 @@ PORTABILITY
@@ -8166,37 +8191,18 @@ index ffb6cc85b..db33d4f29 100644
#include <reent.h> #include <reent.h>
#include <newlib.h> #include <newlib.h>
diff --git a/newlib/libc/stdlib/aligned_alloc.c b/newlib/libc/stdlib/aligned_alloc.c diff --git a/newlib/libc/stdlib/aligned_alloc.c b/newlib/libc/stdlib/aligned_alloc.c
index 88413ce86..24029a6f7 100644 index feb22c24b..3dae0c9a9 100644
--- a/newlib/libc/stdlib/aligned_alloc.c --- a/newlib/libc/stdlib/aligned_alloc.c
+++ b/newlib/libc/stdlib/aligned_alloc.c +++ b/newlib/libc/stdlib/aligned_alloc.c
@@ -1,5 +1,5 @@ @@ -28,6 +28,8 @@
/*-
- * Copyright (c) 2015 embedded brains GmbH
+ * Copyright (c) 2018 Dave Murphy
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -25,14 +25,15 @@
*/
#include <reent.h>
#include <stdlib.h> #include <stdlib.h>
+#include <malloc.h> +#include <malloc.h>
+#include <errno.h> +#include <errno.h>
void * void *
aligned_alloc(size_t alignment, size_t size) aligned_alloc (size_t align, size_t size)
{
- void *p;
- int error;
+ if ((alignment !=0) && !(alignment & (alignment - 1 )) && !(size & (alignment - 1)))
+ return memalign(alignment,size);
- error = posix_memalign(&p, alignment, size);
-
- return (error == 0 ? p : NULL);
+ errno = EINVAL;
+ return (void*)NULL;
}
diff --git a/newlib/libc/stdlib/mbtowc_r.c b/newlib/libc/stdlib/mbtowc_r.c diff --git a/newlib/libc/stdlib/mbtowc_r.c b/newlib/libc/stdlib/mbtowc_r.c
index 920a7ea3c..ba5ee7652 100644 index 920a7ea3c..ba5ee7652 100644
--- a/newlib/libc/stdlib/mbtowc_r.c --- a/newlib/libc/stdlib/mbtowc_r.c

View File

@@ -11,9 +11,8 @@ export DEVKITARM=$DEVKITPRO/devkitARM
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
cd $BUILDDIR cd $BUILDDIR
mkdir -p rules tar -xvf $SRCDIR/devkitarm-rules-$DKARM_RULES_VER.tar.gz
cd rules cd devkitarm-rules-$DKARM_RULES_VER
tar -xvf $SRCDIR/devkitarm-rules-$DKARM_RULES_VER.tar.xz
make install make install
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
@@ -21,8 +20,7 @@ make install
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
cd $BUILDDIR cd $BUILDDIR
mkdir -p crtls tar -xvf $SRCDIR/devkitarm-crtls-$DKARM_CRTLS_VER.tar.gz
cd crtls cd devkitarm-crtls-$DKARM_CRTLS_VER
tar -xvf $SRCDIR/devkitarm-crtls-$DKARM_CRTLS_VER.tar.xz
make install make install

View File

@@ -66,9 +66,10 @@ then
--with-system-zlib \ --with-system-zlib \
--disable-tm-clone-registry \ --disable-tm-clone-registry \
--disable-__cxa_atexit \ --disable-__cxa_atexit \
--with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitARM release 55" \ --with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitARM release 56" \
$CROSS_PARAMS \ $CROSS_PARAMS \
$CROSS_GCC_PARAMS \ $CROSS_GCC_PARAMS \
$EXTRA_GCC_PARAMS \
|| { echo "Error configuring gcc"; exit 1; } || { echo "Error configuring gcc"; exit 1; }
touch configured-gcc touch configured-gcc
fi fi

View File

@@ -11,7 +11,6 @@ export DEVKITPPC=$DEVKITPRO/devkitPPC
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
cd $BUILDDIR cd $BUILDDIR
mkdir -p rules tar -xvf $SRCDIR/devkitppc-rules-$DKPPC_RULES_VER.tar.gz
cd rules cd devkitppc-rules-$DKPPC_RULES_VER
tar -xvf $SRCDIR/devkitppc-rules-$DKPPC_RULES_VER.tar.xz
make install make install

View File

@@ -30,9 +30,9 @@ done
case "$VERSION" in case "$VERSION" in
"1" ) "1" )
GCC_VER=10.2.0 GCC_VER=11.1.0
BINUTILS_VER=2.34 BINUTILS_VER=2.36.1
NEWLIB_VER=3.3.0 NEWLIB_VER=4.1.0
basedir='dkarm-eabi' basedir='dkarm-eabi'
package=devkitARM package=devkitARM
target=arm-none-eabi target=arm-none-eabi
@@ -49,9 +49,9 @@ case "$VERSION" in
toolchain=DEVKITPPC toolchain=DEVKITPPC
;; ;;
"3" ) "3" )
GCC_VER=10.2.0 GCC_VER=11.1.0
BINUTILS_VER=2.32 BINUTILS_VER=2.32
NEWLIB_VER=3.3.0 NEWLIB_VER=4.1.0
basedir='dka64' basedir='dka64'
package=devkitA64 package=devkitA64
target=aarch64-none-elf target=aarch64-none-elf