Compare commits

...

39 Commits

Author SHA1 Message Date
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
Dave Murphy
6a74f83616 devkitPPC: use modern config.sub for mn10200 binutils 2020-07-25 14:58:45 +01:00
Dave Murphy
953cf2a761 devkitPPC: update gcc to 10.2.0, next release is r38 2020-07-25 13:10:46 +01:00
Dave Murphy
60efdbd109 devkitPPC: stop building gdb here 2020-07-25 11:13:00 +01:00
Dave Murphy
ef789eddb7 don't download crtls & rules archives if not building them 2020-07-25 03:45:56 +01:00
Dave Murphy
502f832a5b fixup rules archive downloading 2020-07-25 03:29:50 +01:00
Dave Murphy
848924d332 devkitARM: update rules to 1.2.0 2020-07-25 03:07:30 +01:00
Dave Murphy
1f5f5eedf5 devkitARM: update gcc to 10.2.0 2020-07-25 03:05:58 +01:00
Dave Murphy
5664d84c44 devkitARM: update rules to 1.1.0 2020-07-25 03:02:16 +01:00
Dave Murphy
6e8de1b1d2 devkitARM: next release is 55 2020-07-25 03:02:16 +01:00
Dave Murphy
b16276e9da devkitARM: separate gdb 2020-07-25 03:02:16 +01:00
Dave Murphy
7f142c7583 devkitARM: use binutils 2.34 2020-07-25 03:02:16 +01:00
Dave Murphy
1a1b35aa3b devkitARM: disable tm clone registry and cxa-atexit 2020-07-25 03:02:16 +01:00
Dave Murphy
70c8df8709 devkitA64 now release 16 2020-07-25 02:53:33 +01:00
Dave Murphy
bc52f6ac2b devkitA64: next release is r16 2020-07-24 23:41:39 +01:00
Dave Murphy
81719c49e3 devkitA64: disable cxa_atexit & tm clone registry 2020-07-24 23:41:39 +01:00
Dave Murphy
d4a84c9884 devkitA64: separate rules package 2020-07-24 23:41:39 +01:00
Dave Murphy
25f22b6c93 devkitA64: don't build gdb 2020-07-24 23:41:39 +01:00
Dave Murphy
a0fe0c5297 devkitA64: update to gcc 10.2.0 2020-07-24 23:41:39 +01:00
Dave Murphy
77ad8b785c add native tools to path when cross building 2020-07-24 23:40:16 +01:00
Dave Murphy
e4b1370595 remove redundant toolsprefix 2020-07-24 23:38:05 +01:00
Dave Murphy
dcfd0e271e add dummy cross build script for linux PKGBUILD 2020-07-24 23:34:26 +01:00
Dave Murphy
9bf0973c2a ensure newly built tools on front of path 2020-07-24 16:02:56 +01:00
Dave Murphy
0b31c7ab1c stop building gdb here 2020-07-24 15:55:13 +01:00
Dave Murphy
90e2936222 add cross build for aarch64 linux 2020-06-30 18:18:19 +01:00
18 changed files with 570 additions and 1067 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 54 # devkitARM release 56
# devkitPPC release 37 # devkitPPC release 38
# devkitA64 release 15 # devkitA64 release 17
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
if [ 0 -eq 1 ] ; then if [ 0 -eq 1 ] ; then
@@ -28,10 +28,12 @@ echo
DKARM_RULES_VER=1.0.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.1
OSXMIN=${OSXMIN:-10.9} OSXMIN=${OSXMIN:-10.9}
@@ -118,24 +120,22 @@ fi
echo use $MAKE as make echo use $MAKE as make
export MAKE export MAKE
CROSS_PARAMS="--build=`./config.guess`"
if [ ! -z $CROSSBUILD ]; then
export PATH=/opt/devkitpro/$package/bin:$PATH
prefix=$INSTALLDIR/$CROSSBUILD/$package
CROSS_PARAMS="$CROSS_PARAMS --host=$CROSSBUILD"
CROSS_GCC_PARAMS="--with-gmp=$CROSSPATH --with-mpfr=$CROSSPATH --with-mpc=$CROSSPATH --with-isl=$CROSSPATH --with-zstd=$CROSSPATH"
else
prefix=$INSTALLDIR/$package
fi
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# Add installed devkit to the path, adjusting path on minsys # Add installed devkit to the path, adjusting path on minsys
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
TOOLPATH=$(echo $INSTALLDIR | sed -e 's/^\([a-zA-Z]\):/\/\1/') TOOLPATH=$(echo $INSTALLDIR | sed -e 's/^\([a-zA-Z]\):/\/\1/')
export PATH=$PATH:$TOOLPATH/$package/bin export PATH=$TOOLPATH/$package/bin:$PATH
CROSS_PARAMS="--build=`./config.guess`"
if [ ! -z $CROSSBUILD ]; then
toolsprefix=$INSTALLDIR/$CROSSBUILD/tools
prefix=$INSTALLDIR/$CROSSBUILD/$package
toolsprefix=$INSTALLDIR/$CROSSBUILD/tools
CROSS_PARAMS="$CROSS_PARAMS --host=$CROSSBUILD"
CROSS_GCC_PARAMS="--with-gmp=$CROSSPATH --with-mpfr=$CROSSPATH --with-mpc=$CROSSPATH"
else
toolsprefix=$INSTALLDIR/tools
prefix=$INSTALLDIR/$package
fi
if [ "$BUILD_DKPRO_AUTOMATED" != "1" ] ; then if [ "$BUILD_DKPRO_AUTOMATED" != "1" ] ; then
@@ -181,19 +181,25 @@ fi
patchdir=$(pwd)/$basedir/patches patchdir=$(pwd)/$basedir/patches
scriptdir=$(pwd)/$basedir/scripts scriptdir=$(pwd)/$basedir/scripts
archives="binutils-${BINUTILS_VER}.tar.xz gcc-${GCC_VER}.tar.xz newlib-${NEWLIB_VER}.tar.gz gdb-${GDB_VER}.tar.xz" archives="binutils-${BINUTILS_VER}.tar.xz gcc-${GCC_VER}.tar.xz newlib-${NEWLIB_VER}.tar.gz"
if [ $VERSION -eq 1 ]; then
archives="devkitarm-rules-$DKARM_RULES_VER.tar.xz devkitarm-crtls-$DKARM_CRTLS_VER.tar.xz $archives"
fi
if [ $VERSION -eq 2 ]; then if [ $VERSION -eq 2 ]; then
archives="binutils-${MN_BINUTILS_VER}.tar.bz2 $archives"
archives="binutils-${MN_BINUTILS_VER}.tar.bz2 devkitppc-rules-$DKPPC_RULES_VER.tar.xz $archives"
fi fi
if [ "$BUILD_DKPRO_SKIP_CRTLS" != "1" ]; then
if [ $VERSION -eq 1 ]; then
archives="devkitarm-rules-$DKARM_RULES_VER.tar.gz devkitarm-crtls-$DKARM_CRTLS_VER.tar.gz $archives"
fi
if [ $VERSION -eq 2 ]; then
archives="devkitppc-rules-$DKPPC_RULES_VER.tar.gz $archives"
fi
if [ $VERSION -eq 3 ]; then
archives="devkita64-rules-$DKA64_RULES_VER.tar.gz $archives"
fi
fi
if [ ! -z "$BUILD_DKPRO_SRCDIR" ] ; then if [ ! -z "$BUILD_DKPRO_SRCDIR" ] ; then
SRCDIR="$BUILD_DKPRO_SRCDIR" SRCDIR="$BUILD_DKPRO_SRCDIR"
@@ -217,7 +223,6 @@ cd $BUILDDIR
extract_and_patch binutils $BINUTILS_VER xz extract_and_patch binutils $BINUTILS_VER xz
extract_and_patch gcc $GCC_VER xz extract_and_patch gcc $GCC_VER xz
extract_and_patch newlib $NEWLIB_VER gz extract_and_patch newlib $NEWLIB_VER gz
extract_and_patch gdb $GDB_VER xz
if [ $VERSION -eq 2 ]; then extract_and_patch binutils $MN_BINUTILS_VER bz2; fi if [ $VERSION -eq 2 ]; then extract_and_patch binutils $MN_BINUTILS_VER bz2; fi
@@ -233,11 +238,6 @@ fi
cd $BUILDSCRIPTDIR cd $BUILDSCRIPTDIR
if [ ! -z $CROSSBUILD ] && grep -q "mingw" <<<"$CROSSBUILD" ; then
cp -v $CROSSBINPATH/libwinpthread-1.dll $prefix/bin/
cp -v $CROSSBINPATH/libwinpthread-1.dll $prefix/libexec/gcc/$target/$GCC_VER/
fi
echo "stripping installed binaries" echo "stripping installed binaries"
. ./strip_bins.sh . ./strip_bins.sh

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 cf1a87e2efd..bd79664568e 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 cf1a87e2efd..bd79664568e 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 409ca8d9519..fa57bbf8cd5 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
@@ -15951,8 +15951,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 409ca8d9519..fa57bbf8cd5 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 24767c747ba..0b1bbb5d79e 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 24767c747ba..0b1bbb5d79e 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),
@@ -319,8 +364,21 @@ index 9f790db0daf..97f52d0b893 100644
INIT_STATIC_SPEC ("startfile", &startfile_spec), INIT_STATIC_SPEC ("startfile", &startfile_spec),
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
index 675930db043..bdfd6f6b0bb 100644
--- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c
@@ -325,7 +325,7 @@ register_tm_clones (void)
#ifdef OBJECT_FORMAT_ELF
-#if DEFAULT_USE_CXA_ATEXIT
+#if 1 /* DEFAULT_USE_CXA_ATEXIT */
/* Declare the __dso_handle variable. It should have a unique value
in every shared-object; in a main program its value is zero. The
object should in any case be protected. This means the instance
diff --git a/libgcc/gthr.h b/libgcc/gthr.h 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
@@ -333,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' \
@@ -345,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' \
@@ -356,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

@@ -0,0 +1,15 @@
#!/bin/sh
#---------------------------------------------------------------------------------
# set env variables
#---------------------------------------------------------------------------------
export DEVKITPRO=$TOOLPATH
#---------------------------------------------------------------------------------
# Install the rules files
#---------------------------------------------------------------------------------
cd $BUILDDIR
tar -xvf $SRCDIR/devkita64-rules-$DKA64_RULES_VER.tar.gz
cd devkita64-rules-$DKA64_RULES_VER
make install

View File

@@ -64,9 +64,12 @@ then
--prefix=$prefix \ --prefix=$prefix \
--enable-lto $plugin_ld\ --enable-lto $plugin_ld\
--with-system-zlib \ --with-system-zlib \
--with-bugurl="https://github.com/devkitPro/buildscripts/issues" --with-pkgversion="devkitA64 release 15" \ --disable-tm-clone-registry \
--disable-__cxa_atexit \
--with-bugurl="https://github.com/devkitPro/buildscripts/issues" --with-pkgversion="devkitA64 release 17" \
$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
@@ -148,43 +151,3 @@ then
fi fi
rm -fr $prefix/$target/sys-include rm -fr $prefix/$target/sys-include
cd $BUILDDIR
#---------------------------------------------------------------------------------
# build and install the debugger
#---------------------------------------------------------------------------------
mkdir -p $target/gdb
cd $target/gdb
PLATFORM=`uname -s`
if [ ! -f configured-gdb ]
then
CPPFLAGS="$cppflags" \
CFLAGS="$cflags" \
CXXFLAGS="$cflags" \
LDFLAGS="$ldflags" \
../../gdb-$GDB_VER/configure \
--disable-nls --prefix=$prefix --target=$target --disable-werror \
$CROSS_PARAMS \
|| { echo "Error configuring gdb"; exit 1; }
touch configured-gdb
fi
if [ ! -f built-gdb ]
then
$MAKE || { echo "Error building gdb"; exit 1; }
touch built-gdb
fi
if [ ! -f installed-gdb ]
then
$MAKE install || { echo "Error installing gdb"; exit 1; }
touch installed-gdb
fi
#---------------------------------------------------------------------------------
# copy base rulesets
#---------------------------------------------------------------------------------
cp -v $BUILDSCRIPTDIR/dka64/rules/* $prefix

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),
@@ -236,3 +272,56 @@ index dddddc7c444..c2502597953 100644
# the option is safe. # the option is safe.
-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
index 675930db043..bdfd6f6b0bb 100644
--- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c
@@ -325,7 +325,7 @@ register_tm_clones (void)
#ifdef OBJECT_FORMAT_ELF
-#if DEFAULT_USE_CXA_ATEXIT
+#if 1 /* DEFAULT_USE_CXA_ATEXIT */
/* Declare the __dso_handle variable. It should have a unique value
in every shared-object; in a main program its value is zero. The
object should in any case be protected. This means the instance
diff --git a/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,597 +0,0 @@
diff --git a/gdb/Makefile.in b/gdb/Makefile.in
index 9799a7a65d..ccd3f8a626 100644
--- a/gdb/Makefile.in
+++ b/gdb/Makefile.in
@@ -684,6 +684,7 @@ ALL_TARGET_OBS = \
arch/arm-linux.o \
arch/i386.o \
arch/ppc-linux-common.o \
+ arm-3ds-tdep.o \
arm-bsd-tdep.o \
arm-fbsd-tdep.o \
arm-linux-tdep.o \
@@ -2213,6 +2214,7 @@ ALLDEPFILES = \
amd64-tdep.c \
arc-tdep.c \
arm.c \
+ arm-3ds-tdep.c \
arm-bsd-tdep.c \
arm-fbsd-nat.c \
arm-fbsd-tdep.c \
diff --git a/gdb/arm-3ds-tdep.c b/gdb/arm-3ds-tdep.c
new file mode 100644
index 0000000000..c41336982b
--- /dev/null
+++ b/gdb/arm-3ds-tdep.c
@@ -0,0 +1,291 @@
+/* Target-dependent code for 3DS. */
+
+/* This uses code from GDB, which license is: */
+
+/*
+ Copyright (C) 2002-2017 Free Software Foundation, Inc.
+
+ This file is part of GDB.
+
+ This program 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 of the License, or
+ (at your option) any later version.
+
+ This program 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 this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include "defs.h"
+#include "gdbcore.h"
+#include "target.h"
+#include "osabi.h"
+#include "xml-syscall.h"
+
+#include "arch/arm.h"
+#include "arch/arm-get-next-pcs.h"
+#include "arm-tdep.h"
+
+static const gdb_byte arm_3ds_arm_le_breakpoint[] = {0xff, 0x00, 0x00, 0xef};
+static const gdb_byte arm_3ds_thumb_le_breakpoint[] = {0xff, 0xdf};
+
+static CORE_ADDR
+ arm_3ds_get_next_pcs_syscall_next_pc (struct arm_get_next_pcs *self);
+
+/* Operation function pointers for get_next_pcs. */
+static struct arm_get_next_pcs_ops arm_3ds_get_next_pcs_ops = {
+ arm_get_next_pcs_read_memory_unsigned_integer,
+ arm_3ds_get_next_pcs_syscall_next_pc,
+ arm_get_next_pcs_addr_bits_remove,
+ arm_get_next_pcs_is_thumb,
+ NULL,
+};
+
+/* single_step() is called just before we want to resume the inferior,
+ if we want to single-step it but there is no hardware or kernel
+ single-step support. We find the target of the coming instructions
+ and breakpoint them. */
+
+std::vector<CORE_ADDR>
+arm_3ds_software_single_step (struct regcache *regcache)
+{
+ struct gdbarch *gdbarch = regcache->arch ();
+ struct arm_get_next_pcs next_pcs_ctx;
+
+ arm_get_next_pcs_ctor (&next_pcs_ctx,
+ &arm_3ds_get_next_pcs_ops,
+ gdbarch_byte_order (gdbarch),
+ gdbarch_byte_order_for_code (gdbarch),
+ 0,
+ regcache);
+
+ std::vector<CORE_ADDR> next_pcs = arm_get_next_pcs (&next_pcs_ctx);
+
+ for (CORE_ADDR &pc_ref : next_pcs)
+ pc_ref = gdbarch_addr_bits_remove (gdbarch, pc_ref);
+
+ return next_pcs;
+}
+
+static CORE_ADDR
+arm_3ds_get_next_pcs_syscall_next_pc (struct arm_get_next_pcs *self)
+{
+ CORE_ADDR next_pc = 0;
+ CORE_ADDR pc = regcache_read_pc (self->regcache);
+ int is_thumb = arm_is_thumb (self->regcache);
+ ULONGEST svc_number = 0;
+
+ if (is_thumb)
+ {
+ next_pc = pc + 2;
+ }
+ else
+ {
+ next_pc = pc + 4;
+ }
+
+ /* Addresses for calling Thumb functions have the bit 0 set. */
+ if (is_thumb)
+ next_pc = MAKE_THUMB_ADDR (next_pc);
+
+ return next_pc;
+}
+
+static LONGEST
+arm_3ds_get_syscall_number (struct gdbarch *gdbarch,
+ thread_info *thread)
+{
+ struct regcache *regs = get_thread_regcache (thread);
+
+ ULONGEST pc;
+ ULONGEST cpsr;
+ ULONGEST t_bit = arm_psr_thumb_bit (gdbarch);
+ int is_thumb;
+ ULONGEST svc_number = -1;
+
+ regcache_cooked_read_unsigned (regs, ARM_PC_REGNUM, &pc);
+ regcache_cooked_read_unsigned (regs, ARM_PS_REGNUM, &cpsr);
+ is_thumb = (cpsr & t_bit) != 0;
+
+ if (is_thumb)
+ {
+ enum bfd_endian byte_order_for_code =
+ gdbarch_byte_order_for_code (gdbarch);
+
+ /* PC gets incremented before the syscall-stop, so read the
+ previous instruction. */
+ unsigned long this_instr =
+ read_memory_unsigned_integer (pc - 2, 2, byte_order_for_code);
+
+ unsigned long svc_operand = (0x00ff & this_instr);
+ svc_number = svc_operand;
+ }
+ else
+ {
+ enum bfd_endian byte_order_for_code =
+ gdbarch_byte_order_for_code (gdbarch);
+
+ /* PC gets incremented before the syscall-stop, so read the
+ previous instruction. */
+ unsigned long this_instr =
+ read_memory_unsigned_integer (pc - 4, 4, byte_order_for_code);
+
+ unsigned long svc_operand = (0x000000ff & this_instr);
+ svc_number = svc_operand;
+ }
+
+ if (svc_number == 0xfe)
+ {
+ regcache_cooked_read_unsigned (regs, 12, &svc_number);
+ }
+
+ return svc_number;
+}
+
+/* Implement the breakpoint_kind_from_pc gdbarch method. */
+
+static int
+arm_3ds_breakpoint_kind_from_pc (struct gdbarch *gdbarch, CORE_ADDR *pcptr)
+{
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+ enum bfd_endian byte_order_for_code = gdbarch_byte_order_for_code (gdbarch);
+
+ if (arm_pc_is_thumb (gdbarch, *pcptr))
+ {
+ *pcptr = UNMAKE_THUMB_ADDR (*pcptr);
+
+ /* If we have a separate 32-bit breakpoint instruction for Thumb-2,
+ check whether we are replacing a 32-bit instruction. */
+ if (tdep->thumb2_breakpoint != NULL)
+ {
+ gdb_byte buf[2];
+
+ if (target_read_memory (*pcptr, buf, 2) == 0)
+ {
+ unsigned short inst1;
+
+ inst1 = extract_unsigned_integer (buf, 2, byte_order_for_code);
+ if (thumb_insn_size (inst1) == 4)
+ return ARM_BP_KIND_THUMB2;
+ }
+ }
+
+ return ARM_BP_KIND_THUMB;
+ }
+ else
+ return ARM_BP_KIND_ARM;
+
+}
+
+/* Implement the sw_breakpoint_from_kind gdbarch method. */
+
+static const gdb_byte *
+arm_3ds_sw_breakpoint_from_kind (struct gdbarch *gdbarch, int kind, int *size)
+{
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+ switch (kind)
+ {
+ case ARM_BP_KIND_ARM:
+ *size = tdep->arm_breakpoint_size;
+ return tdep->arm_breakpoint;
+ case ARM_BP_KIND_THUMB:
+ *size = tdep->thumb_breakpoint_size;
+ return tdep->thumb_breakpoint;
+ case ARM_BP_KIND_THUMB2:
+ *size = tdep->thumb2_breakpoint_size;
+ return tdep->thumb2_breakpoint;
+ default:
+ gdb_assert_not_reached ("unexpected arm breakpoint kind");
+ }
+}
+
+/* Implement the breakpoint_kind_from_current_state gdbarch method. */
+
+static int
+arm_3ds_breakpoint_kind_from_current_state (struct gdbarch *gdbarch,
+ struct regcache *regcache,
+ CORE_ADDR *pcptr)
+{
+ gdb_byte buf[4];
+
+ /* Check the memory pointed by PC is readable. */
+ if (target_read_memory (regcache_read_pc (regcache), buf, 4) == 0)
+ {
+ struct arm_get_next_pcs next_pcs_ctx;
+
+ arm_get_next_pcs_ctor (&next_pcs_ctx,
+ &arm_3ds_get_next_pcs_ops,
+ gdbarch_byte_order (gdbarch),
+ gdbarch_byte_order_for_code (gdbarch),
+ 0,
+ regcache);
+
+ std::vector<CORE_ADDR> next_pcs = arm_get_next_pcs (&next_pcs_ctx);
+
+ /* If MEMADDR is the next instruction of current pc, do the
+ software single step computation, and get the thumb mode by
+ the destination address. */
+ for (CORE_ADDR pc : next_pcs)
+ {
+ if (UNMAKE_THUMB_ADDR (pc) == *pcptr)
+ {
+ if (IS_THUMB_ADDR (pc))
+ {
+ *pcptr = MAKE_THUMB_ADDR (*pcptr);
+ return arm_3ds_breakpoint_kind_from_pc (gdbarch, pcptr);
+ }
+ else
+ return ARM_BP_KIND_ARM;
+ }
+ }
+ }
+
+ return arm_3ds_breakpoint_kind_from_pc (gdbarch, pcptr);
+}
+
+static void
+arm_3ds_init_abi (struct gdbarch_info info,
+ struct gdbarch *gdbarch)
+{
+ struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
+
+ switch (info.byte_order)
+ {
+ case BFD_ENDIAN_LITTLE:
+ tdep->arm_breakpoint = arm_3ds_arm_le_breakpoint;
+ tdep->thumb_breakpoint = arm_3ds_thumb_le_breakpoint;
+ tdep->arm_breakpoint_size = sizeof (arm_3ds_arm_le_breakpoint);
+ tdep->thumb_breakpoint_size = sizeof (arm_3ds_thumb_le_breakpoint);
+ break;
+
+ default:
+ internal_error (__FILE__, __LINE__,
+ _("arm_gdbarch_init: bad byte order"));
+ }
+ tdep->fp_model = ARM_FLOAT_VFP;
+
+ /* Single stepping. */
+ set_gdbarch_software_single_step (gdbarch, arm_3ds_software_single_step);
+
+ /* Breakpoint manipulation. */
+ set_gdbarch_breakpoint_kind_from_pc (gdbarch, arm_3ds_breakpoint_kind_from_pc);
+ set_gdbarch_sw_breakpoint_from_kind (gdbarch, arm_3ds_sw_breakpoint_from_kind);
+ set_gdbarch_breakpoint_kind_from_current_state (gdbarch,
+ arm_3ds_breakpoint_kind_from_current_state);
+
+ /* `catch syscall' */
+ set_xml_syscall_file_name (gdbarch, "syscalls/arm-3ds.xml");
+ set_gdbarch_get_syscall_number (gdbarch, arm_3ds_get_syscall_number);
+}
+
+void
+_initialize_arm_3ds_tdep (void)
+{
+ gdbarch_register_osabi (bfd_arch_arm, 0, GDB_OSABI_3DS,
+ arm_3ds_init_abi);
+}
diff --git a/gdb/configure.tgt b/gdb/configure.tgt
index f197160896..e2835ddef5 100644
--- a/gdb/configure.tgt
+++ b/gdb/configure.tgt
@@ -61,7 +61,7 @@ arc*-*-*)
;;
arm*-*-*)
- cpu_obs="arch/arm.o arch/arm-get-next-pcs.o arm-tdep.o";;
+ cpu_obs="arch/arm.o arch/arm-get-next-pcs.o arm-tdep.o arm-3ds-tdep.o";;
hppa*-*-*)
# Target: HP PA-RISC
diff --git a/gdb/data-directory/Makefile.in b/gdb/data-directory/Makefile.in
index 753e0b69a3..645eb043b9 100644
--- a/gdb/data-directory/Makefile.in
+++ b/gdb/data-directory/Makefile.in
@@ -63,7 +63,7 @@ GEN_SYSCALLS_FILES = \
sparc-linux.xml \
sparc64-linux.xml
-SYSCALLS_FILES = gdb-syscalls.dtd freebsd.xml $(GEN_SYSCALLS_FILES)
+SYSCALLS_FILES = gdb-syscalls.dtd freebsd.xml arm-3ds.xml $(GEN_SYSCALLS_FILES)
PYTHON_DIR = python
PYTHON_INSTALL_DIR = $(DESTDIR)$(GDB_DATADIR)/$(PYTHON_DIR)
diff --git a/gdb/defs.h b/gdb/defs.h
index fc4217005a..a179a6d820 100644
--- a/gdb/defs.h
+++ b/gdb/defs.h
@@ -495,6 +495,7 @@ enum gdb_osabi
GDB_OSABI_LYNXOS178,
GDB_OSABI_NEWLIB,
GDB_OSABI_SDE,
+ GDB_OSABI_3DS,
GDB_OSABI_INVALID /* keep this last */
};
diff --git a/gdb/dtrace-probe.c b/gdb/dtrace-probe.c
index fa4e06e794..b6afc4cc7c 100644
--- a/gdb/dtrace-probe.c
+++ b/gdb/dtrace-probe.c
@@ -100,7 +100,7 @@ public:
/* DTrace static_probe_ops. */
-const dtrace_static_probe_ops dtrace_static_probe_ops;
+const dtrace_static_probe_ops dtrace_static_probe_ops = {};
/* The following structure represents a dtrace probe. */
diff --git a/gdb/osabi.c b/gdb/osabi.c
index 7d0540b181..49d3f78331 100644
--- a/gdb/osabi.c
+++ b/gdb/osabi.c
@@ -80,6 +80,7 @@ static const struct osabi_names gdb_osabi_names[] =
{ "LynxOS178", NULL },
{ "Newlib", NULL },
{ "SDE", NULL },
+ { "3DS", NULL },
{ "<invalid>", NULL }
};
diff --git a/gdb/probe.c b/gdb/probe.c
index 1f3da213ef..4acbeb8704 100644
--- a/gdb/probe.c
+++ b/gdb/probe.c
@@ -60,7 +60,7 @@ public:
/* Static operations associated with a generic probe. */
-const any_static_probe_ops any_static_probe_ops;
+const any_static_probe_ops any_static_probe_ops = {};
/* A helper for parse_probes that decodes a probe specification in
SEARCH_PSPACE. It appends matching SALs to RESULT. */
diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
index 09a3f6cc5c..9f90a6b436 100644
--- a/gdb/record-btrace.c
+++ b/gdb/record-btrace.c
@@ -144,7 +144,7 @@ static record_btrace_target record_btrace_ops;
/* Token associated with a new-thread observer enabling branch tracing
for the new thread. */
-static const gdb::observers::token record_btrace_thread_observer_token;
+static const gdb::observers::token record_btrace_thread_observer_token = {};
/* Memory access types used in set/show record btrace replay-memory-access. */
static const char replay_memory_access_read_only[] = "read-only";
diff --git a/gdb/stap-probe.c b/gdb/stap-probe.c
index ed7e1a0d3f..42fad3835f 100644
--- a/gdb/stap-probe.c
+++ b/gdb/stap-probe.c
@@ -119,7 +119,7 @@ public:
/* SystemTap static_probe_ops. */
-const stap_static_probe_ops stap_static_probe_ops;
+const stap_static_probe_ops stap_static_probe_ops = {};
class stap_probe : public probe
{
diff --git a/gdb/syscalls/arm-3ds.xml b/gdb/syscalls/arm-3ds.xml
new file mode 100644
index 0000000000..48780b7bd5
--- /dev/null
+++ b/gdb/syscalls/arm-3ds.xml
@@ -0,0 +1,159 @@
+<?xml version="1.0"?>
+<!DOCTYPE syscalls_info SYSTEM "gdb-syscalls.dtd">
+<!-- This file is located inside GDB and is based on files which license are: -->
+<!-- Copyright (C) 2009-2017 Free Software Foundation, Inc.
+
+ Copying and distribution of this file, with or without modification,
+ are permitted in any medium without royalty provided the copyright
+ notice and this notice are preserved. This file is offered as-is,
+ without any warranty. -->
+<syscalls_info>
+ <syscall name="ControlMemory" number="1" groups="memory"/>
+ <syscall name="QueryMemory" number="2" groups="memory"/>
+
+ <syscall name="ExitProcess" number="3" groups="process"/>
+ <syscall name="GetProcessAffinityMask" number="4" groups="process"/>
+ <syscall name="SetProcessAffinityMask" number="5" groups="process"/>
+ <syscall name="GetProcessIdealProcessor" number="6" groups="process"/>
+ <syscall name="SetProcessIdealProcessor" number="7" groups="process"/>
+
+ <syscall name="CreateThread" number="8" groups="thread"/>
+ <syscall name="ExitThread" number="9" groups="thread"/>
+ <syscall name="SleepThread" number="10" groups="thread"/>
+ <syscall name="GetThreadPriority" number="11" groups="thread"/>
+ <syscall name="SetThreadPriority" number="12" groups="thread"/>
+ <syscall name="GetThreadAffinityMask" number="13" groups="thread"/>
+ <syscall name="SetThreadAffinityMask" number="14" groups="thread"/> <!-- removed -->
+ <syscall name="GetThreadIdealProcessor" number="15" groups="thread"/>
+ <syscall name="SetThreadIdealProcessor" number="16" groups="thread"/> <!-- removed -->
+ <syscall name="GetCurrentProcessorNumber" number="17" groups="thread"/>
+ <syscall name="Run" number="18" groups="thread"/>
+
+ <syscall name="CreateMutex" number="19" groups="synchronization"/>
+ <syscall name="ReleaseMutex" number="20" groups="synchronization"/>
+ <syscall name="CreateSemaphore" number="21" groups="synchronization"/>
+ <syscall name="ReleaseSemaphore" number="22" groups="synchronization"/>
+ <syscall name="CreateEvent" number="23" groups="synchronization"/>
+ <syscall name="SignalEvent" number="24" groups="synchronization"/>
+ <syscall name="ClearEvent" number="25" groups="synchronization"/>
+ <syscall name="CreateTimer" number="26" groups="synchronization"/>
+ <syscall name="SetTimer" number="27" groups="synchronization"/>
+ <syscall name="CancelTimer" number="28" groups="synchronization"/>
+ <syscall name="ClearTimer" number="29" groups="synchronization"/>
+
+ <syscall name="CreateMemoryBlock" number="30" groups="memory,ipc"/>
+ <syscall name="MapMemoryBlock" number="31" groups="memory,ipc"/>
+ <syscall name="UnmapMemoryBlock" number="32" groups="memory,ipc"/>
+
+ <syscall name="CreateAddressArbiter" number="33" groups="memory,synchronization"/>
+ <syscall name="ArbitrateAddress" number="34" groups="memory,synchronization"/>
+
+ <syscall name="CloseHandle" number="35" groups="synchronization,ipc,memory,thread,process,debug"/>
+ <syscall name="WaitSynchronization" number="36" groups="synchronization,ipc,thread,process,debug"/>
+ <syscall name="WaitSynchronizationN" number="37" groups="synchronization,ipc,thread,process,debug"/>
+ <syscall name="SignalAndWait" number="38" groups="synchronization"/> <!-- removed -->
+ <syscall name="DuplicateHandle" number="39" groups="synchronization,ipc,memory,thread,process,debug"/>
+
+ <syscall name="GetSystemTick" number="40" groups="information"/>
+ <syscall name="GetHandleInfo" number="41" groups="information,synchronization,ipc,memory,thread,process,debug"/>
+ <syscall name="GetSystemInfo" number="42" groups="information"/>
+ <syscall name="GetProcessInfo" number="43" groups="information,process"/>
+ <syscall name="GetThreadInfo" number="44" groups="information,thread"/>
+
+ <syscall name="ConnectToPort" number="45" groups="ipc"/>
+ <syscall name="GetCFWInfo" number="46" groups="custom,information"/> <!-- deprecated -->
+ <syscall name="SendSyncRequest2" number="47" groups="ipc"/> <!-- removed -->
+ <syscall name="SendSyncRequest3" number="48" groups="ipc"/> <!-- removed -->
+ <syscall name="SendSyncRequest4" number="49" groups="ipc"/> <!-- removed -->
+ <syscall name="SendSyncRequest" number="50" groups="ipc"/> <!-- removed -->
+
+ <syscall name="OpenProcess" number="51" groups="process"/>
+ <syscall name="OpenThread" number="52" groups="thread"/>
+
+ <syscall name="GetProcessId" number="53" groups="process"/>
+ <syscall name="GetProcessIdOfThread" number="54" groups="process,thread"/>
+ <syscall name="GetThreadId" number="55" groups="thread"/>
+
+ <syscall name="GetResourceLimit" number="56" groups="process"/>
+ <syscall name="GetResourceLimitLimitValues" number="57" groups="process"/>
+ <syscall name="GetResourceLimitCurrentValues" number="58" groups="process"/>
+
+ <syscall name="GetThreadContext" number="59" groups="debug,thread"/> <!-- removed -->
+ <syscall name="Break" number="60" groups="debug"/>
+ <syscall name="OutputDebugString" number="61" groups="debug"/>
+ <syscall name="ControlPerformanceCounter" number="62" groups="debug"/>
+
+ <syscall name="CreatePort" number="71" groups="ipc"/>
+ <syscall name="CreateSessionToPort" number="72" groups="ipc"/>
+ <syscall name="CreateSession" number="73" groups="ipc"/>
+ <syscall name="AcceptSession" number="74" groups="ipc"/>
+ <syscall name="ReplyAndReceive1" number="75" groups="ipc"/>
+ <syscall name="ReplyAndReceive2" number="76" groups="ipc"/>
+ <syscall name="ReplyAndReceive3" number="77" groups="ipc"/>
+ <syscall name="ReplyAndReceive4" number="78" groups="ipc"/>
+ <syscall name="ReplyAndReceive" number="79" groups="ipc"/>
+
+ <syscall name="BindInterrupt" number="80" groups="io,synchronization"/>
+ <syscall name="UnbindInterrupt" number="81" groups="io,synchronization"/>
+ <syscall name="InvalidateProcessDataCache" number="82" groups="io,memory,process"/>
+ <syscall name="StoreProcessDataCache" number="83" groups="io,memory,process"/>
+ <syscall name="FlushProcessDataCache" number="84" groups="io,memory,process"/>
+
+ <syscall name="StartInterprocessDma" number="85" groups="io,memory,ipc"/>
+ <syscall name="StopDma" number="86" groups="io,memory,ipc"/>
+ <syscall name="GetDmaState" number="87" groups="io,memory,ipc"/>
+ <syscall name="RestartDma" number="88" groups="io,memory,ipc"/>
+
+ <syscall name="SetGpuProt" number="89" groups="io"/>
+ <syscall name="SetWifiEnabled" number="90" groups="io"/>
+
+ <syscall name="DebugActiveProcess" number="96" groups="debug,process"/>
+ <syscall name="BreakDebugProcess" number="97" groups="debug,process"/>
+ <syscall name="TerminateDebugProcess" number="98" groups="debug,process"/>
+ <syscall name="GetProcessDebugEvent" number="99" groups="debug"/>
+ <syscall name="ContinueDebugEvent" number="100" groups="debug"/>
+ <syscall name="GetProcessList" number="101" groups="information,debug,process"/>
+ <syscall name="GetThreadList" number="102" groups="information,debug,thread"/>
+ <syscall name="GetDebugThreadContext" number="103" groups="debug,thread"/>
+ <syscall name="SetDebugThreadContext" number="104" groups="debug,thread"/>
+ <syscall name="QueryDebugProcessMemory" number="105" groups="debug,process,memory"/>
+ <syscall name="ReadProcessMemory" number="106" groups="debug,process,memory"/>
+ <syscall name="WriteProcessMemory" number="107" groups="debug,process,memory"/>
+ <syscall name="SetHardwareBreakPoint" number="108" group="debug"/>
+ <syscall name="GetDebugThreadParam" number="109" group="debug,thread"/>
+
+ <syscall name="ControlProcessMemory" number="112" group="process,memory"/>
+ <syscall name="MapProcessMemory" number="113" group="process,memory"/>
+ <syscall name="UnmapProcessMemory" number="114" group="process,memory"/>
+
+ <syscall name="CreateCodeSet" number="115" group="process,memory"/>
+ <syscall name="RandomStub" number="116" group="process,memory"/> <!-- removed -->
+ <syscall name="CreateProcess" number="117" group="process"/>
+ <syscall name="TerminateProcess" number="118" group="process"/>
+ <syscall name="SetProcessResourceLimits" number="119" group="process"/>
+ <syscall name="CreateResourceLimit" number="120" group="process"/>
+ <syscall name="SetResourceLimitValues" number="121" group="process"/>
+ <syscall name="AddCodeSegment" number="122" group="process"/> <!-- removed -->
+
+ <syscall name="Backdoor" number="123" group="kernel"/>
+ <syscall name="KernelSetState" number="124" group="kernel"/>
+
+ <syscall name="QueryProcessMemory" number="125" group="process,memory"/>
+
+ <syscall name="CustomBackdoor" number="128" group="custom,kernel"/>
+
+ <syscall name="ConvertVAToPA" number="144" group="custom,io,memory"/>
+ <syscall name="FlushDataCacheRange" number="145" group="custom,io,memory"/>
+ <syscall name="FlushEntireDataCache" number="146" group="custom,io,memory"/>
+ <syscall name="InvalidateInstructionCacheRange" number="147" group="custom,io,memory"/>
+ <syscall name="InvalidateEntireInstructionCache" number="148" group="custom,io,memory"/>
+
+ <syscall name="MapProcessMemoryEx" number="160" group="custom,process,memory"/>
+ <syscall name="UnmapProcessMemoryEx" number="161" group="custom,process,memory"/>
+ <syscall name="ControlMemoryEx" number="162" group="custom,memory"/>
+
+ <syscall name="ControlService" number="176" group="custom,ipc"/>
+ <syscall name="CopyHandle" number="177" groups="custom,synchronization,ipc,thread,process,debug"/>
+ <syscall name="TranslateHandle" number="178" groups="custom,synchronization,ipc,thread,process,debug"/>
+
+</syscalls_info>
diff --git a/gdb/tui/tui-hooks.c b/gdb/tui/tui-hooks.c
index efa02e2f08..1c341dcf47 100644
--- a/gdb/tui/tui-hooks.c
+++ b/gdb/tui/tui-hooks.c
@@ -205,7 +205,7 @@ tui_normal_stop (struct bpstats *bs, int print_frame)
/* Token associated with observers registered while TUI hooks are
installed. */
-static const gdb::observers::token tui_observers_token;
+static const gdb::observers::token tui_observers_token = {};
/* Attach or detach a single observer, according to ATTACH. */

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

@@ -64,9 +64,12 @@ then
--prefix=$prefix \ --prefix=$prefix \
--enable-lto\ --enable-lto\
--with-system-zlib \ --with-system-zlib \
--with-bugurl="http://wiki.devkitpro.org/index.php/Bug_Reports" --with-pkgversion="devkitARM release 54" \ --disable-tm-clone-registry \
--disable-__cxa_atexit \
--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
@@ -150,35 +153,3 @@ fi
rm -fr $prefix/$target/sys-include rm -fr $prefix/$target/sys-include
cd $BUILDDIR cd $BUILDDIR
#---------------------------------------------------------------------------------
# build and install the debugger
#---------------------------------------------------------------------------------
mkdir -p $target/gdb
cd $target/gdb
PLATFORM=`uname -s`
if [ ! -f configured-gdb ]
then
CPPFLAGS="$cppflags $CPPFLAGS" \
LDFLAGS="$ldflags" \
../../gdb-$GDB_VER/configure \
--disable-nls --prefix=$prefix --target=$target --disable-werror \
$CROSS_PARAMS \
|| { echo "Error configuring gdb"; exit 1; }
touch configured-gdb
fi
if [ ! -f built-gdb ]
then
$MAKE || { echo "Error building gdb"; exit 1; }
touch built-gdb
fi
if [ ! -f installed-gdb ]
then
$MAKE install || { echo "Error installing gdb"; exit 1; }
touch installed-gdb
fi

View File

@@ -66,7 +66,7 @@ index 2e086f16de9..1c27c6467bc 100644
#define SIG_ATOMIC_TYPE "int" #define SIG_ATOMIC_TYPE "int"
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h
index 1adc371d70f..a7e1220981c 100644 index 132ca20fd7d..119ee5bbc8c 100644
--- a/gcc/config/rs6000/rs6000.h --- a/gcc/config/rs6000/rs6000.h
+++ b/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h
@@ -196,6 +196,7 @@ ASM_OPT_ANY @@ -196,6 +196,7 @@ ASM_OPT_ANY
@@ -276,7 +276,7 @@ index b49ba261f3c..4eda763dfca 100644
Target RejectNegative Target RejectNegative
Link with libyk.a, libc.a and crt0.o. Link with libyk.a, libc.a and crt0.o.
diff --git a/gcc/configure b/gcc/configure diff --git a/gcc/configure b/gcc/configure
index cd3d9516fce..fcb4b206b60 100755 index eb6061c1631..4c6e993ca3a 100755
--- a/gcc/configure --- a/gcc/configure
+++ b/gcc/configure +++ b/gcc/configure
@@ -12208,7 +12208,7 @@ case ${enable_threads} in @@ -12208,7 +12208,7 @@ case ${enable_threads} in
@@ -289,7 +289,7 @@ index cd3d9516fce..fcb4b206b60 100755
target_thread_file=${enable_threads} target_thread_file=${enable_threads}
;; ;;
diff --git a/gcc/configure.ac b/gcc/configure.ac diff --git a/gcc/configure.ac b/gcc/configure.ac
index 0de3b4bf97b..739aa4ae3da 100644 index 715fcba0482..779743b69ee 100644
--- a/gcc/configure.ac --- a/gcc/configure.ac
+++ b/gcc/configure.ac +++ b/gcc/configure.ac
@@ -1800,7 +1800,7 @@ case ${enable_threads} in @@ -1800,7 +1800,7 @@ case ${enable_threads} in
@@ -877,6 +877,19 @@ index 26bf75789e0..1f663d2cfb0 100755
gcn) thread_header=config/gcn/gthr-gcn.h ;; gcn) thread_header=config/gcn/gthr-gcn.h ;;
lynx) thread_header=config/gthr-lynx.h ;; lynx) thread_header=config/gthr-lynx.h ;;
mipssde) thread_header=config/mips/gthr-mipssde.h ;; mipssde) thread_header=config/mips/gthr-mipssde.h ;;
diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
index 3f769a1c660..e005d8304b7 100644
--- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c
@@ -325,7 +325,7 @@ register_tm_clones (void)
#ifdef OBJECT_FORMAT_ELF
-#if DEFAULT_USE_CXA_ATEXIT
+#if 1 /* DEFAULT_USE_CXA_ATEXIT */
/* Declare the __dso_handle variable. It should have a unique value
in every shared-object; in a main program its value is zero. The
object should in any case be protected. This means the instance
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
index 9f9c5a2419a..c9bb6c548be 100755 index 9f9c5a2419a..c9bb6c548be 100755
--- a/libstdc++-v3/configure --- a/libstdc++-v3/configure

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

@@ -40,6 +40,9 @@ cd $BUILDDIR
# build and install mn10200 binutils # build and install mn10200 binutils
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# Use modern config.sub for aarch64 host
cp binutils-$BINUTILS_VER/config.sub binutils-$MN_BINUTILS_VER/config.sub
mkdir -p mn10200/binutils mkdir -p mn10200/binutils
cd mn10200/binutils cd mn10200/binutils
@@ -97,7 +100,7 @@ then
--with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \ --with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \
--prefix=$prefix\ --prefix=$prefix\
--with-system-zlib\ --with-system-zlib\
--with-bugurl="https://github.com/devkitpro/buildscripts/issues" --with-pkgversion="devkitPPC release 37" \ --with-bugurl="https://github.com/devkitpro/buildscripts/issues" --with-pkgversion="devkitPPC release 38" \
$CROSS_PARAMS \ $CROSS_PARAMS \
$CROSS_GCC_PARAMS \ $CROSS_GCC_PARAMS \
CFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \ CFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \
@@ -187,31 +190,3 @@ echo "installing linkscripts ..."
cp $BUILDSCRIPTDIR/dkppc/crtls/*.ld $prefix/$target/lib/ cp $BUILDSCRIPTDIR/dkppc/crtls/*.ld $prefix/$target/lib/
cd $BUILDDIR cd $BUILDDIR
#---------------------------------------------------------------------------------
# build and install the debugger
#---------------------------------------------------------------------------------
mkdir -p $target/gdb
cd $target/gdb
if [ ! -f configured-gdb ]
then
CFLAGS="$cflags" LDFLAGS="$ldflags" ../../gdb-$GDB_VER/configure \
--disable-nls --prefix=$prefix --target=$target --disable-werror \
$CROSS_PARAMS \
$CROSS_GCC_PARAMS || { echo "Error configuring gdb"; exit 1; }
touch configured-gdb
fi
if [ ! -f built-gdb ]
then
$MAKE || { echo "Error building gdb"; exit 1; }
touch built-gdb
fi
if [ ! -f installed-gdb ]
then
$MAKE install || { echo "Error installing gdb"; exit 1; }
touch installed-gdb
fi

View File

@@ -30,31 +30,28 @@ done
case "$VERSION" in case "$VERSION" in
"1" ) "1" )
GCC_VER=10.1.0 GCC_VER=11.1.0
BINUTILS_VER=2.32 BINUTILS_VER=2.36.1
NEWLIB_VER=3.3.0 NEWLIB_VER=4.1.0
GDB_VER=8.2.1
basedir='dkarm-eabi' basedir='dkarm-eabi'
package=devkitARM package=devkitARM
target=arm-none-eabi target=arm-none-eabi
toolchain=DEVKITARM toolchain=DEVKITARM
;; ;;
"2" ) "2" )
GCC_VER=10.1.0 GCC_VER=10.2.0
BINUTILS_VER=2.34 BINUTILS_VER=2.34
MN_BINUTILS_VER=2.17 MN_BINUTILS_VER=2.17
NEWLIB_VER=3.3.0 NEWLIB_VER=3.3.0
GDB_VER=8.2.1
basedir='dkppc' basedir='dkppc'
package=devkitPPC package=devkitPPC
target=powerpc-eabi target=powerpc-eabi
toolchain=DEVKITPPC toolchain=DEVKITPPC
;; ;;
"3" ) "3" )
GCC_VER=10.1.0 GCC_VER=11.1.0
BINUTILS_VER=2.32 BINUTILS_VER=2.32
NEWLIB_VER=3.3.0 NEWLIB_VER=4.1.0
GDB_VER=9.1
basedir='dka64' basedir='dka64'
package=devkitA64 package=devkitA64
target=aarch64-none-elf target=aarch64-none-elf