Compare commits

...

55 Commits

Author SHA1 Message Date
Dave Murphy
eac2e40528 devkitPPC: remove old patch file 2022-05-22 21:21:35 +01:00
Dave Murphy
e377ef05f6 devkitPPC: remove obsolete flag setting 2022-05-06 21:15:06 +01:00
Dave Murphy
67b8703a8c devkitPPC: update gcc to 12.1.0 2022-05-06 19:46:27 +01:00
Dave Murphy
df8b66a808 devkitA64: update gcc to 12.1.0 2022-05-06 17:46:22 +01:00
Dave Murphy
219b5dcebd devkitARM: update gcc to 12.1.0 2022-05-06 13:27:04 +01:00
Dave Murphy
a370be5c4a devkitA64: update gcc to 12.1.0-RC-20220429 2022-05-02 22:19:23 +01:00
Dave Murphy
a84866105a devkitARM: update gcc to 12.1.0-RC-20220429 2022-04-30 18:00:21 +01:00
Dave Murphy
c0146427e1 devkitARM: update binutils to 2.38 2022-04-30 17:57:26 +01:00
Dave Murphy
a0ee149c40 devkitA64: remove obsolete flag setting 2022-01-27 20:55:27 +00:00
Dave Murphy
da06cfb478 devkitPPC: add arm64 macOS patch 2022-01-25 19:49:11 +00:00
Dave Murphy
b700c35789 devkitARM: update newlib to 4.2.0.20211231 2022-01-03 19:21:28 +00:00
Dave Murphy
73b1cb9d7a devkitPPC: update newlib to 4.2.0.20211231 2022-01-03 19:21:20 +00:00
Dave Murphy
3ca5189cdd devkitA64: update newlib to 4.2.0.20211231 2022-01-03 12:24:00 +00:00
Dave Murphy
4dc7a3333c devkitPPC: next release is 40 2022-01-03 12:21:48 +00:00
Dave Murphy
98aac78959 devkitPPC: remove can delete directories 2022-01-02 18:34:36 +00:00
Dave Murphy
092f657e81 devkitPPC: update binutils to 2.37 2022-01-02 18:34:36 +00:00
Dave Murphy
7d3bbea16e devkitPPC: update gcc to 11.2.0 2022-01-02 18:34:36 +00:00
Dave Murphy
066afb3cca devkitARM: remove can delete directories 2022-01-02 18:34:36 +00:00
Dave Murphy
dd13eb9497 devkitARM: rework syscall interface 2022-01-02 18:34:36 +00:00
Dave Murphy
af726256f1 devkitARM: patch binutils for building with mingw 2022-01-02 18:34:36 +00:00
Dave Murphy
5e87380f11 devkitARM: update binutils to 2.37 2022-01-02 18:34:36 +00:00
Dave Murphy
cd9e7f1fee devkitARM: update gcc to 11.2.0 2022-01-02 18:34:36 +00:00
Dave Murphy
f1bf935706 devkitA64: remove can delete directories 2022-01-02 18:34:36 +00:00
Dave Murphy
9ae621ad62 devkitA64: upgrade gcc to 11.2 2022-01-02 18:34:26 +00:00
Dave Murphy
251c7cbbf1 devkitPPC: use supplied zlib 2021-05-25 09:27:00 +01:00
Dave Murphy
2b7e5215fc fix shebang 2021-05-25 09:16:19 +01:00
Dave Murphy
540dbb84c6 devkitPPC: remove stale patches 2021-05-25 09:16:19 +01:00
Dave Murphy
90fb45065c devkitPPC: disable unwanted features 2021-05-25 09:16:19 +01:00
Dave Murphy
771225f45a devkitPPC: move mn10200 binutils to 2.24 2021-05-25 09:16:19 +01:00
Dave Murphy
fdb7c8a6d2 devkitPPC: update gcc to 11.1.0 2021-05-25 09:16:19 +01:00
Dave Murphy
5649ec2a1f devkitPPC: update newlib patch 2021-05-25 09:16:19 +01:00
Dave Murphy
6e92980fd1 devkitPPC: allow external gcc config params 2021-05-25 09:16:19 +01:00
Dave Murphy
3673dced6d devkitPPC: reduce printf bloat 2021-05-25 09:16:19 +01:00
Dave Murphy
6999db3f10 devkitPPC: next release is 39 2021-05-25 09:16:19 +01:00
Dave Murphy
ae793d657a devkitPPC: update binutils to 2.36.1 2021-05-25 09:16:19 +01:00
Dave Murphy
c375da789d devkitPPC: update newlib to 4.1.0 2021-05-25 09:16:19 +01:00
Dave Murphy
b8c7c915bc allow prevention of binary stripping 2021-05-09 13:50:54 +01:00
Dave Murphy
c108162819 use ansi stdio on mingw host too 2021-05-09 13:38:10 +01:00
Dave Murphy
e952463476 use the supplied zlib 2021-05-08 21:28:54 +01:00
Dave Murphy
1444dc91df allow external variables to influence build 2021-05-08 21:10:04 +01:00
Dave Murphy
4219405837 devkitARM: update gcc patch 2021-04-30 13:08:32 +01:00
Dave Murphy
aacd4f8bf6 devkitARM: allow external gcc config params 2021-04-30 13:08:32 +01:00
Dave Murphy
e4cb9e3b2f devkitARM: update binutils to 2.36.1 2021-04-30 13:08:32 +01:00
Dave Murphy
85ec801a13 devkitARM: update newlib to 4.1.0 2021-04-30 13:08:32 +01:00
Dave Murphy
0eb81ba063 devkitARM: next release is 56 2021-04-30 13:08:32 +01:00
Dave Murphy
5740d1d57d devkitARM: update gcc to 11.1.0 2021-04-30 13:08:32 +01:00
Dave Murphy
d2c48d04c2 ignore .xz files 2021-04-29 22:53:42 +01:00
Dave Murphy
289d6a6aa0 use latest crtls & rules 2021-04-29 22:53:42 +01:00
Dave Murphy
c33f389df1 add zstd to configure options 2021-04-29 22:53:42 +01:00
Dave Murphy
2938af4ed5 add isl to configure options 2021-04-29 22:53:42 +01:00
Dave Murphy
0f4422c92c devkitA64: allow external gcc config params 2021-04-29 22:53:42 +01:00
Dave Murphy
dc5b7bb5a6 remove cross build scripts 2021-04-29 22:53:42 +01:00
Dave Murphy
a87f68d4dd devkitA64: update gcc to 11.1.0 2021-04-29 22:53:26 +01:00
Dave Murphy
a9b611e134 dlls no longer required 2021-04-27 16:49:40 +01:00
Dave Murphy
6015da5cab devkitA64: update newlib to 4.1.0 2021-04-27 16:49:31 +01:00
25 changed files with 873 additions and 958 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,8 @@
#!/usr/bin/env bash
#!/bin/bash
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# devkitARM release 55 # devkitARM release 58
# devkitPPC release 38 # devkitPPC release 41
# devkitA64 release 16 # devkitA64 release 19
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
if [ 0 -eq 1 ] ; then if [ 0 -eq 1 ] ; then
@@ -28,12 +27,12 @@ echo
DKARM_RULES_VER=1.2.0 DKARM_RULES_VER=1.2.1
DKARM_CRTLS_VER=1.0.0 DKARM_CRTLS_VER=1.1.1
DKPPC_RULES_VER=1.0.0 DKPPC_RULES_VER=1.1.0
DKA64_RULES_VER=1.0.0 DKA64_RULES_VER=1.0.1
OSXMIN=${OSXMIN:-10.9} OSXMIN=${OSXMIN:-10.9}
@@ -59,13 +58,6 @@ if [ ! -z "$CROSSBUILD" ] ; then
fi fi
fi fi
#---------------------------------------------------------------------------------
# Sane defaults for building toolchain
#---------------------------------------------------------------------------------
export CFLAGS="-O2 -pipe"
export CXXFLAGS="$CFLAGS"
unset LDFLAGS
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# Look for automated configuration file to bypass prompts # Look for automated configuration file to bypass prompts
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
@@ -126,7 +118,7 @@ if [ ! -z $CROSSBUILD ]; then
export PATH=/opt/devkitpro/$package/bin:$PATH export PATH=/opt/devkitpro/$package/bin:$PATH
prefix=$INSTALLDIR/$CROSSBUILD/$package prefix=$INSTALLDIR/$CROSSBUILD/$package
CROSS_PARAMS="$CROSS_PARAMS --host=$CROSSBUILD" CROSS_PARAMS="$CROSS_PARAMS --host=$CROSSBUILD"
CROSS_GCC_PARAMS="--with-gmp=$CROSSPATH --with-mpfr=$CROSSPATH --with-mpc=$CROSSPATH" CROSS_GCC_PARAMS="--with-gmp=$CROSSPATH --with-mpfr=$CROSSPATH --with-mpc=$CROSSPATH --with-isl=$CROSSPATH --with-zstd=$CROSSPATH"
else else
prefix=$INSTALLDIR/$package prefix=$INSTALLDIR/$package
fi fi
@@ -162,7 +154,7 @@ case $PLATFORM in
fi fi
;; ;;
MINGW32* ) MINGW32* )
cppflags="-D__USE_MINGW_ACCESS" cppflags="-D__USE_MINGW_ACCESS -D__USE_MINGW_ANSI_STDIO=1"
;; ;;
esac esac
@@ -189,15 +181,15 @@ fi
if [ "$BUILD_DKPRO_SKIP_CRTLS" != "1" ]; then if [ "$BUILD_DKPRO_SKIP_CRTLS" != "1" ]; then
if [ $VERSION -eq 1 ]; then if [ $VERSION -eq 1 ]; then
archives="devkitarm-rules-$DKARM_RULES_VER.tar.xz devkitarm-crtls-$DKARM_CRTLS_VER.tar.xz $archives" archives="devkitarm-rules-$DKARM_RULES_VER.tar.gz devkitarm-crtls-$DKARM_CRTLS_VER.tar.gz $archives"
fi fi
if [ $VERSION -eq 2 ]; then if [ $VERSION -eq 2 ]; then
archives="devkitppc-rules-$DKPPC_RULES_VER.tar.xz $archives" archives="devkitppc-rules-$DKPPC_RULES_VER.tar.gz $archives"
fi fi
if [ $VERSION -eq 3 ]; then if [ $VERSION -eq 3 ]; then
archives="devkita64-rules-$DKA64_RULES_VER.tar.xz $archives" archives="devkita64-rules-$DKA64_RULES_VER.tar.gz $archives"
fi fi
fi fi
@@ -238,13 +230,10 @@ fi
cd $BUILDSCRIPTDIR cd $BUILDSCRIPTDIR
if [ ! -z $CROSSBUILD ] && grep -q "mingw" <<<"$CROSSBUILD" ; then if [ "$BUILD_DKPRO_NO_STRIP_BINARIES" != "1" ]; then
cp -v $CROSSBINPATH/libwinpthread-1.dll $prefix/bin/
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
fi
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# Clean up temporary files and source directories # Clean up temporary files and source directories

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,56 +1,7 @@
diff --git a/gcc/config.gcc b/gcc/config.gcc diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/aarch64/aarch64.cc gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/aarch64.cc
index 6a349965c0a..2206091e057 100644 --- gcc-12.1.0-RC-20220429/gcc/config/aarch64/aarch64.cc 2022-04-29 14:58:22.000000000 +0100
--- a/gcc/config.gcc +++ gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/aarch64.cc 2022-05-02 21:50:30.090088643 +0100
+++ b/gcc/config.gcc @@ -19417,8 +19417,24 @@
@@ -1039,7 +1039,14 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
tmake_file="${tmake_file} aarch64/t-aarch64"
case $target in
aarch64-*-elf*)
+ default_use_cxa_atexit=yes
use_gcc_stdint=wrap
+ tm_file="${tm_file} devkitpro.h"
+ tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
+ extra_options="${extra_options} devkitpro.opt"
+ case ${enable_threads} in
+ "" | yes | posix) thread_file='posix' ;;
+ esac
;;
aarch64-*-fuchsia*)
tm_file="${tm_file} fuchsia.h"
diff --git a/gcc/config/aarch64/aarch64-elf-raw.h b/gcc/config/aarch64/aarch64-elf-raw.h
index da5872cf4d8..ca840ab29cb 100644
--- a/gcc/config/aarch64/aarch64-elf-raw.h
+++ b/gcc/config/aarch64/aarch64-elf-raw.h
@@ -22,6 +22,7 @@
#ifndef GCC_AARCH64_ELF_RAW_H
#define GCC_AARCH64_ELF_RAW_H
+#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L %(libgloss) --end-group"
#define STARTFILE_SPEC " crti%O%s crtbegin%O%s crt0%O%s"
#define ENDFILE_SPEC \
" crtend%O%s crtn%O%s " \
diff --git a/gcc/config/aarch64/aarch64-opts.h b/gcc/config/aarch64/aarch64-opts.h
index ee7bed34924..d1e2742d750 100644
--- a/gcc/config/aarch64/aarch64-opts.h
+++ b/gcc/config/aarch64/aarch64-opts.h
@@ -48,6 +48,12 @@ enum aarch64_tls_type {
TLS_DESCRIPTORS
};
+/* Which thread pointer access sequence to use. */
+enum aarch64_tp_type {
+ TP_HARD,
+ TP_SOFT
+};
+
/* The code model defines the address generation strategy.
Most have a PIC and non-PIC variant. */
enum aarch64_code_model {
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index b86434a6acf..389e3fe3910 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -15983,8 +15983,24 @@ aarch64_load_tp (rtx target)
|| !register_operand (target, Pmode)) || !register_operand (target, Pmode))
target = gen_reg_rtx (Pmode); target = gen_reg_rtx (Pmode);
@@ -77,11 +28,21 @@ index b86434a6acf..389e3fe3910 100644
return target; return target;
} }
diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/aarch64/aarch64-elf-raw.h gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/aarch64-elf-raw.h
index 1ce23c68781..57216651648 100644 --- gcc-12.1.0-RC-20220429/gcc/config/aarch64/aarch64-elf-raw.h 2022-04-29 14:58:22.000000000 +0100
--- a/gcc/config/aarch64/aarch64.h +++ gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/aarch64-elf-raw.h 2022-05-02 21:50:30.086094234 +0100
+++ b/gcc/config/aarch64/aarch64.h @@ -22,6 +22,7 @@
@@ -1134,6 +1134,10 @@ typedef struct #ifndef GCC_AARCH64_ELF_RAW_H
#define GCC_AARCH64_ELF_RAW_H
+#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %L %(libgloss) --end-group"
#define STARTFILE_SPEC " crti%O%s crtbegin%O%s crt0%O%s"
#define ENDFILE_SPEC \
" crtend%O%s crtn%O%s " \
diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/aarch64/aarch64.h gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/aarch64.h
--- gcc-12.1.0-RC-20220429/gcc/config/aarch64/aarch64.h 2022-04-29 14:58:22.000000000 +0100
+++ gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/aarch64.h 2022-05-02 21:50:30.090088643 +0100
@@ -1245,6 +1245,10 @@
/* 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 +53,19 @@ index 1ce23c68781..57216651648 100644
extern enum aarch64_code_model aarch64_cmodel; extern enum aarch64_code_model aarch64_cmodel;
/* When using the tiny addressing model conditional and unconditional branches /* When using the tiny addressing model conditional and unconditional branches
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md @@ -1290,7 +1294,7 @@
index 8c8be3c2740..1257616a659 100644 #define MCPU_TO_MARCH_SPEC_FUNCTIONS \
--- a/gcc/config/aarch64/aarch64.md { "rewrite_mcpu", aarch64_rewrite_mcpu },
+++ b/gcc/config/aarch64/aarch64.md
@@ -6789,11 +6789,22 @@ -#if defined(__aarch64__)
+#if 0 // defined(__aarch64__)
extern const char *host_detect_local_cpu (int argc, const char **argv);
#define HAVE_LOCAL_CPU_DETECT
# define EXTRA_SPEC_FUNCTIONS \
diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/aarch64/aarch64.md gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/aarch64.md
--- gcc-12.1.0-RC-20220429/gcc/config/aarch64/aarch64.md 2022-04-29 14:58:22.000000000 +0100
+++ gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/aarch64.md 2022-05-02 21:50:30.090088643 +0100
@@ -6899,11 +6899,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))]
@@ -121,11 +90,10 @@ index 8c8be3c2740..1257616a659 100644
;; The TLS ABI specifically requires that the compiler does not schedule ;; The TLS ABI specifically requires that the compiler does not schedule
;; 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 -NBaur gcc-12.1.0-RC-20220429/gcc/config/aarch64/aarch64.opt gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/aarch64.opt
index d99d14c137d..08e52537dc6 100644 --- gcc-12.1.0-RC-20220429/gcc/config/aarch64/aarch64.opt 2022-04-29 14:58:22.000000000 +0100
--- a/gcc/config/aarch64/aarch64.opt +++ gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/aarch64.opt 2022-05-02 21:50:30.090088643 +0100
+++ b/gcc/config/aarch64/aarch64.opt @@ -122,6 +122,21 @@
@@ -118,6 +118,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 +115,36 @@ 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 @@
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/t-aarch64 b/gcc/config/aarch64/t-aarch64 diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/aarch64/aarch64-opts.h gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/aarch64-opts.h
index 11d20b7be14..02ca761d3bf 100644 --- gcc-12.1.0-RC-20220429/gcc/config/aarch64/aarch64-opts.h 2022-04-29 14:58:22.000000000 +0100
--- a/gcc/config/aarch64/t-aarch64 +++ gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/aarch64-opts.h 2022-05-02 21:50:30.086094234 +0100
+++ b/gcc/config/aarch64/t-aarch64 @@ -48,6 +48,12 @@
@@ -159,8 +159,10 @@ aarch64-bti-insert.o: $(srcdir)/config/aarch64/aarch64-bti-insert.c \ TLS_DESCRIPTORS
$(srcdir)/config/aarch64/aarch64-bti-insert.c };
+/* Which thread pointer access sequence to use. */
+enum aarch64_tp_type {
+ TP_HARD,
+ TP_SOFT
+};
+
/* The code model defines the address generation strategy.
Most have a PIC and non-PIC variant. */
enum aarch64_code_model {
diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/aarch64/t-aarch64 gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/t-aarch64
--- gcc-12.1.0-RC-20220429/gcc/config/aarch64/t-aarch64 2022-04-29 14:58:22.000000000 +0100
+++ gcc-12.1.0-RC-20220429-dka64/gcc/config/aarch64/t-aarch64 2022-05-02 21:50:30.090088643 +0100
@@ -177,8 +177,10 @@
$(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,12 +156,10 @@ 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/devkitpro.h b/gcc/config/devkitpro.h diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/devkitpro.h gcc-12.1.0-RC-20220429-dka64/gcc/config/devkitpro.h
new file mode 100644 --- gcc-12.1.0-RC-20220429/gcc/config/devkitpro.h 1970-01-01 01:00:00.000000000 +0100
index 00000000000..11ba0f5ab1c +++ gcc-12.1.0-RC-20220429-dka64/gcc/config/devkitpro.h 2022-05-02 22:04:49.962851033 +0100
--- /dev/null @@ -0,0 +1,29 @@
+++ b/gcc/config/devkitpro.h
@@ -0,0 +1,31 @@
+/* Definitions for devkitPro toolchains. +/* Definitions for devkitPro toolchains.
+ Copyright (C) 2016-2018 Free Software Foundation, Inc. + Copyright (C) 2016-2018 Free Software Foundation, Inc.
+ +
@@ -208,13 +189,9 @@ index 00000000000..11ba0f5ab1c
+ do { \ + do { \
+ builtin_define ("__DEVKITA64__"); \ + builtin_define ("__DEVKITA64__"); \
+ } while (0) + } while (0)
+ diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/devkitpro.opt gcc-12.1.0-RC-20220429-dka64/gcc/config/devkitpro.opt
+ --- gcc-12.1.0-RC-20220429/gcc/config/devkitpro.opt 1970-01-01 01:00:00.000000000 +0100
diff --git a/gcc/config/devkitpro.opt b/gcc/config/devkitpro.opt +++ gcc-12.1.0-RC-20220429-dka64/gcc/config/devkitpro.opt 2022-05-02 21:50:30.090088643 +0100
new file mode 100644
index 00000000000..9acbbf9d27c
--- /dev/null
+++ b/gcc/config/devkitpro.opt
@@ -0,0 +1,29 @@ @@ -0,0 +1,29 @@
+; Options for devkitPro toolchains. +; Options for devkitPro toolchains.
+ +
@@ -245,53 +222,43 @@ index 00000000000..9acbbf9d27c
+Driver +Driver
+ +
+; 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 -NBaur gcc-12.1.0-RC-20220429/gcc/config/i386/host-mingw32.cc gcc-12.1.0-RC-20220429-dka64/gcc/config/i386/host-mingw32.cc
index 250fef59b55..36b2239aa5d 100644 --- gcc-12.1.0-RC-20220429/gcc/config/i386/host-mingw32.cc 2022-04-29 14:58:22.000000000 +0100
--- a/gcc/config/i386/host-mingw32.c +++ gcc-12.1.0-RC-20220429-dka64/gcc/config/i386/host-mingw32.cc 2022-05-02 21:50:30.090088643 +0100
+++ b/gcc/config/i386/host-mingw32.c @@ -45,7 +45,11 @@
@@ -44,9 +44,6 @@ 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;
diff -NBaur gcc-12.1.0-RC-20220429/gcc/config.gcc gcc-12.1.0-RC-20220429-dka64/gcc/config.gcc
@@ -88,9 +85,6 @@ static void * --- gcc-12.1.0-RC-20220429/gcc/config.gcc 2022-04-29 14:58:22.000000000 +0100
mingw32_gt_pch_get_address (size_t size, int) +++ gcc-12.1.0-RC-20220429-dka64/gcc/config.gcc 2022-05-02 21:50:30.086094234 +0100
{ @@ -1093,7 +1093,14 @@
void* res; tmake_file="${tmake_file} aarch64/t-aarch64"
- size = (size + va_granularity - 1) & ~(va_granularity - 1); case $target in
- if (size > pch_VA_max_size) aarch64-*-elf*)
- return NULL; + default_use_cxa_atexit=yes
use_gcc_stdint=wrap
/* FIXME: We let system determine base by setting first arg to NULL. + tm_file="${tm_file} devkitpro.h"
Allocating at top of available address space avoids unnecessary + tm_defines="${tm_defines} TARGET_DEFAULT_ASYNC_UNWIND_TABLES=1"
@@ -100,7 +94,7 @@ mingw32_gt_pch_get_address (size_t size, int) + extra_options="${extra_options} devkitpro.opt"
If we allocate at bottom we need to reserve the address as early + case ${enable_threads} in
as possible and at the same point in each invocation. */ + "" | yes | posix) thread_file='posix' ;;
+ esac
- res = VirtualAlloc (NULL, pch_VA_max_size, ;;
+ res = VirtualAlloc (NULL, size, aarch64-*-fuchsia*)
MEM_RESERVE | MEM_TOP_DOWN, tm_file="${tm_file} fuchsia.h"
PAGE_NOACCESS); diff -NBaur gcc-12.1.0-RC-20220429/gcc/gcc.cc gcc-12.1.0-RC-20220429-dka64/gcc/gcc.cc
if (!res) --- gcc-12.1.0-RC-20220429/gcc/gcc.cc 2022-04-29 14:58:23.000000000 +0100
@@ -150,7 +144,7 @@ mingw32_gt_pch_use_address (void *addr, size_t size, int fd, +++ gcc-12.1.0-RC-20220429-dka64/gcc/gcc.cc 2022-05-02 21:50:30.090088643 +0100
@@ -860,6 +860,11 @@
/* 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
index 9f790db0daf..97f52d0b893 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -793,6 +793,11 @@ proper position among the other output files. */
#endif #endif
#endif #endif
@@ -303,7 +270,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; @@ -1204,6 +1209,7 @@
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 +278,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[] = @@ -1709,6 +1715,7 @@
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,11 +286,10 @@ 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 diff -NBaur gcc-12.1.0-RC-20220429/libgcc/crtstuff.c gcc-12.1.0-RC-20220429-dka64/libgcc/crtstuff.c
index 3f769a1c660..e005d8304b7 100644 --- gcc-12.1.0-RC-20220429/libgcc/crtstuff.c 2022-04-29 14:58:25.000000000 +0100
--- a/libgcc/crtstuff.c +++ gcc-12.1.0-RC-20220429-dka64/libgcc/crtstuff.c 2022-05-02 21:50:30.094083051 +0100
+++ b/libgcc/crtstuff.c @@ -325,7 +325,7 @@
@@ -325,7 +325,7 @@ register_tm_clones (void)
#ifdef OBJECT_FORMAT_ELF #ifdef OBJECT_FORMAT_ELF
@@ -332,11 +298,10 @@ index 3f769a1c660..e005d8304b7 100644
/* Declare the __dso_handle variable. It should have a unique value /* Declare the __dso_handle variable. It should have a unique value
in every shared-object; in a main program its value is zero. The in every shared-object; in a main program its value is zero. The
object should in any case be protected. This means the instance object should in any case be protected. This means the instance
diff --git a/libgcc/gthr.h b/libgcc/gthr.h diff -NBaur gcc-12.1.0-RC-20220429/libgcc/gthr.h gcc-12.1.0-RC-20220429-dka64/libgcc/gthr.h
index f31cf083cbe..649f900aac3 100644 --- gcc-12.1.0-RC-20220429/libgcc/gthr.h 2022-04-29 14:58:25.000000000 +0100
--- a/libgcc/gthr.h +++ gcc-12.1.0-RC-20220429-dka64/libgcc/gthr.h 2022-05-02 21:50:30.094083051 +0100
+++ b/libgcc/gthr.h @@ -136,7 +136,7 @@
@@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
/* The pe-coff weak support isn't fully compatible to ELF's weak. /* The pe-coff weak support isn't fully compatible to ELF's weak.
For static libraries it might would work, but as we need to deal For static libraries it might would work, but as we need to deal
with shared versions too, we disable it for mingw-targets. */ with shared versions too, we disable it for mingw-targets. */
@@ -345,11 +310,10 @@ index f31cf083cbe..649f900aac3 100644
#undef GTHREAD_USE_WEAK #undef GTHREAD_USE_WEAK
#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 -NBaur gcc-12.1.0-RC-20220429/libstdc++-v3/include/Makefile.am gcc-12.1.0-RC-20220429-dka64/libstdc++-v3/include/Makefile.am
index 80aeb3f8959..308ceedc673 100644 --- gcc-12.1.0-RC-20220429/libstdc++-v3/include/Makefile.am 2022-04-29 14:58:26.000000000 +0100
--- a/libstdc++-v3/include/Makefile.am +++ gcc-12.1.0-RC-20220429-dka64/libstdc++-v3/include/Makefile.am 2022-05-02 21:50:30.094083051 +0100
+++ b/libstdc++-v3/include/Makefile.am @@ -1366,6 +1366,7 @@
@@ -1315,6 +1315,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' \
@@ -357,11 +321,10 @@ index 80aeb3f8959..308ceedc673 100644
-e 's,^#include "\(.*\)",#include <bits/\1>,g' \ -e 's,^#include "\(.*\)",#include <bits/\1>,g' \
< $< > $@ < $< > $@
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in diff -NBaur gcc-12.1.0-RC-20220429/libstdc++-v3/include/Makefile.in gcc-12.1.0-RC-20220429-dka64/libstdc++-v3/include/Makefile.in
index eb437ad8d8d..6e076fc63bd 100644 --- gcc-12.1.0-RC-20220429/libstdc++-v3/include/Makefile.in 2022-04-29 14:58:26.000000000 +0100
--- a/libstdc++-v3/include/Makefile.in +++ gcc-12.1.0-RC-20220429-dka64/libstdc++-v3/include/Makefile.in 2022-05-02 21:50:30.094083051 +0100
+++ b/libstdc++-v3/include/Makefile.in @@ -1857,6 +1857,7 @@
@@ -1793,6 +1793,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' \

View File

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

View File

@@ -10,7 +10,7 @@ cd $target/binutils
if [ ! -f configured-binutils ] if [ ! -f configured-binutils ]
then then
CFLAGS=$cflags LDFLAGS=$ldflags ../../binutils-$BINUTILS_VER/configure \ ../../binutils-$BINUTILS_VER/configure \
--prefix=$prefix --target=$target --disable-nls --disable-werror \ --prefix=$prefix --target=$target --disable-nls --disable-werror \
--enable-lto --enable-plugins --enable-poison-system-directories \ --enable-lto --enable-plugins --enable-poison-system-directories \
$CROSS_PARAMS \ $CROSS_PARAMS \
@@ -39,9 +39,6 @@ cd $target/gcc
if [ ! -f configured-gcc ] if [ ! -f configured-gcc ]
then then
CFLAGS="$cflags" \
CXXFLAGS="$cflags" \
LDFLAGS="$ldflags" \
CFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \ CFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \
CXXFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \ CXXFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \
LDFLAGS_FOR_TARGET="" \ LDFLAGS_FOR_TARGET="" \
@@ -52,7 +49,7 @@ then
--enable-cxx-flags='-ffunction-sections' \ --enable-cxx-flags='-ffunction-sections' \
--disable-libstdcxx-verbose \ --disable-libstdcxx-verbose \
--enable-poison-system-directories \ --enable-poison-system-directories \
--enable-interwork --enable-multilib \ --enable-multilib \
--enable-threads --disable-win32-registry --disable-nls --disable-debug\ --enable-threads --disable-win32-registry --disable-nls --disable-debug\
--disable-libmudflap --disable-libssp --disable-libgomp \ --disable-libmudflap --disable-libssp --disable-libgomp \
--disable-libstdcxx-pch \ --disable-libstdcxx-pch \
@@ -62,13 +59,13 @@ then
--with-newlib=yes \ --with-newlib=yes \
--with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \ --with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \
--prefix=$prefix \ --prefix=$prefix \
--enable-lto $plugin_ld\ --enable-lto \
--with-system-zlib \
--disable-tm-clone-registry \ --disable-tm-clone-registry \
--disable-__cxa_atexit \ --disable-__cxa_atexit \
--with-bugurl="https://github.com/devkitPro/buildscripts/issues" --with-pkgversion="devkitA64 release 16" \ --with-bugurl="https://github.com/devkitPro/buildscripts/issues" --with-pkgversion="devkitA64 release 19" \
$CROSS_PARAMS \ $CROSS_PARAMS \
$CROSS_GCC_PARAMS \ $CROSS_GCC_PARAMS \
$EXTRA_GCC_PARAMS \
|| { echo "Error configuring gcc"; exit 1; } || { echo "Error configuring gcc"; exit 1; }
touch configured-gcc touch configured-gcc
fi fi

View File

@@ -0,0 +1,17 @@
diff --git a/libiberty/rust-demangle.c b/libiberty/rust-demangle.c
index df09b7b8fddb82b21f97afee8821166d92220094..ac1eb8eb02c6d42533c0faa7aebdce432ac947e9 100644 (file)
--- a/libiberty/rust-demangle.c
+++ b/libiberty/rust-demangle.c
@@ -75,10 +75,10 @@ struct rust_demangler
int version;
/* Recursion depth. */
- uint recursion;
+ unsigned recursion;
/* Maximum number of times demangle_path may be called recursively. */
#define RUST_MAX_RECURSION_COUNT 1024
-#define RUST_NO_RECURSION_LIMIT ((uint) -1)
+#define RUST_NO_RECURSION_LIMIT ((unsigned) -1)
uint64_t bound_lifetime_depth;
};

View File

@@ -1,8 +1,7 @@
diff --git a/gcc/config/arm/arm-cpus.in b/gcc/config/arm/arm-cpus.in diff -NBaur gcc-12.1.0-RC-20220429/gcc/config/arm/arm-cpus.in gcc-12.1.0-RC-20220429-dkarm/gcc/config/arm/arm-cpus.in
index 728be500b80..74c1abad635 100644 --- gcc-12.1.0-RC-20220429/gcc/config/arm/arm-cpus.in 2022-04-29 14:58:22.000000000 +0100
--- a/gcc/config/arm/arm-cpus.in +++ gcc-12.1.0-RC-20220429-dkarm/gcc/config/arm/arm-cpus.in 2022-04-30 13:31:09.120134164 +0100
+++ b/gcc/config/arm/arm-cpus.in @@ -412,7 +412,7 @@
@@ -392,7 +392,7 @@ begin arch armv6k
tune for mpcore tune for mpcore
tune flags CO_PROC tune flags CO_PROC
base 6K base 6K
@@ -11,11 +10,16 @@ index 728be500b80..74c1abad635 100644
option fp add VFPv2 FP_DBL option fp add VFPv2 FP_DBL
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 -NBaur gcc-12.1.0-RC-20220429/gcc/config/arm/t-arm-elf gcc-12.1.0-RC-20220429-dkarm/gcc/config/arm/t-arm-elf
index 3d92bd23322..35cefcde676 100644 --- gcc-12.1.0-RC-20220429/gcc/config/arm/t-arm-elf 2022-04-29 14:58:22.000000000 +0100
--- a/gcc/config/arm/t-arm-elf +++ gcc-12.1.0-RC-20220429-dkarm/gcc/config/arm/t-arm-elf 2022-04-30 13:31:39.759455398 +0100
+++ b/gcc/config/arm/t-arm-elf @@ -1,4 +1,4 @@
@@ -16,111 +16,14 @@ -# Copyright (C) 1998-2022 Free Software Foundation, Inc.
+# Copyright (C) 1998-2021 Free Software Foundation, Inc.
#
# This file is part of GCC.
#
@@ -16,120 +16,14 @@
# along with GCC; see the file COPYING3. If not see # along with GCC; see the file COPYING3. If not see
# <http://www.gnu.org/licenses/>. # <http://www.gnu.org/licenses/>.
@@ -41,6 +45,8 @@ index 3d92bd23322..35cefcde676 100644
-# it seems to work ok. -# it seems to work ok.
-v8_fps := simd fp16 crypto fp16+crypto dotprod fp16fml -v8_fps := simd fp16 crypto fp16+crypto dotprod fp16fml
- -
-v9_fps := simd fp16 crypto fp16+crypto dotprod fp16fml
-
-# We don't do anything special with these. Pre-v4t probably doesn't work. -# We don't do anything special with these. Pre-v4t probably doesn't work.
-all_early_nofp := armv4 armv4t armv5t -all_early_nofp := armv4 armv4t armv5t
- -
@@ -52,6 +58,8 @@ index 3d92bd23322..35cefcde676 100644
-all_v8_archs := armv8-a armv8-a+crc armv8.1-a armv8.2-a armv8.3-a armv8.4-a \ -all_v8_archs := armv8-a armv8-a+crc armv8.1-a armv8.2-a armv8.3-a armv8.4-a \
- armv8.5-a armv8.6-a - armv8.5-a armv8.6-a
- -
-all_v9_archs := armv9-a
-
-# No floating point variants, require thumb1 softfp -# No floating point variants, require thumb1 softfp
-all_nofp_t := armv6-m armv6s-m armv8-m.base -all_nofp_t := armv6-m armv6s-m armv8-m.base
- -
@@ -109,11 +117,16 @@ index 3d92bd23322..35cefcde676 100644
-MULTILIB_MATCHES += $(foreach ARCH, $(all_v7_a_r), \ -MULTILIB_MATCHES += $(foreach ARCH, $(all_v7_a_r), \
- march?armv7+fp=march?$(ARCH) \ - march?armv7+fp=march?$(ARCH) \
- march?armv7+fp=march?$(ARCH)+fp) - march?armv7+fp=march?$(ARCH)+fp)
-
-MULTILIB_MATCHES += $(foreach ARCH, $(all_v8_archs), \ -MULTILIB_MATCHES += $(foreach ARCH, $(all_v8_archs), \
- march?armv7+fp=march?$(ARCH) \ - march?armv7+fp=march?$(ARCH) \
- $(foreach FPARCH, $(v8_fps), \ - $(foreach FPARCH, $(v8_fps), \
- march?armv7+fp=march?$(ARCH)+$(FPARCH))) - march?armv7+fp=march?$(ARCH)+$(FPARCH)))
-MULTILIB_MATCHES += $(foreach ARCH, $(all_v9_archs), \
- march?armv7+fp=march?$(ARCH) \
- $(foreach FPARCH, $(v9_fps), \
- march?armv7+fp=march?$(ARCH)+$(FPARCH)))
+MULTILIB_REQUIRED = mthumb mbig-endian mthumb/mbig-endian march=armv6k/mfloat-abi=hard +MULTILIB_REQUIRED = mthumb mbig-endian mthumb/mbig-endian march=armv6k/mfloat-abi=hard
-MULTILIB_MATCHES += $(foreach ARCH, armv7e-m armv8-m.mainline, \ -MULTILIB_MATCHES += $(foreach ARCH, armv7e-m armv8-m.mainline, \
@@ -132,10 +145,9 @@ index 3d92bd23322..35cefcde676 100644
-MULTILIB_REUSE += mthumb/mfpu.auto/march.armv7+fp/mfloat-abi.hard=mthumb/march.armv7+fp/mfloat-abi.hard -MULTILIB_REUSE += mthumb/mfpu.auto/march.armv7+fp/mfloat-abi.hard=mthumb/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=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 -NBaur gcc-12.1.0-RC-20220429/gcc/config/arm/unknown-elf.h gcc-12.1.0-RC-20220429-dkarm/gcc/config/arm/unknown-elf.h
index 9ad2947505f..1790caa8e88 100644 --- gcc-12.1.0-RC-20220429/gcc/config/arm/unknown-elf.h 2022-04-29 14:58:22.000000000 +0100
--- a/gcc/config/arm/unknown-elf.h +++ gcc-12.1.0-RC-20220429-dkarm/gcc/config/arm/unknown-elf.h 2022-04-30 13:31:09.120134164 +0100
+++ b/gcc/config/arm/unknown-elf.h
@@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
#endif #endif
@@ -152,53 +164,25 @@ index 9ad2947505f..1790caa8e88 100644
-#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %{!nolibc:%L} --end-group" -#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %{!nolibc:%L} --end-group"
+#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 -NBaur gcc-12.1.0-RC-20220429/gcc/config/i386/host-mingw32.cc gcc-12.1.0-RC-20220429-dkarm/gcc/config/i386/host-mingw32.cc
index 250fef59b55..36b2239aa5d 100644 --- gcc-12.1.0-RC-20220429/gcc/config/i386/host-mingw32.cc 2022-04-29 14:58:22.000000000 +0100
--- a/gcc/config/i386/host-mingw32.c +++ gcc-12.1.0-RC-20220429-dkarm/gcc/config/i386/host-mingw32.cc 2022-04-30 13:31:09.120134164 +0100
+++ b/gcc/config/i386/host-mingw32.c @@ -45,7 +45,11 @@
@@ -44,9 +44,6 @@ 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;
diff -NBaur gcc-12.1.0-RC-20220429/gcc/gcc.cc gcc-12.1.0-RC-20220429-dkarm/gcc/gcc.cc
@@ -88,9 +85,6 @@ static void * --- gcc-12.1.0-RC-20220429/gcc/gcc.cc 2022-04-29 14:58:23.000000000 +0100
mingw32_gt_pch_get_address (size_t size, int) +++ gcc-12.1.0-RC-20220429-dkarm/gcc/gcc.cc 2022-04-30 13:31:09.120134164 +0100
{ @@ -860,6 +860,11 @@
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
index 9f790db0daf..97f52d0b893 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -793,6 +793,11 @@ proper position among the other output files. */
#endif #endif
#endif #endif
@@ -210,7 +194,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; @@ -1204,6 +1209,7 @@
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 +202,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[] = @@ -1709,6 +1715,7 @@
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),
@@ -226,21 +210,19 @@ 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/config/arm/t-bpabi b/libgcc/config/arm/t-bpabi diff -NBaur gcc-12.1.0-RC-20220429/libgcc/config/arm/t-bpabi gcc-12.1.0-RC-20220429-dkarm/libgcc/config/arm/t-bpabi
index dddddc7c444..c2502597953 100644 --- gcc-12.1.0-RC-20220429/libgcc/config/arm/t-bpabi 2022-04-29 14:58:25.000000000 +0100
--- a/libgcc/config/arm/t-bpabi +++ gcc-12.1.0-RC-20220429-dkarm/libgcc/config/arm/t-bpabi 2022-04-30 13:31:09.120134164 +0100
+++ b/libgcc/config/arm/t-bpabi @@ -17,4 +17,4 @@
@@ -17,4 +17,4 @@ SHLIB_MAPFILES += $(srcdir)/config/arm/libgcc-bpabi.ver
# On ARM, specifying -fnon-call-exceptions will needlessly pull in # On ARM, specifying -fnon-call-exceptions will needlessly pull in
# the unwinder in simple programs which use 64-bit division. Omitting # the unwinder in simple programs which use 64-bit division. Omitting
# 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 diff -NBaur gcc-12.1.0-RC-20220429/libgcc/crtstuff.c gcc-12.1.0-RC-20220429-dkarm/libgcc/crtstuff.c
index 3f769a1c660..e005d8304b7 100644 --- gcc-12.1.0-RC-20220429/libgcc/crtstuff.c 2022-04-29 14:58:25.000000000 +0100
--- a/libgcc/crtstuff.c +++ gcc-12.1.0-RC-20220429-dkarm/libgcc/crtstuff.c 2022-04-30 13:31:09.120134164 +0100
+++ b/libgcc/crtstuff.c @@ -325,7 +325,7 @@
@@ -325,7 +325,7 @@ register_tm_clones (void)
#ifdef OBJECT_FORMAT_ELF #ifdef OBJECT_FORMAT_ELF

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 e70c57d89..ac5c745f9 100755
--- a/libgloss/configure --- a/libgloss/configure
+++ b/libgloss/configure +++ b/libgloss/configure
@@ -2604,6 +2604,8 @@ if test "${config_libnosys}" = "true"; then @@ -2787,6 +2787,8 @@ if test "${config_libnosys}" = "true"; then
fi fi
@@ -11,19 +11,19 @@ index 0d2918cee..bccfb07b4 100755
DEPDIR="${am__leading_dot}deps" DEPDIR="${am__leading_dot}deps"
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.ac b/libgloss/configure.ac
index f38d5298e..509c31071 100644 index 0fbe99526..577dfdec6 100644
--- a/libgloss/configure.in --- a/libgloss/configure.ac
+++ b/libgloss/configure.in +++ b/libgloss/configure.ac
@@ -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.
AC_PREREQ(2.59) AC_PREREQ(2.69)dnl
AC_INIT([libgloss],[LIBGLOSS_VERSION]) AC_INIT([libgloss],[LIBGLOSS_VERSION])
AC_CONFIG_SRCDIR([libnosys]) AC_CONFIG_SRCDIR([libnosys])
+AC_CONFIG_SRCDIR([libsysbase]) +AC_CONFIG_SRCDIR([libsysbase])
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 f38d5298e..509c31071 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 000000000..7ee40deec index 000000000..edb10d215
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/Makefile.in +++ b/libgloss/libsysbase/Makefile.in
@@ -0,0 +1,148 @@ @@ -0,0 +1,148 @@
@@ -108,8 +108,8 @@ index 000000000..7ee40deec
+ isatty.o kill.o link.o lseek.o lstat.o nanosleep.o open.o read.o sbrk.o sleep.o stat.o usleep.o times.o \ + isatty.o kill.o link.o lseek.o lstat.o nanosleep.o open.o read.o sbrk.o sleep.o stat.o usleep.o times.o \
+ unlink.o wait.o write.o _exit.o malloc_vars.o \ + unlink.o wait.o write.o _exit.o malloc_vars.o \
+ chdir.o mkdir.o rename.o build_argv.o statvfs.o \ + chdir.o mkdir.o rename.o build_argv.o statvfs.o \
+ flock.o syscall_support.o handle_manager.o truncate.o ftruncate.o dirent.o fsync.o \ + flock.o handle_manager.o truncate.o ftruncate.o dirent.o fsync.o \
+ fchmod.o chmod.o getreent.o rmdir.o utime.o scandir.o + fchmod.o chmod.o getreent.o rmdir.o utime.o scandir.o syscall_support.o
+ +
+# Object files specific to particular targets. +# Object files specific to particular targets.
+EVALOBJS = ${OBJS} +EVALOBJS = ${OBJS}
@@ -130,10 +130,10 @@ index 000000000..7ee40deec
+AR_FLAGS = qc +AR_FLAGS = qc
+ +
+.c.o: +.c.o:
+ $(CC) $(CFLAGS_FOR_TARGET) -O2 $(INCLUDES) -c $(CFLAGS) $< + $(CC) $(CFLAGS_FOR_TARGET) -D_BUILDING_LIBSYSBASE -O2 $(INCLUDES) -c $(CFLAGS) $<
+ +
+.C.o: +.C.o:
+ $(CC) $(CFLAGS_FOR_TARGET) -O2 $(INCLUDES) -c $(CFLAGS) $< + $(CC) $(CFLAGS_FOR_TARGET) -O2 -D_BUILDING_LIBSYSBASE $(INCLUDES) -c $(CFLAGS) $<
+.s.o: +.s.o:
+ $(AS) $(ASFLAGS_FOR_TARGET) $(INCLUDES) $(ASFLAGS) -o $*.o $< + $(AS) $(ASFLAGS_FOR_TARGET) $(INCLUDES) $(ASFLAGS) -o $*.o $<
+ +
@@ -187,7 +187,7 @@ index 000000000..7ee40deec
+ $(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 000000000..e5cb5a9ed 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 @@
@@ -202,8 +202,8 @@ index 000000000..e5cb5a9ed
+void _exit(int rc) +void _exit(int rc)
+{ +{
+ +
+ if ( __syscalls.exit ) { + if ( __has_syscall(exit) ) {
+ __syscalls.exit(rc); + __syscall_exit(rc);
+ } + }
+ +
+ while(1); + while(1);
@@ -889,7 +889,7 @@ index 000000000..3668b5801
+ +
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 000000000..01cfee469 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 @@
@@ -899,8 +899,8 @@ index 000000000..01cfee469
+ +
+int clock_gettime(clockid_t clock_id, struct timespec *tp) +int clock_gettime(clockid_t clock_id, struct timespec *tp)
+{ +{
+ if ( __syscalls.clock_gettime ) { + if ( __has_syscall(clock_gettime) ) {
+ return __syscalls.clock_gettime(clock_id, tp); + return __syscall_clock_gettime(clock_id, tp);
+ } else { + } else {
+ errno = ENOSYS; + errno = ENOSYS;
+ return -1; + return -1;
@@ -909,8 +909,8 @@ index 000000000..01cfee469
+ +
+int clock_settime(clockid_t clock_id, const struct timespec *tp) +int clock_settime(clockid_t clock_id, const struct timespec *tp)
+{ +{
+ if ( __syscalls.clock_settime ) { + if ( __has_syscall(clock_settime) ) {
+ return __syscalls.clock_settime(clock_id, tp); + return __syscall_clock_settime(clock_id, tp);
+ } else { + } else {
+ errno = ENOSYS; + errno = ENOSYS;
+ return -1; + return -1;
@@ -919,8 +919,8 @@ index 000000000..01cfee469
+ +
+int clock_getres (clockid_t clock_id, struct timespec *res) +int clock_getres (clockid_t clock_id, struct timespec *res)
+{ +{
+ if ( __syscalls.clock_getres ) { + if ( __has_syscall(clock_getres) ) {
+ return __syscalls.clock_getres(clock_id, res); + return __syscall_clock_getres(clock_id, res);
+ } else { + } else {
+ errno = ENOSYS; + errno = ENOSYS;
+ return -1; + return -1;
@@ -5884,7 +5884,7 @@ index 000000000..fdce14b5f
+ +
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 000000000..028d0eb77 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 @@
@@ -5900,8 +5900,8 @@ index 000000000..028d0eb77
+#endif +#endif
+ +
+struct _reent *__getreent() { +struct _reent *__getreent() {
+ if ( __syscalls.getreent ) { + if ( __has_syscall(getreent) ) {
+ return __syscalls.getreent(); + return __syscall_getreent();
+ } else { + } else {
+ return _impure_ptr; + return _impure_ptr;
+ } + }
@@ -5910,7 +5910,7 @@ index 000000000..028d0eb77
+ +
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 000000000..9d5b74724 index 000000000..4f2211248
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/gettod.c +++ b/libgloss/libsysbase/gettod.c
@@ -0,0 +1,33 @@ @@ -0,0 +1,33 @@
@@ -5940,7 +5940,7 @@ index 000000000..9d5b74724
+ struct _reent *ptr = _REENT; + struct _reent *ptr = _REENT;
+#endif +#endif
+ +
+ if ( __syscalls.gettod_r ) return __syscalls.gettod_r(ptr, ptimeval, ptimezone); + if ( __has_syscall(gettod_r) ) return __syscall_gettod_r(ptr, ptimeval, ptimezone);
+ +
+ ptr->_errno = ENOSYS; + ptr->_errno = ENOSYS;
+ return -1; + return -1;
@@ -6540,7 +6540,7 @@ index 000000000..b4fcbd3d7
+} +}
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 000000000..3c96fc61b 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 @@
@@ -6550,8 +6550,8 @@ index 000000000..3c96fc61b
+ +
+int nanosleep(const struct timespec *req, struct timespec *rem) +int nanosleep(const struct timespec *req, struct timespec *rem)
+{ +{
+ if ( __syscalls.nanosleep ) { + if ( __has_syscall(nanosleep) ) {
+ return __syscalls.nanosleep(req, rem); + return __syscall_nanosleep(req, rem);
+ } else { + } else {
+ *rem = *req; + *rem = *req;
+ errno = ENOSYS; + errno = ENOSYS;
@@ -6704,10 +6704,10 @@ index 000000000..97a056a72
+} +}
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 000000000..2692a2997 index 000000000..b8640b87d
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/rmdir.c +++ b/libgloss/libsysbase/rmdir.c
@@ -0,0 +1,25 @@ @@ -0,0 +1,34 @@
+#include "config.h" +#include "config.h"
+#include <_ansi.h> +#include <_ansi.h>
+#include <_syslist.h> +#include <_syslist.h>
@@ -6715,24 +6715,33 @@ index 000000000..2692a2997
+#include <errno.h> +#include <errno.h>
+#include <sys/iosupport.h> +#include <sys/iosupport.h>
+ +
+int rmdir (const char *name) { +int _rmdir_r (struct _reent *ptr, const char *name) {
+ struct _reent *r = _REENT;
+ int dev,ret=-1; + int dev,ret=-1;
+ +
+ dev = FindDevice(name); + dev = FindDevice(name);
+ if(dev!=-1) { + if(dev!=-1) {
+ if(devoptab_list[dev]->rmdir_r) { + if(devoptab_list[dev]->rmdir_r) {
+ r->deviceData = devoptab_list[dev]->deviceData; + ptr->deviceData = devoptab_list[dev]->deviceData;
+ ret = devoptab_list[dev]->rmdir_r(r,name); + ret = devoptab_list[dev]->rmdir_r(ptr,name);
+ } else { + } else {
+ r->_errno = ENOSYS; + ptr->_errno = ENOSYS;
+ } + }
+ } else { + } else {
+ r->_errno = ENODEV; + ptr->_errno = ENODEV;
+ } + }
+ +
+ return ret; + return ret;
+} +}
+
+#ifndef _REENT_ONLY
+
+int
+rmdir (const char *filename)
+{
+ return _rmdir_r (_REENT, filename);
+}
+
+#endif
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 000000000..5dd550c5c index 000000000..5dd550c5c
@@ -6979,54 +6988,30 @@ index 000000000..84e221340
+} +}
diff --git a/libgloss/libsysbase/syscall_support.c b/libgloss/libsysbase/syscall_support.c diff --git a/libgloss/libsysbase/syscall_support.c b/libgloss/libsysbase/syscall_support.c
new file mode 100644 new file mode 100644
index 000000000..53fead72a index 000000000..9bb71aa0d
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/syscall_support.c +++ b/libgloss/libsysbase/syscall_support.c
@@ -0,0 +1,103 @@ @@ -0,0 +1,78 @@
+#include <sys/iosupport.h> +#include <sys/iosupport.h>
+ +
+//---------------------------------------------------------------------------------
+__syscalls_t __syscalls = {
+//---------------------------------------------------------------------------------
+ NULL, // sbrk
+ NULL, // exit
+ NULL, // gettod_r
+ NULL, // lock_init
+ NULL, // lock_acquire
+ NULL, // lock_try_acquire
+ NULL, // lock_release
+ NULL, // lock_close
+ NULL, // lock_init_recursive
+ NULL, // lock_acquire_recursive
+ NULL, // lock_try_acquire_recursive
+ NULL, // lock_release_recursive
+ NULL, // lock_close_recursive
+ NULL, // __getreent
+ NULL, // clock_gettime
+ NULL, // clock_settime
+ NULL, // clock_getres
+ NULL, // nanosleep
+};
+
+void __libc_lock_init(_LOCK_T *lock) { +void __libc_lock_init(_LOCK_T *lock) {
+ +
+ if ( __syscalls.lock_init ) { + if ( __has_syscall(lock_init) ) {
+ __syscalls.lock_init(lock); + __syscall_lock_init(lock);
+ } + }
+
+} +}
+ +
+void __libc_lock_acquire(_LOCK_T *lock ) { +void __libc_lock_acquire(_LOCK_T *lock ) {
+ +
+ if ( __syscalls.lock_acquire) { + if ( __has_syscall(lock_acquire) ) {
+ __syscalls.lock_acquire(lock); + __syscall_lock_acquire(lock);
+ } + }
+} +}
+ +
+int __libc_lock_try_acquire(_LOCK_T *lock ) { +int __libc_lock_try_acquire(_LOCK_T *lock ) {
+ +
+ if ( __syscalls.lock_acquire) { + if ( __has_syscall(lock_acquire) ) {
+ return __syscalls.lock_try_acquire(lock); + return __syscall_lock_try_acquire(lock);
+ } else { + } else {
+ return 0; + return 0;
+ } + }
@@ -7034,15 +7019,15 @@ index 000000000..53fead72a
+ +
+void __libc_lock_release(_LOCK_T *lock ) { +void __libc_lock_release(_LOCK_T *lock ) {
+ +
+ if ( __syscalls.lock_release) { + if ( __has_syscall(lock_release) ) {
+ __syscalls.lock_release(lock); + __syscall_lock_release(lock);
+ } + }
+} +}
+ +
+void __libc_lock_close(_LOCK_T *lock ) { +void __libc_lock_close(_LOCK_T *lock ) {
+ +
+ if ( __syscalls.lock_close) { + if ( __has_syscall(lock_close) ) {
+ __syscalls.lock_close(lock); + __syscall_lock_close(lock);
+ } + }
+} +}
+ +
@@ -7050,23 +7035,23 @@ index 000000000..53fead72a
+ +
+void __libc_lock_init_recursive(_LOCK_RECURSIVE_T *lock) { +void __libc_lock_init_recursive(_LOCK_RECURSIVE_T *lock) {
+ +
+ if ( __syscalls.lock_init_recursive ) { + if ( __has_syscall(lock_init_recursive) ) {
+ __syscalls.lock_init_recursive(lock); + __syscall_lock_init_recursive(lock);
+ } + }
+ +
+} +}
+ +
+void __libc_lock_acquire_recursive(_LOCK_RECURSIVE_T *lock ) { +void __libc_lock_acquire_recursive(_LOCK_RECURSIVE_T *lock ) {
+ +
+ if ( __syscalls.lock_acquire_recursive) { + if ( __has_syscall(lock_acquire_recursive) ) {
+ __syscalls.lock_acquire_recursive(lock); + __syscall_lock_acquire_recursive(lock);
+ } + }
+} +}
+ +
+int __libc_lock_try_acquire_recursive(_LOCK_RECURSIVE_T *lock ) { +int __libc_lock_try_acquire_recursive(_LOCK_RECURSIVE_T *lock ) {
+ +
+ if ( __syscalls.lock_acquire_recursive) { + if ( __has_syscall(lock_acquire_recursive) ) {
+ return __syscalls.lock_try_acquire_recursive(lock); + return __syscall_lock_try_acquire_recursive(lock);
+ } else { + } else {
+ return 0; + return 0;
+ } + }
@@ -7074,18 +7059,17 @@ index 000000000..53fead72a
+ +
+void __libc_lock_release_recursive(_LOCK_RECURSIVE_T *lock ) { +void __libc_lock_release_recursive(_LOCK_RECURSIVE_T *lock ) {
+ +
+ if ( __syscalls.lock_release_recursive) { + if ( __has_syscall(lock_release_recursive) ) {
+ __syscalls.lock_release_recursive(lock); + __syscall_lock_release_recursive(lock);
+ } + }
+} +}
+ +
+void __libc_lock_close_recursive(_LOCK_RECURSIVE_T *lock ) { +void __libc_lock_close_recursive(_LOCK_RECURSIVE_T *lock ) {
+ +
+ if ( __syscalls.lock_close_recursive) { + if ( __has_syscall(lock_close_recursive) ) {
+ __syscalls.lock_close_recursive(lock); + __syscall_lock_close_recursive(lock);
+ } + }
+} +}
+
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 000000000..79484e7f4 index 000000000..79484e7f4
@@ -7408,10 +7392,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 c429dde1c..26fb553a7 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 @@ -693,6 +693,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 +7410,46 @@ 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/reent.h b/newlib/libc/include/reent.h
index 23d572cd3..65310c084 100644
--- a/newlib/libc/include/reent.h
+++ b/newlib/libc/include/reent.h
@@ -150,6 +150,7 @@ extern int _mkdir_r (struct _reent *, const char *, int);
extern int _open_r (struct _reent *, const char *, int, int);
extern _ssize_t _read_r (struct _reent *, int, void *, size_t);
extern int _rename_r (struct _reent *, const char *, const char *);
+extern int _rmdir_r (struct _reent *r, const char *name);
extern void *_sbrk_r (struct _reent *, ptrdiff_t);
extern int _stat_r (struct _reent *, const char *, struct stat *);
extern _CLOCK_T_ _times_r (struct _reent *, struct tms *);
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 7748351f0..7377b2aa3 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 +7462,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 61a6f95d8..34aeaad3d 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 @@
@@ -7520,10 +7542,10 @@ index a3fb5c02c..5debd1525 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 218807178..c9efd7d03 100644 index 45476ce4a..d76706321 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,9 @@ extern "C" { @@ -331,6 +331,9 @@ extern "C" {
# define __SSP_FORTIFY_LEVEL 0 # define __SSP_FORTIFY_LEVEL 0
#endif #endif
@@ -7535,10 +7557,10 @@ index 218807178..c9efd7d03 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 000000000..c190fa37d index 000000000..7b366f593
--- /dev/null --- /dev/null
+++ b/newlib/libc/include/sys/iosupport.h +++ b/newlib/libc/include/sys/iosupport.h
@@ -0,0 +1,112 @@ @@ -0,0 +1,115 @@
+//--------------------------------------------------------------------------------- +//---------------------------------------------------------------------------------
+#ifndef __iosupp_h__ +#ifndef __iosupp_h__
+#define __iosupp_h__ +#define __iosupp_h__
@@ -7611,28 +7633,31 @@ index 000000000..c190fa37d
+ +
+extern const devoptab_t *devoptab_list[]; +extern const devoptab_t *devoptab_list[];
+ +
+typedef struct { +#ifdef _BUILDING_LIBSYSBASE
+ void *(*sbrk_r) (struct _reent *ptr, ptrdiff_t incr); +#define __SYSCALL(_name) __attribute__((weak)) __syscall_##_name
+ void (*exit) ( int rc ); +#define __has_syscall(_name) (&__syscall_##_name)
+ int (*gettod_r) (struct _reent *ptr, struct timeval *tp, struct timezone *tz); +#else
+ void (*lock_init) (_LOCK_T *lock); +#define __SYSCALL(_name) __syscall_##_name
+ void (*lock_acquire) (_LOCK_T *lock); +#endif
+ int (*lock_try_acquire) (_LOCK_T *lock);
+ void (*lock_release) (_LOCK_T *lock);
+ void (*lock_close) (_LOCK_T *lock);
+ void (*lock_init_recursive) (_LOCK_RECURSIVE_T *lock);
+ void (*lock_acquire_recursive) (_LOCK_RECURSIVE_T *lock);
+ int (*lock_try_acquire_recursive) (_LOCK_RECURSIVE_T *lock);
+ void (*lock_release_recursive) (_LOCK_RECURSIVE_T *lock);
+ void (*lock_close_recursive) (_LOCK_RECURSIVE_T *lock);
+ struct _reent *(*getreent) ();
+ int (*clock_gettime)(clockid_t clock_id, struct timespec *tp);
+ int (*clock_settime)(clockid_t clock_id, const struct timespec *tp);
+ int (*clock_getres)(clockid_t clock_id, struct timespec *res);
+ int (*nanosleep)(const struct timespec *req, struct timespec *rem);
+} __syscalls_t;
+ +
+extern __syscalls_t __syscalls; +void *__SYSCALL(sbrk_r) (struct _reent *ptr, ptrdiff_t incr);
+void __SYSCALL(exit) ( int rc );
+int __SYSCALL(gettod_r) (struct _reent *ptr, struct timeval *tp, struct timezone *tz);
+void __SYSCALL(lock_init) (_LOCK_T *lock);
+void __SYSCALL(lock_acquire) (_LOCK_T *lock);
+int __SYSCALL(lock_try_acquire) (_LOCK_T *lock);
+void __SYSCALL(lock_release) (_LOCK_T *lock);
+void __SYSCALL(lock_close) (_LOCK_T *lock);
+void __SYSCALL(lock_init_recursive) (_LOCK_RECURSIVE_T *lock);
+void __SYSCALL(lock_acquire_recursive) (_LOCK_RECURSIVE_T *lock);
+int __SYSCALL(lock_try_acquire_recursive) (_LOCK_RECURSIVE_T *lock);
+void __SYSCALL(lock_release_recursive) (_LOCK_RECURSIVE_T *lock);
+void __SYSCALL(lock_close_recursive) (_LOCK_RECURSIVE_T *lock);
+struct _reent * __SYSCALL(getreent) ();
+int __SYSCALL(clock_gettime) (clockid_t clock_id, struct timespec *tp);
+int __SYSCALL(clock_settime) (clockid_t clock_id, const struct timespec *tp);
+int __SYSCALL(clock_getres) (clockid_t clock_id, struct timespec *res);
+int __SYSCALL(nanosleep) (const struct timespec *req, struct timespec *rem);
+ +
+int AddDevice( const devoptab_t* device); +int AddDevice( const devoptab_t* device);
+int FindDevice(const char* name); +int FindDevice(const char* name);
@@ -7666,7 +7691,7 @@ index 9a6f115a6..142e71d35 100644
#define MAXPATHLEN PATH_MAX #define MAXPATHLEN PATH_MAX
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 74b70e9c0..d8c5410ec 100644 index e4e36170e..5b8d06ed6 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
@@ -7687,7 +7712,7 @@ index 74b70e9c0..d8c5410ec 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 8769112b0..5526e59ee 100644 index 6525272dd..d24673618 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 );
@@ -7770,7 +7795,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 +7907,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)
@@ -7891,10 +7916,10 @@ index 4c343e462..c04493460 100644
return __get_current_locale ()->ctype_ptr; return __get_current_locale ()->ctype_ptr;
} }
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 9bd35e733..731130092 100644 index 2d559464a..1e6625c05 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 @@ -9,7 +9,9 @@ noinst_LIBRARIES = lib.a
lib_a_SOURCES = setjmp.S strcmp.S strcpy.c \ lib_a_SOURCES = setjmp.S strcmp.S strcpy.c \
aeabi_memcpy.c aeabi_memcpy-armv7a.S \ aeabi_memcpy.c aeabi_memcpy-armv7a.S \
aeabi_memmove.c aeabi_memmove-soft.S \ aeabi_memmove.c aeabi_memmove-soft.S \
@@ -7906,10 +7931,10 @@ index 9bd35e733..731130092 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 d9dbcd5c3..43712f813 100644 index 17a46a44d..b319b8349 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) \ @@ -81,10 +81,10 @@ am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT) lib_a-strcmp.$(OBJEXT) \
lib_a-aeabi_memmove.$(OBJEXT) \ lib_a-aeabi_memmove.$(OBJEXT) \
lib_a-aeabi_memmove-soft.$(OBJEXT) \ lib_a-aeabi_memmove-soft.$(OBJEXT) \
lib_a-aeabi_memset.$(OBJEXT) lib_a-aeabi_memset-soft.$(OBJEXT) \ lib_a-aeabi_memset.$(OBJEXT) lib_a-aeabi_memset-soft.$(OBJEXT) \
@@ -7924,7 +7949,7 @@ index d9dbcd5c3..43712f813 100644
lib_a_OBJECTS = $(am_lib_a_OBJECTS) lib_a_OBJECTS = $(am_lib_a_OBJECTS)
DEFAULT_INCLUDES = -I.@am__isrc@ DEFAULT_INCLUDES = -I.@am__isrc@
depcomp = depcomp =
@@ -208,8 +208,8 @@ noinst_LIBRARIES = lib.a @@ -230,8 +230,8 @@ noinst_LIBRARIES = lib.a
lib_a_SOURCES = setjmp.S strcmp.S strcpy.c aeabi_memcpy.c \ lib_a_SOURCES = setjmp.S strcmp.S strcpy.c aeabi_memcpy.c \
aeabi_memcpy-armv7a.S aeabi_memmove.c aeabi_memmove-soft.S \ aeabi_memcpy-armv7a.S aeabi_memmove.c aeabi_memmove-soft.S \
aeabi_memset.c aeabi_memset-soft.S aeabi_memclr.c \ aeabi_memset.c aeabi_memset-soft.S aeabi_memclr.c \
@@ -7935,9 +7960,9 @@ index d9dbcd5c3..43712f813 100644
lib_a_CCASFLAGS = $(AM_CCASFLAGS) lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS) lib_a_CFLAGS = $(AM_CFLAGS)
ACLOCAL_AMFLAGS = -I ../../.. -I ../../../.. ACLOCAL_AMFLAGS = -I ../../.. -I ../../../..
@@ -367,6 +367,12 @@ lib_a-aeabi_memclr.o: aeabi_memclr.c @@ -389,6 +389,12 @@ lib_a-aeabi_memclr.o: aeabi_memclr.c
lib_a-aeabi_memclr.obj: aeabi_memclr.c lib_a-aeabi_memclr.obj: aeabi_memclr.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-aeabi_memclr.obj `if test -f 'aeabi_memclr.c'; then $(CYGPATH_W) 'aeabi_memclr.c'; else $(CYGPATH_W) '$(srcdir)/aeabi_memclr.c'; fi` $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-aeabi_memclr.obj `if test -f 'aeabi_memclr.c'; then $(CYGPATH_W) 'aeabi_memclr.c'; else $(CYGPATH_W) '$(srcdir)/aeabi_memclr.c'; fi`
+lib_a-sync_synchronize.o: sync_synchronize.c +lib_a-sync_synchronize.o: sync_synchronize.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sync_synchronize.o `test -f 'sync_synchronize.c' || echo '$(srcdir)/'`sync_synchronize.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sync_synchronize.o `test -f 'sync_synchronize.c' || echo '$(srcdir)/'`sync_synchronize.c
@@ -7946,7 +7971,7 @@ index d9dbcd5c3..43712f813 100644
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sync_synchronize.obj `if test -f 'sync_synchronize.c'; then $(CYGPATH_W) 'sync_synchronize.c'; else $(CYGPATH_W) '$(srcdir)/sync_synchronize.c'; fi` + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-sync_synchronize.obj `if test -f 'sync_synchronize.c'; then $(CYGPATH_W) 'sync_synchronize.c'; else $(CYGPATH_W) '$(srcdir)/sync_synchronize.c'; fi`
+ +
lib_a-memchr-stub.o: memchr-stub.c lib_a-memchr-stub.o: memchr-stub.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-memchr-stub.o `test -f 'memchr-stub.c' || echo '$(srcdir)/'`memchr-stub.c $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-memchr-stub.o `test -f 'memchr-stub.c' || echo '$(srcdir)/'`memchr-stub.c
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
@@ -8031,7 +8056,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 +8085,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 +8100,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 +8109,43 @@ 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/remove.c b/newlib/libc/stdio/remove.c
index d8dfdbd82..a85b5a99b 100644
--- a/newlib/libc/stdio/remove.c
+++ b/newlib/libc/stdio/remove.c
@@ -57,13 +57,17 @@ Supporting OS subroutine required: <<unlink>>.
#include <_ansi.h>
#include <reent.h>
#include <stdio.h>
+#include <errno.h>
int
_remove_r (struct _reent *ptr,
const char *filename)
{
- if (_unlink_r (ptr, filename) == -1)
- return -1;
+ if (_unlink_r (ptr, filename) == -1) {
+ errno = 0;
+ if (_rmdir_r(ptr, filename) == -1)
+ return -1;
+ }
return 0;
}
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 c1483c0ac..319b1972b 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 +8154,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) { @@ -1431,7 +1433,7 @@ reswitch: switch (ch) {
string: string:
#endif #endif
sign = '\0'; sign = '\0';
@@ -8115,7 +8163,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: @@ -1441,7 +1443,7 @@ string:
size = ((unsigned) prec > 6U) ? 6 : prec; size = ((unsigned) prec > 6U) ? 6 : prec;
} }
else else
@@ -8125,7 +8173,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 037692531..b5e524c53 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.
@@ -8138,7 +8186,7 @@ index 9c38eebf4..fbc8d877d 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 980b31e3b..722be905e 100644 index 7384b37d3..b4e1dbde5 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
@@ -8152,7 +8200,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 e9e00dfec..c38d81e17 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
@@ -8165,38 +8213,6 @@ index ffb6cc85b..db33d4f29 100644
#include <_ansi.h> #include <_ansi.h>
#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
index 88413ce86..24029a6f7 100644
--- a/newlib/libc/stdlib/aligned_alloc.c
+++ b/newlib/libc/stdlib/aligned_alloc.c
@@ -1,5 +1,5 @@
/*-
- * 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 <stdlib.h>
+#include <malloc.h>
+#include <errno.h>
void *
aligned_alloc(size_t alignment, 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
@@ -8236,7 +8252,7 @@ index 000000000..40092f99f
+ +
diff --git a/newlib/libc/sys/arm/sys/lock.h b/newlib/libc/sys/arm/sys/lock.h diff --git a/newlib/libc/sys/arm/sys/lock.h b/newlib/libc/sys/arm/sys/lock.h
new file mode 100644 new file mode 100644
index 000000000..567fed56b index 000000000..a755d6443
--- /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 @@
@@ -8270,10 +8286,10 @@ index 000000000..567fed56b
+extern int __libc_lock_try_acquire_recursive(_LOCK_RECURSIVE_T *lock); +extern int __libc_lock_try_acquire_recursive(_LOCK_RECURSIVE_T *lock);
+ +
+#define __LOCK_INIT(CLASS,NAME) \ +#define __LOCK_INIT(CLASS,NAME) \
+CLASS _LOCK_T NAME = 1; +CLASS _LOCK_T NAME = 0;
+ +
+#define __LOCK_INIT_RECURSIVE(CLASS,NAME) \ +#define __LOCK_INIT_RECURSIVE(CLASS,NAME) \
+CLASS _LOCK_RECURSIVE_T NAME = {1,0,0}; +CLASS _LOCK_RECURSIVE_T NAME = {0,0,0};
+ +
+#define __lock_init(NAME) \ +#define __lock_init(NAME) \
+ __libc_lock_init(&(NAME)) + __libc_lock_init(&(NAME))

View File

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

View File

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

View File

@@ -1,12 +0,0 @@
diff -NBaur binutils-2.31.1/opcodes/ppc-opc.c binutils-2.31.1-ppc/opcodes/ppc-opc.c
--- binutils-2.31.1/opcodes/ppc-opc.c 2018-06-24 19:38:58.000000000 +0100
+++ binutils-2.31.1-ppc/opcodes/ppc-opc.c 2018-11-01 10:59:42.814553627 +0000
@@ -3501,7 +3501,7 @@
#define MFDEC2 (PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE \
| PPC_OPCODE_TITAN)
#define BOOKE PPC_OPCODE_BOOKE
-#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS
+#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_EFS
#define PPCE300 PPC_OPCODE_E300
#define PPCSPE PPC_OPCODE_SPE
#define PPCSPE2 PPC_OPCODE_SPE2

View File

@@ -1,12 +0,0 @@
diff -NBaur binutils-2.34/opcodes/ppc-opc.c binutils-2.34-ppc/opcodes/ppc-opc.c
--- binutils-2.34/opcodes/ppc-opc.c 2020-01-18 13:55:49.000000000 +0000
+++ binutils-2.34-ppc/opcodes/ppc-opc.c 2020-05-22 10:47:37.900308413 +0000
@@ -3747,7 +3747,7 @@
#define MFDEC2 (PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE \
| PPC_OPCODE_TITAN)
#define BOOKE PPC_OPCODE_BOOKE
-#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS
+#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_EFS
#define PPCE300 PPC_OPCODE_E300
#define PPCSPE PPC_OPCODE_SPE
#define PPCSPE2 PPC_OPCODE_SPE2

View File

@@ -0,0 +1,28 @@
diff -NBaur binutils-2.37/libiberty/rust-demangle.c binutils-2.37-new/libiberty/rust-demangle.c
--- binutils-2.37/libiberty/rust-demangle.c 2021-07-15 15:19:46.000000000 +0100
+++ binutils-2.37-new/libiberty/rust-demangle.c 2022-01-01 22:02:21.860422023 +0000
@@ -75,10 +75,10 @@
int version;
/* Recursion depth. */
- uint recursion;
+ unsigned recursion;
/* Maximum number of times demangle_path may be called recursively. */
#define RUST_MAX_RECURSION_COUNT 1024
-#define RUST_NO_RECURSION_LIMIT ((uint) -1)
+#define RUST_NO_RECURSION_LIMIT ((unsigned) -1)
uint64_t bound_lifetime_depth;
};
diff -NBaur binutils-2.37/opcodes/ppc-opc.c binutils-2.37-new/opcodes/ppc-opc.c
--- binutils-2.37/opcodes/ppc-opc.c 2021-07-08 12:37:21.000000000 +0100
+++ binutils-2.37-new/opcodes/ppc-opc.c 2022-01-01 22:02:04.409141184 +0000
@@ -4302,7 +4302,7 @@
#define MFDEC2 (PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE \
| PPC_OPCODE_TITAN)
#define BOOKE PPC_OPCODE_BOOKE
-#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS
+#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_EFS
#define PPCE300 PPC_OPCODE_E300
#define PPCSPE PPC_OPCODE_SPE
#define PPCSPE2 PPC_OPCODE_SPE2

View File

@@ -1,8 +1,7 @@
diff --git a/config/gthr.m4 b/config/gthr.m4 diff -NBaur gcc-12.1.0/config/gthr.m4 gcc-12.1.0-dkppc/config/gthr.m4
index 4b937306ad0..bfd0375bd60 100644 --- gcc-12.1.0/config/gthr.m4 2022-05-06 08:30:56.000000000 +0100
--- a/config/gthr.m4 +++ gcc-12.1.0-dkppc/config/gthr.m4 2022-05-06 19:17:44.784777075 +0100
+++ b/config/gthr.m4 @@ -13,6 +13,7 @@
@@ -13,6 +13,7 @@ AC_DEFUN([GCC_AC_THREAD_HEADER],
case $1 in case $1 in
aix) thread_header=config/rs6000/gthr-aix.h ;; aix) thread_header=config/rs6000/gthr-aix.h ;;
dce) thread_header=config/pa/gthr-dce.h ;; dce) thread_header=config/pa/gthr-dce.h ;;
@@ -10,53 +9,25 @@ index 4b937306ad0..bfd0375bd60 100644
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/gcc/config/i386/host-mingw32.c b/gcc/config/i386/host-mingw32.c diff -NBaur gcc-12.1.0/gcc/config/i386/host-mingw32.cc gcc-12.1.0-dkppc/gcc/config/i386/host-mingw32.cc
index 250fef59b55..36b2239aa5d 100644 --- gcc-12.1.0/gcc/config/i386/host-mingw32.cc 2022-05-06 08:30:56.000000000 +0100
--- a/gcc/config/i386/host-mingw32.c +++ gcc-12.1.0-dkppc/gcc/config/i386/host-mingw32.cc 2022-05-06 19:17:44.784777075 +0100
+++ b/gcc/config/i386/host-mingw32.c @@ -45,7 +45,11 @@
@@ -44,9 +44,6 @@ 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;
diff -NBaur gcc-12.1.0/gcc/config/newlib-stdint.h gcc-12.1.0-dkppc/gcc/config/newlib-stdint.h
@@ -88,9 +85,6 @@ static void * --- gcc-12.1.0/gcc/config/newlib-stdint.h 2022-05-06 08:30:57.000000000 +0100
mingw32_gt_pch_get_address (size_t size, int) +++ gcc-12.1.0-dkppc/gcc/config/newlib-stdint.h 2022-05-06 19:17:44.784777075 +0100
{ @@ -25,7 +25,7 @@
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/config/newlib-stdint.h b/gcc/config/newlib-stdint.h
index 2e086f16de9..1c27c6467bc 100644
--- a/gcc/config/newlib-stdint.h
+++ b/gcc/config/newlib-stdint.h
@@ -25,7 +25,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
/* newlib uses 32-bit long in certain cases for all non-SPU /* newlib uses 32-bit long in certain cases for all non-SPU
targets. */ targets. */
#ifndef STDINT_LONG32 #ifndef STDINT_LONG32
@@ -65,19 +36,18 @@ index 2e086f16de9..1c27c6467bc 100644
#endif #endif
#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 -NBaur gcc-12.1.0/gcc/config/rs6000/rs6000.h gcc-12.1.0-dkppc/gcc/config/rs6000/rs6000.h
index 132ca20fd7d..119ee5bbc8c 100644 --- gcc-12.1.0/gcc/config/rs6000/rs6000.h 2022-05-06 08:30:57.000000000 +0100
--- a/gcc/config/rs6000/rs6000.h +++ gcc-12.1.0-dkppc/gcc/config/rs6000/rs6000.h 2022-05-06 19:22:10.793624730 +0100
+++ b/gcc/config/rs6000/rs6000.h @@ -196,6 +196,7 @@
@@ -196,6 +196,7 @@ ASM_OPT_ANY
/* -mcpu=native handling only makes sense with compiler running on /* -mcpu=native handling only makes sense with compiler running on
an PowerPC chip. If changing this condition, also change an PowerPC chip. If changing this condition, also change
the condition in driver-rs6000.c. */ the condition in driver-rs6000.cc. */
+#if 0 +#if 0
#if defined(__powerpc__) || defined(__POWERPC__) || defined(_AIX) #if defined(__powerpc__) || defined(__POWERPC__) || defined(_AIX)
/* In driver-rs6000.c. */ /* In driver-rs6000.cc. */
extern const char *host_detect_local_cpu (int argc, const char **argv); extern const char *host_detect_local_cpu (int argc, const char **argv);
@@ -207,6 +208,8 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); @@ -207,6 +208,8 @@
#else #else
#define ASM_CPU_NATIVE_SPEC "%(asm_default)" #define ASM_CPU_NATIVE_SPEC "%(asm_default)"
#endif #endif
@@ -86,11 +56,10 @@ index 132ca20fd7d..119ee5bbc8c 100644
#ifndef CC1_CPU_SPEC #ifndef CC1_CPU_SPEC
#ifdef HAVE_LOCAL_CPU_DETECT #ifdef HAVE_LOCAL_CPU_DETECT
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h diff -NBaur gcc-12.1.0/gcc/config/rs6000/sysv4.h gcc-12.1.0-dkppc/gcc/config/rs6000/sysv4.h
index 9ade72114e9..cede792d3a7 100644 --- gcc-12.1.0/gcc/config/rs6000/sysv4.h 2022-05-06 08:30:57.000000000 +0100
--- a/gcc/config/rs6000/sysv4.h +++ gcc-12.1.0-dkppc/gcc/config/rs6000/sysv4.h 2022-05-06 19:17:44.784777075 +0100
+++ b/gcc/config/rs6000/sysv4.h @@ -589,7 +589,11 @@
@@ -590,7 +590,11 @@ GNU_USER_TARGET_CC1_SPEC
/* Default starting address if specified. */ /* Default starting address if specified. */
#define LINK_START_SPEC "\ #define LINK_START_SPEC "\
@@ -103,7 +72,7 @@ index 9ade72114e9..cede792d3a7 100644
myellowknife : %(link_start_yellowknife) ; \ myellowknife : %(link_start_yellowknife) ; \
mmvme : %(link_start_mvme) ; \ mmvme : %(link_start_mvme) ; \
msim : %(link_start_sim) ; \ msim : %(link_start_sim) ; \
@@ -621,7 +625,8 @@ GNU_USER_TARGET_CC1_SPEC @@ -620,7 +624,8 @@
/* Any specific OS flags. */ /* Any specific OS flags. */
#define LINK_OS_SPEC "\ #define LINK_OS_SPEC "\
@@ -113,7 +82,7 @@ index 9ade72114e9..cede792d3a7 100644
myellowknife : %(link_os_yellowknife) ; \ myellowknife : %(link_os_yellowknife) ; \
mmvme : %(link_os_mvme) ; \ mmvme : %(link_os_mvme) ; \
msim : %(link_os_sim) ; \ msim : %(link_os_sim) ; \
@@ -636,7 +641,10 @@ GNU_USER_TARGET_CC1_SPEC @@ -635,7 +640,10 @@
/* Override rs6000.h definition. */ /* Override rs6000.h definition. */
#undef CPP_SPEC #undef CPP_SPEC
#define CPP_SPEC "%{posix: -D_POSIX_SOURCE} \ #define CPP_SPEC "%{posix: -D_POSIX_SOURCE} \
@@ -125,7 +94,7 @@ index 9ade72114e9..cede792d3a7 100644
myellowknife : %(cpp_os_yellowknife) ; \ myellowknife : %(cpp_os_yellowknife) ; \
mmvme : %(cpp_os_mvme) ; \ mmvme : %(cpp_os_mvme) ; \
msim : %(cpp_os_sim) ; \ msim : %(cpp_os_sim) ; \
@@ -650,7 +658,10 @@ GNU_USER_TARGET_CC1_SPEC @@ -649,7 +657,10 @@
#undef STARTFILE_SPEC #undef STARTFILE_SPEC
#define STARTFILE_SPEC "\ #define STARTFILE_SPEC "\
@@ -137,7 +106,7 @@ index 9ade72114e9..cede792d3a7 100644
myellowknife : %(startfile_yellowknife) ; \ myellowknife : %(startfile_yellowknife) ; \
mmvme : %(startfile_mvme) ; \ mmvme : %(startfile_mvme) ; \
msim : %(startfile_sim) ; \ msim : %(startfile_sim) ; \
@@ -664,7 +675,8 @@ GNU_USER_TARGET_CC1_SPEC @@ -663,7 +674,8 @@
#undef LIB_SPEC #undef LIB_SPEC
#define LIB_SPEC "\ #define LIB_SPEC "\
@@ -147,7 +116,7 @@ index 9ade72114e9..cede792d3a7 100644
myellowknife : %(lib_yellowknife) ; \ myellowknife : %(lib_yellowknife) ; \
mmvme : %(lib_mvme) ; \ mmvme : %(lib_mvme) ; \
msim : %(lib_sim) ; \ msim : %(lib_sim) ; \
@@ -674,11 +686,12 @@ GNU_USER_TARGET_CC1_SPEC @@ -673,11 +685,12 @@
mcall-openbsd: %(lib_openbsd) ; \ mcall-openbsd: %(lib_openbsd) ; \
: %(lib_default) }" : %(lib_default) }"
@@ -162,7 +131,7 @@ index 9ade72114e9..cede792d3a7 100644
myellowknife : %(endfile_yellowknife) ; \ myellowknife : %(endfile_yellowknife) ; \
mmvme : %(endfile_mvme) ; \ mmvme : %(endfile_mvme) ; \
msim : %(endfile_sim) ; \ msim : %(endfile_sim) ; \
@@ -694,16 +707,27 @@ GNU_USER_TARGET_CC1_SPEC @@ -693,16 +706,27 @@
/* Motorola ADS support. */ /* Motorola ADS support. */
#define LIB_ADS_SPEC "--start-group -lads -lc --end-group" #define LIB_ADS_SPEC "--start-group -lads -lc --end-group"
@@ -190,7 +159,7 @@ index 9ade72114e9..cede792d3a7 100644
/* Motorola Yellowknife support. */ /* Motorola Yellowknife support. */
#define LIB_YELLOWKNIFE_SPEC "--start-group -lyk -lc --end-group" #define LIB_YELLOWKNIFE_SPEC "--start-group -lyk -lc --end-group"
@@ -851,6 +875,7 @@ ncrtn.o%s" @@ -850,6 +874,7 @@
#undef SUBTARGET_EXTRA_SPECS #undef SUBTARGET_EXTRA_SPECS
#define SUBTARGET_EXTRA_SPECS \ #define SUBTARGET_EXTRA_SPECS \
{ "crtsavres_default", CRTSAVRES_DEFAULT_SPEC }, \ { "crtsavres_default", CRTSAVRES_DEFAULT_SPEC }, \
@@ -198,7 +167,7 @@ index 9ade72114e9..cede792d3a7 100644
{ "lib_ads", LIB_ADS_SPEC }, \ { "lib_ads", LIB_ADS_SPEC }, \
{ "lib_yellowknife", LIB_YELLOWKNIFE_SPEC }, \ { "lib_yellowknife", LIB_YELLOWKNIFE_SPEC }, \
{ "lib_mvme", LIB_MVME_SPEC }, \ { "lib_mvme", LIB_MVME_SPEC }, \
@@ -860,6 +885,7 @@ ncrtn.o%s" @@ -859,6 +884,7 @@
{ "lib_netbsd", LIB_NETBSD_SPEC }, \ { "lib_netbsd", LIB_NETBSD_SPEC }, \
{ "lib_openbsd", LIB_OPENBSD_SPEC }, \ { "lib_openbsd", LIB_OPENBSD_SPEC }, \
{ "lib_default", LIB_DEFAULT_SPEC }, \ { "lib_default", LIB_DEFAULT_SPEC }, \
@@ -206,7 +175,7 @@ index 9ade72114e9..cede792d3a7 100644
{ "startfile_ads", STARTFILE_ADS_SPEC }, \ { "startfile_ads", STARTFILE_ADS_SPEC }, \
{ "startfile_yellowknife", STARTFILE_YELLOWKNIFE_SPEC }, \ { "startfile_yellowknife", STARTFILE_YELLOWKNIFE_SPEC }, \
{ "startfile_mvme", STARTFILE_MVME_SPEC }, \ { "startfile_mvme", STARTFILE_MVME_SPEC }, \
@@ -869,6 +895,7 @@ ncrtn.o%s" @@ -868,6 +894,7 @@
{ "startfile_netbsd", STARTFILE_NETBSD_SPEC }, \ { "startfile_netbsd", STARTFILE_NETBSD_SPEC }, \
{ "startfile_openbsd", STARTFILE_OPENBSD_SPEC }, \ { "startfile_openbsd", STARTFILE_OPENBSD_SPEC }, \
{ "startfile_default", STARTFILE_DEFAULT_SPEC }, \ { "startfile_default", STARTFILE_DEFAULT_SPEC }, \
@@ -214,7 +183,7 @@ index 9ade72114e9..cede792d3a7 100644
{ "endfile_ads", ENDFILE_ADS_SPEC }, \ { "endfile_ads", ENDFILE_ADS_SPEC }, \
{ "endfile_yellowknife", ENDFILE_YELLOWKNIFE_SPEC }, \ { "endfile_yellowknife", ENDFILE_YELLOWKNIFE_SPEC }, \
{ "endfile_mvme", ENDFILE_MVME_SPEC }, \ { "endfile_mvme", ENDFILE_MVME_SPEC }, \
@@ -880,7 +907,11 @@ ncrtn.o%s" @@ -879,7 +906,11 @@
{ "endfile_default", ENDFILE_DEFAULT_SPEC }, \ { "endfile_default", ENDFILE_DEFAULT_SPEC }, \
{ "link_shlib", LINK_SHLIB_SPEC }, \ { "link_shlib", LINK_SHLIB_SPEC }, \
{ "link_start", LINK_START_SPEC }, \ { "link_start", LINK_START_SPEC }, \
@@ -226,7 +195,7 @@ index 9ade72114e9..cede792d3a7 100644
{ "link_start_yellowknife", LINK_START_YELLOWKNIFE_SPEC }, \ { "link_start_yellowknife", LINK_START_YELLOWKNIFE_SPEC }, \
{ "link_start_mvme", LINK_START_MVME_SPEC }, \ { "link_start_mvme", LINK_START_MVME_SPEC }, \
{ "link_start_sim", LINK_START_SIM_SPEC }, \ { "link_start_sim", LINK_START_SIM_SPEC }, \
@@ -890,6 +921,7 @@ ncrtn.o%s" @@ -889,6 +920,7 @@
{ "link_start_openbsd", LINK_START_OPENBSD_SPEC }, \ { "link_start_openbsd", LINK_START_OPENBSD_SPEC }, \
{ "link_start_default", LINK_START_DEFAULT_SPEC }, \ { "link_start_default", LINK_START_DEFAULT_SPEC }, \
{ "link_os", LINK_OS_SPEC }, \ { "link_os", LINK_OS_SPEC }, \
@@ -234,7 +203,7 @@ index 9ade72114e9..cede792d3a7 100644
{ "link_os_ads", LINK_OS_ADS_SPEC }, \ { "link_os_ads", LINK_OS_ADS_SPEC }, \
{ "link_os_yellowknife", LINK_OS_YELLOWKNIFE_SPEC }, \ { "link_os_yellowknife", LINK_OS_YELLOWKNIFE_SPEC }, \
{ "link_os_mvme", LINK_OS_MVME_SPEC }, \ { "link_os_mvme", LINK_OS_MVME_SPEC }, \
@@ -901,6 +933,9 @@ ncrtn.o%s" @@ -900,6 +932,9 @@
{ "link_os_default", LINK_OS_DEFAULT_SPEC }, \ { "link_os_default", LINK_OS_DEFAULT_SPEC }, \
{ "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \ { "cc1_secure_plt_default", CC1_SECURE_PLT_DEFAULT_SPEC }, \
{ "link_secure_plt", LINK_SECURE_PLT_SPEC }, \ { "link_secure_plt", LINK_SECURE_PLT_SPEC }, \
@@ -244,11 +213,10 @@ index 9ade72114e9..cede792d3a7 100644
{ "cpp_os_ads", CPP_OS_ADS_SPEC }, \ { "cpp_os_ads", CPP_OS_ADS_SPEC }, \
{ "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \ { "cpp_os_yellowknife", CPP_OS_YELLOWKNIFE_SPEC }, \
{ "cpp_os_mvme", CPP_OS_MVME_SPEC }, \ { "cpp_os_mvme", CPP_OS_MVME_SPEC }, \
diff --git a/gcc/config/rs6000/sysv4.opt b/gcc/config/rs6000/sysv4.opt diff -NBaur gcc-12.1.0/gcc/config/rs6000/sysv4.opt gcc-12.1.0-dkppc/gcc/config/rs6000/sysv4.opt
index b49ba261f3c..4eda763dfca 100644 --- gcc-12.1.0/gcc/config/rs6000/sysv4.opt 2022-05-06 08:30:57.000000000 +0100
--- a/gcc/config/rs6000/sysv4.opt +++ gcc-12.1.0-dkppc/gcc/config/rs6000/sysv4.opt 2022-05-06 19:17:44.784777075 +0100
+++ b/gcc/config/rs6000/sysv4.opt @@ -124,6 +124,26 @@
@@ -124,6 +124,26 @@ mads
Target RejectNegative Target RejectNegative
Link with libads.a, libc.a and crt0.o. Link with libads.a, libc.a and crt0.o.
@@ -275,11 +243,10 @@ index b49ba261f3c..4eda763dfca 100644
myellowknife myellowknife
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 -NBaur gcc-12.1.0/gcc/configure gcc-12.1.0-dkppc/gcc/configure
index eb6061c1631..4c6e993ca3a 100755 --- gcc-12.1.0/gcc/configure 2022-05-06 08:30:57.000000000 +0100
--- a/gcc/configure +++ gcc-12.1.0-dkppc/gcc/configure 2022-05-06 19:17:44.788859483 +0100
+++ b/gcc/configure @@ -12884,7 +12884,7 @@
@@ -12208,7 +12208,7 @@ case ${enable_threads} in
# default # default
target_thread_file='single' target_thread_file='single'
;; ;;
@@ -288,11 +255,10 @@ index eb6061c1631..4c6e993ca3a 100755
single | tpf | vxworks | win32) single | tpf | vxworks | win32)
target_thread_file=${enable_threads} target_thread_file=${enable_threads}
;; ;;
diff --git a/gcc/configure.ac b/gcc/configure.ac diff -NBaur gcc-12.1.0/gcc/configure.ac gcc-12.1.0-dkppc/gcc/configure.ac
index 715fcba0482..779743b69ee 100644 --- gcc-12.1.0/gcc/configure.ac 2022-05-06 08:30:57.000000000 +0100
--- a/gcc/configure.ac +++ gcc-12.1.0-dkppc/gcc/configure.ac 2022-05-06 19:17:44.788859483 +0100
+++ b/gcc/configure.ac @@ -1994,7 +1994,7 @@
@@ -1800,7 +1800,7 @@ case ${enable_threads} in
# default # default
target_thread_file='single' target_thread_file='single'
;; ;;
@@ -301,10 +267,9 @@ index 715fcba0482..779743b69ee 100644
single | tpf | vxworks | win32) single | tpf | vxworks | win32)
target_thread_file=${enable_threads} target_thread_file=${enable_threads}
;; ;;
diff --git a/libgcc/config/rs6000/crtrestvr.S b/libgcc/config/rs6000/crtrestvr.S diff -NBaur gcc-12.1.0/libgcc/config/rs6000/crtrestvr.S gcc-12.1.0-dkppc/libgcc/config/rs6000/crtrestvr.S
index 260fe4d1af6..664808cd19c 100644 --- gcc-12.1.0/libgcc/config/rs6000/crtrestvr.S 2022-05-06 08:30:59.000000000 +0100
--- a/libgcc/config/rs6000/crtrestvr.S +++ gcc-12.1.0-dkppc/libgcc/config/rs6000/crtrestvr.S 2022-05-06 19:17:44.792941894 +0100
+++ b/libgcc/config/rs6000/crtrestvr.S
@@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
/* On PowerPC64 Linux, these functions are provided by the linker. */ /* On PowerPC64 Linux, these functions are provided by the linker. */
@@ -314,15 +279,14 @@ index 260fe4d1af6..664808cd19c 100644
#undef __ALTIVEC__ #undef __ALTIVEC__
#define __ALTIVEC__ 1 #define __ALTIVEC__ 1
#include "ppc-asm.h" #include "ppc-asm.h"
@@ -86,3 +86,4 @@ FUNC_END(_restvr_20) @@ -86,3 +86,4 @@
CFI_ENDPROC CFI_ENDPROC
#endif #endif
+#endif +#endif
diff --git a/libgcc/config/rs6000/crtsavevr.S b/libgcc/config/rs6000/crtsavevr.S diff -NBaur gcc-12.1.0/libgcc/config/rs6000/crtsavevr.S gcc-12.1.0-dkppc/libgcc/config/rs6000/crtsavevr.S
index 7e1d5c5df98..2c62480d165 100644 --- gcc-12.1.0/libgcc/config/rs6000/crtsavevr.S 2022-05-06 08:30:59.000000000 +0100
--- a/libgcc/config/rs6000/crtsavevr.S +++ gcc-12.1.0-dkppc/libgcc/config/rs6000/crtsavevr.S 2022-05-06 19:17:44.792941894 +0100
+++ b/libgcc/config/rs6000/crtsavevr.S
@@ -24,7 +24,7 @@ @@ -24,7 +24,7 @@
/* On PowerPC64 Linux, these functions are provided by the linker. */ /* On PowerPC64 Linux, these functions are provided by the linker. */
@@ -332,16 +296,14 @@ index 7e1d5c5df98..2c62480d165 100644
#undef __ALTIVEC__ #undef __ALTIVEC__
#define __ALTIVEC__ 1 #define __ALTIVEC__ 1
#include "ppc-asm.h" #include "ppc-asm.h"
@@ -86,3 +86,4 @@ FUNC_END(_savevr_20) @@ -86,3 +86,4 @@
CFI_ENDPROC CFI_ENDPROC
#endif #endif
+#endif +#endif
diff --git a/libgcc/config/rs6000/gthr-dkp.c b/libgcc/config/rs6000/gthr-dkp.c diff -NBaur gcc-12.1.0/libgcc/config/rs6000/gthr-dkp.c gcc-12.1.0-dkppc/libgcc/config/rs6000/gthr-dkp.c
new file mode 100644 --- gcc-12.1.0/libgcc/config/rs6000/gthr-dkp.c 1970-01-01 01:00:00.000000000 +0100
index 00000000000..26180aa7f36 +++ gcc-12.1.0-dkppc/libgcc/config/rs6000/gthr-dkp.c 2022-05-06 19:17:44.792941894 +0100
--- /dev/null
+++ b/libgcc/config/rs6000/gthr-dkp.c
@@ -0,0 +1,319 @@ @@ -0,0 +1,319 @@
+/* Threads compatibility routines for libgcc2 and libobjc. */ +/* Threads compatibility routines for libgcc2 and libobjc. */
+/* Compile this one with gcc. */ +/* Compile this one with gcc. */
@@ -662,11 +624,9 @@ index 00000000000..26180aa7f36
+ +
+ return __gthr_impl_cond_destroy(__cond); + return __gthr_impl_cond_destroy(__cond);
+} +}
diff --git a/libgcc/config/rs6000/gthr-dkp.h b/libgcc/config/rs6000/gthr-dkp.h diff -NBaur gcc-12.1.0/libgcc/config/rs6000/gthr-dkp.h gcc-12.1.0-dkppc/libgcc/config/rs6000/gthr-dkp.h
new file mode 100644 --- gcc-12.1.0/libgcc/config/rs6000/gthr-dkp.h 1970-01-01 01:00:00.000000000 +0100
index 00000000000..72ecf82ab83 +++ gcc-12.1.0-dkppc/libgcc/config/rs6000/gthr-dkp.h 2022-05-06 19:17:44.792941894 +0100
--- /dev/null
+++ b/libgcc/config/rs6000/gthr-dkp.h
@@ -0,0 +1,187 @@ @@ -0,0 +1,187 @@
+/* Threads compatibility routines for libgcc2 and libobjc. */ +/* Threads compatibility routines for libgcc2 and libobjc. */
+/* Compile this one with gcc. */ +/* Compile this one with gcc. */
@@ -855,21 +815,19 @@ index 00000000000..72ecf82ab83
+#endif +#endif
+ +
+#endif /* ! _GLIBCXX_GCC_GTHR_DKP_H */ +#endif /* ! _GLIBCXX_GCC_GTHR_DKP_H */
diff --git a/libgcc/config/rs6000/t-ppccomm b/libgcc/config/rs6000/t-ppccomm diff -NBaur gcc-12.1.0/libgcc/config/rs6000/t-ppccomm gcc-12.1.0-dkppc/libgcc/config/rs6000/t-ppccomm
index fb812d3801f..7f6669d530f 100644 --- gcc-12.1.0/libgcc/config/rs6000/t-ppccomm 2022-05-06 08:30:59.000000000 +0100
--- a/libgcc/config/rs6000/t-ppccomm +++ gcc-12.1.0-dkppc/libgcc/config/rs6000/t-ppccomm 2022-05-06 19:17:44.792941894 +0100
+++ b/libgcc/config/rs6000/t-ppccomm
@@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
LIB2ADD += $(srcdir)/config/rs6000/ibm-ldouble.c \ LIB2ADD += $(srcdir)/config/rs6000/ibm-ldouble.c \
+ $(srcdir)/config/rs6000/gthr-dkp.c \ + $(srcdir)/config/rs6000/gthr-dkp.c \
$(srcdir)/config/rs6000/tramp.S $(srcdir)/config/rs6000/tramp.S
# This can't end up in shared libgcc # This can't end up in shared libgcc
diff --git a/libgcc/configure b/libgcc/configure diff -NBaur gcc-12.1.0/libgcc/configure gcc-12.1.0-dkppc/libgcc/configure
index 26bf75789e0..1f663d2cfb0 100755 --- gcc-12.1.0/libgcc/configure 2022-05-06 08:30:59.000000000 +0100
--- a/libgcc/configure +++ gcc-12.1.0-dkppc/libgcc/configure 2022-05-06 19:17:44.792941894 +0100
+++ b/libgcc/configure @@ -5689,6 +5689,7 @@
@@ -5640,6 +5640,7 @@ tm_file="${tm_file_}"
case $target_thread_file in case $target_thread_file in
aix) thread_header=config/rs6000/gthr-aix.h ;; aix) thread_header=config/rs6000/gthr-aix.h ;;
dce) thread_header=config/pa/gthr-dce.h ;; dce) thread_header=config/pa/gthr-dce.h ;;
@@ -877,11 +835,10 @@ 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 diff -NBaur gcc-12.1.0/libgcc/crtstuff.c gcc-12.1.0-dkppc/libgcc/crtstuff.c
index 3f769a1c660..e005d8304b7 100644 --- gcc-12.1.0/libgcc/crtstuff.c 2022-05-06 08:30:59.000000000 +0100
--- a/libgcc/crtstuff.c +++ gcc-12.1.0-dkppc/libgcc/crtstuff.c 2022-05-06 19:17:44.792941894 +0100
+++ b/libgcc/crtstuff.c @@ -325,7 +325,7 @@
@@ -325,7 +325,7 @@ register_tm_clones (void)
#ifdef OBJECT_FORMAT_ELF #ifdef OBJECT_FORMAT_ELF
@@ -890,11 +847,10 @@ index 3f769a1c660..e005d8304b7 100644
/* Declare the __dso_handle variable. It should have a unique value /* Declare the __dso_handle variable. It should have a unique value
in every shared-object; in a main program its value is zero. The in every shared-object; in a main program its value is zero. The
object should in any case be protected. This means the instance object should in any case be protected. This means the instance
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure diff -NBaur gcc-12.1.0/libstdc++-v3/configure gcc-12.1.0-dkppc/libstdc++-v3/configure
index 9f9c5a2419a..c9bb6c548be 100755 --- gcc-12.1.0/libstdc++-v3/configure 2022-05-06 08:31:00.000000000 +0100
--- a/libstdc++-v3/configure +++ gcc-12.1.0-dkppc/libstdc++-v3/configure 2022-05-06 19:17:44.801106712 +0100
+++ b/libstdc++-v3/configure @@ -15765,6 +15765,7 @@
@@ -15637,6 +15637,7 @@ $as_echo "$target_thread_file" >&6; }
case $target_thread_file in case $target_thread_file in
aix) thread_header=config/rs6000/gthr-aix.h ;; aix) thread_header=config/rs6000/gthr-aix.h ;;
dce) thread_header=config/pa/gthr-dce.h ;; dce) thread_header=config/pa/gthr-dce.h ;;

View File

@@ -1,60 +0,0 @@
diff -NBaur gdb-8.2.1/gdb/dtrace-probe.c gdb-8.2.1-apple/gdb/dtrace-probe.c
--- gdb-8.2.1/gdb/dtrace-probe.c 2018-12-23 05:51:54.000000000 +0000
+++ gdb-8.2.1-apple/gdb/dtrace-probe.c 2019-02-19 17:30:16.449175937 +0000
@@ -100,7 +100,7 @@
/* 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 -NBaur gdb-8.2.1/gdb/probe.c gdb-8.2.1-apple/gdb/probe.c
--- gdb-8.2.1/gdb/probe.c 2018-12-23 05:51:54.000000000 +0000
+++ gdb-8.2.1-apple/gdb/probe.c 2019-02-19 17:31:05.266578008 +0000
@@ -60,7 +60,7 @@
/* 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 -NBaur gdb-8.2.1/gdb/record-btrace.c gdb-8.2.1-apple/gdb/record-btrace.c
--- gdb-8.2.1/gdb/record-btrace.c 2018-12-23 05:51:54.000000000 +0000
+++ gdb-8.2.1-apple/gdb/record-btrace.c 2019-02-19 17:31:33.301731324 +0000
@@ -144,7 +144,7 @@
/* 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 -NBaur gdb-8.2.1/gdb/stap-probe.c gdb-8.2.1-apple/gdb/stap-probe.c
--- gdb-8.2.1/gdb/stap-probe.c 2018-12-23 05:51:54.000000000 +0000
+++ gdb-8.2.1-apple/gdb/stap-probe.c 2019-02-19 17:29:35.744567941 +0000
@@ -119,7 +119,7 @@
/* 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 -NBaur gdb-8.2.1/gdb/tui/tui-hooks.c gdb-8.2.1-apple/gdb/tui/tui-hooks.c
--- gdb-8.2.1/gdb/tui/tui-hooks.c 2018-12-23 05:51:54.000000000 +0000
+++ gdb-8.2.1-apple/gdb/tui/tui-hooks.c 2019-02-19 17:28:53.178460364 +0000
@@ -205,7 +205,7 @@
/* 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 e70c57d89..ac5c745f9 100755
--- a/libgloss/configure --- a/libgloss/configure
+++ b/libgloss/configure +++ b/libgloss/configure
@@ -2604,6 +2604,8 @@ if test "${config_libnosys}" = "true"; then @@ -2787,6 +2787,8 @@ if test "${config_libnosys}" = "true"; then
fi fi
@@ -11,12 +11,12 @@ index 0d2918cee..bccfb07b4 100755
DEPDIR="${am__leading_dot}deps" DEPDIR="${am__leading_dot}deps"
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.ac b/libgloss/configure.ac
index f38d5298e..db6b33ab8 100644 index 0fbe99526..42ea1d2ed 100644
--- a/libgloss/configure.in --- a/libgloss/configure.ac
+++ b/libgloss/configure.in +++ b/libgloss/configure.ac
@@ -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.
AC_PREREQ(2.59) AC_PREREQ(2.69)dnl
AC_INIT([libgloss],[LIBGLOSS_VERSION]) AC_INIT([libgloss],[LIBGLOSS_VERSION])
AC_CONFIG_SRCDIR([libnosys]) AC_CONFIG_SRCDIR([libnosys])
+AC_CONFIG_SRCDIR([libsysbase]) +AC_CONFIG_SRCDIR([libsysbase])
@@ -33,7 +33,7 @@ index f38d5298e..db6b33ab8 100644
case "${target}" in case "${target}" in
aarch64*-*-*) aarch64*-*-*)
AC_CONFIG_SUBDIRS(aarch64) AC_CONFIG_SUBDIRS(aarch64)
@@ -194,6 +198,10 @@ if test "${config_libnosys}" = "true"; then @@ -197,6 +201,10 @@ if test "${config_libnosys}" = "true"; then
AC_CONFIG_SUBDIRS([libnosys]) AC_CONFIG_SUBDIRS([libnosys])
fi fi
@@ -6680,10 +6680,10 @@ index 000000000..1d7b7e8e7
+} +}
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 000000000..2692a2997 index 000000000..b8640b87d
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/rmdir.c +++ b/libgloss/libsysbase/rmdir.c
@@ -0,0 +1,25 @@ @@ -0,0 +1,34 @@
+#include "config.h" +#include "config.h"
+#include <_ansi.h> +#include <_ansi.h>
+#include <_syslist.h> +#include <_syslist.h>
@@ -6691,24 +6691,33 @@ index 000000000..2692a2997
+#include <errno.h> +#include <errno.h>
+#include <sys/iosupport.h> +#include <sys/iosupport.h>
+ +
+int rmdir (const char *name) { +int _rmdir_r (struct _reent *ptr, const char *name) {
+ struct _reent *r = _REENT;
+ int dev,ret=-1; + int dev,ret=-1;
+ +
+ dev = FindDevice(name); + dev = FindDevice(name);
+ if(dev!=-1) { + if(dev!=-1) {
+ if(devoptab_list[dev]->rmdir_r) { + if(devoptab_list[dev]->rmdir_r) {
+ r->deviceData = devoptab_list[dev]->deviceData; + ptr->deviceData = devoptab_list[dev]->deviceData;
+ ret = devoptab_list[dev]->rmdir_r(r,name); + ret = devoptab_list[dev]->rmdir_r(ptr,name);
+ } else { + } else {
+ r->_errno = ENOSYS; + ptr->_errno = ENOSYS;
+ } + }
+ } else { + } else {
+ r->_errno = ENODEV; + ptr->_errno = ENODEV;
+ } + }
+ +
+ return ret; + return ret;
+} +}
+
+#ifndef _REENT_ONLY
+
+int
+rmdir (const char *filename)
+{
+ return _rmdir_r (_REENT, filename);
+}
+
+#endif
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 000000000..83d922d85 index 000000000..83d922d85
@@ -7372,15 +7381,16 @@ index 000000000..bd25d775d
+ exit ( main(__system_argv->argc,__system_argv->argv) ); + exit ( main(__system_argv->argc,__system_argv->argv) );
+} +}
diff --git a/newlib/configure.host b/newlib/configure.host diff --git a/newlib/configure.host b/newlib/configure.host
index a84c0c80a..0921e00be 100644 index c429dde1c..350dbc8f0 100644
--- a/newlib/configure.host --- a/newlib/configure.host
+++ b/newlib/configure.host +++ b/newlib/configure.host
@@ -853,7 +853,12 @@ newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DEXIT_PROVID @@ -863,7 +863,13 @@ newlib_cflags="${newlib_cflags} -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DEXIT_PROVID
default_newlib_io_long_long="yes" default_newlib_io_long_long="yes"
newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES"
;; ;;
- powerpc*-*-eabi* | \ - powerpc*-*-eabi* | \
+ powerpc*-*-eabi*) + powerpc*-*-eabi*)
+ default_newlib_io_c99_formats="yes"
+ default_newlib_io_long_long="yes" + default_newlib_io_long_long="yes"
+ newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED -D__DEFAULT_UTF8__" + newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED -D__DEFAULT_UTF8__"
+ newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections" + newlib_cflags="${newlib_cflags} -ffunction-sections -fdata-sections"
@@ -7389,6 +7399,44 @@ index a84c0c80a..0921e00be 100644
powerpc*-*-elf* | \ powerpc*-*-elf* | \
powerpc*-*-linux* | \ powerpc*-*-linux* | \
powerpc*-*-rtem* | \ powerpc*-*-rtem* | \
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/reent.h b/newlib/libc/include/reent.h
index 23d572cd3..65310c084 100644
--- a/newlib/libc/include/reent.h
+++ b/newlib/libc/include/reent.h
@@ -150,6 +150,7 @@ extern int _mkdir_r (struct _reent *, const char *, int);
extern int _open_r (struct _reent *, const char *, int, int);
extern _ssize_t _read_r (struct _reent *, int, void *, size_t);
extern int _rename_r (struct _reent *, const char *, const char *);
+extern int _rmdir_r (struct _reent *r, const char *name);
extern void *_sbrk_r (struct _reent *, ptrdiff_t);
extern int _stat_r (struct _reent *, const char *, struct stat *);
extern _CLOCK_T_ _times_r (struct _reent *, struct tms *);
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 a3fb5c02c..adb8e1083 100644 index a3fb5c02c..adb8e1083 100644
--- a/newlib/libc/include/sys/dirent.h --- a/newlib/libc/include/sys/dirent.h
@@ -7453,10 +7501,10 @@ index a3fb5c02c..adb8e1083 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 218807178..c9efd7d03 100644 index 45476ce4a..d76706321 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,9 @@ extern "C" { @@ -331,6 +331,9 @@ extern "C" {
# define __SSP_FORTIFY_LEVEL 0 # define __SSP_FORTIFY_LEVEL 0
#endif #endif
@@ -7590,7 +7638,7 @@ index 000000000..9bec9e473
+#endif // __iosupp_h__ +#endif // __iosupp_h__
+//--------------------------------------------------------------------------------- +//---------------------------------------------------------------------------------
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 74b70e9c0..d8c5410ec 100644 index e4e36170e..5b8d06ed6 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
@@ -7611,7 +7659,7 @@ index 74b70e9c0..d8c5410ec 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 8769112b0..5526e59ee 100644 index 6525272dd..d24673618 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 );
@@ -7668,10 +7716,10 @@ index 000000000..380329d34
+#endif // _SYS_STATVFS_H +#endif // _SYS_STATVFS_H
\ No newline at end of file \ No newline at end of file
diff --git a/newlib/libc/include/sys/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 ba9dbd667..93ed11a42 100644 index c872d2018..9ccdbc51a 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
@@ -44,12 +44,12 @@ @@ -40,12 +40,12 @@
#define LINK_MAX 32767 /* max file link count */ #define LINK_MAX 32767 /* max file link count */
#define MAX_CANON 255 /* max bytes in term canon input line */ #define MAX_CANON 255 /* max bytes in term canon input line */
#define MAX_INPUT 255 /* max bytes in terminal input */ #define MAX_INPUT 255 /* max bytes in terminal input */
@@ -7713,7 +7761,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..835b3a712 100644 index 968642745..82f68c809 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
@@ -166,15 +166,18 @@ No supporting OS subroutines are required. @@ -166,15 +166,18 @@ No supporting OS subroutines are required.
@@ -7807,7 +7855,7 @@ index 4c343e462..835b3a712 100644
#else /* __HAVE_LOCALE_INFO__ */ #else /* __HAVE_LOCALE_INFO__ */
{ {
{ NULL, NULL }, /* LC_ALL */ { NULL, NULL }, /* LC_ALL */
@@ -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)
@@ -7844,10 +7892,10 @@ index a0c80843a..efabdcfc4 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/powerpc/Makefile.am b/newlib/libc/machine/powerpc/Makefile.am diff --git a/newlib/libc/machine/powerpc/Makefile.am b/newlib/libc/machine/powerpc/Makefile.am
index e86afdf1c..007bd1567 100644 index 577b7f9b3..ce3bb7b53 100644
--- a/newlib/libc/machine/powerpc/Makefile.am --- a/newlib/libc/machine/powerpc/Makefile.am
+++ b/newlib/libc/machine/powerpc/Makefile.am +++ b/newlib/libc/machine/powerpc/Makefile.am
@@ -10,7 +10,7 @@ noinst_LIBRARIES = lib.a @@ -8,7 +8,7 @@ noinst_LIBRARIES = lib.a
AM_CFLAGS = -I $(srcdir)/../../stdio -I $(srcdir)/../../stdlib AM_CFLAGS = -I $(srcdir)/../../stdio -I $(srcdir)/../../stdlib
@@ -7857,19 +7905,19 @@ index e86afdf1c..007bd1567 100644
lib_a_CFLAGS=$(AM_CFLAGS) lib_a_CFLAGS=$(AM_CFLAGS)
lib_a_LIBADD = @extra_objs@ lib_a_LIBADD = @extra_objs@
diff --git a/newlib/libc/machine/powerpc/Makefile.in b/newlib/libc/machine/powerpc/Makefile.in diff --git a/newlib/libc/machine/powerpc/Makefile.in b/newlib/libc/machine/powerpc/Makefile.in
index 73b0cc471..12044cb8a 100644 index 46acda680..892a82288 100644
--- a/newlib/libc/machine/powerpc/Makefile.in --- a/newlib/libc/machine/powerpc/Makefile.in
+++ b/newlib/libc/machine/powerpc/Makefile.in +++ b/newlib/libc/machine/powerpc/Makefile.in
@@ -68,7 +68,7 @@ CONFIG_CLEAN_VPATH_FILES = @@ -74,7 +74,7 @@ AM_V_at = $(am__v_at_@AM_V@)
LIBRARIES = $(noinst_LIBRARIES) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
ARFLAGS = cru am__v_at_0 = @
lib_a_AR = $(AR) $(ARFLAGS) lib_a_AR = $(AR) $(ARFLAGS)
-am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT) -am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT)
+am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT) lib_a-access.$(OBJEXT) +am_lib_a_OBJECTS = lib_a-setjmp.$(OBJEXT) lib_a-access.$(OBJEXT)
lib_a_OBJECTS = $(am_lib_a_OBJECTS) lib_a_OBJECTS = $(am_lib_a_OBJECTS)
DEFAULT_INCLUDES = -I.@am__isrc@ DEFAULT_INCLUDES = -I.@am__isrc@
depcomp = depcomp =
@@ -196,7 +196,7 @@ INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS) @@ -218,7 +218,7 @@ INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
AM_CCASFLAGS = $(INCLUDES) AM_CCASFLAGS = $(INCLUDES)
noinst_LIBRARIES = lib.a noinst_LIBRARIES = lib.a
AM_CFLAGS = -I $(srcdir)/../../stdio -I $(srcdir)/../../stdlib AM_CFLAGS = -I $(srcdir)/../../stdio -I $(srcdir)/../../stdlib
@@ -7878,9 +7926,9 @@ index 73b0cc471..12044cb8a 100644
lib_a_CCASFLAGS = $(AM_CCASFLAGS) lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS) lib_a_CFLAGS = $(AM_CFLAGS)
lib_a_LIBADD = @extra_objs@ lib_a_LIBADD = @extra_objs@
@@ -280,6 +280,12 @@ lib_a-setjmp.obj: setjmp.S @@ -302,6 +302,12 @@ lib_a-setjmp.obj: setjmp.S
.c.obj: .c.obj:
$(COMPILE) -c `$(CYGPATH_W) '$<'` $(AM_V_CC)$(COMPILE) -c `$(CYGPATH_W) '$<'`
+lib_a-access.o: access.c +lib_a-access.o: access.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-access.o `test -f 'access.c' || echo '$(srcdir)/'`access.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-access.o `test -f 'access.c' || echo '$(srcdir)/'`access.c
@@ -7889,7 +7937,7 @@ index 73b0cc471..12044cb8a 100644
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-access.obj `if test -f 'access.c'; then $(CYGPATH_W) 'access.c'; else $(CYGPATH_W) '$(srcdir)/access.c'; fi` + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-access.obj `if test -f 'access.c'; then $(CYGPATH_W) 'access.c'; else $(CYGPATH_W) '$(srcdir)/access.c'; fi`
+ +
lib_a-vfprintf.o: vfprintf.c lib_a-vfprintf.o: vfprintf.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-vfprintf.o `test -f 'vfprintf.c' || echo '$(srcdir)/'`vfprintf.c $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-vfprintf.o `test -f 'vfprintf.c' || echo '$(srcdir)/'`vfprintf.c
diff --git a/newlib/libc/machine/powerpc/access.c b/newlib/libc/machine/powerpc/access.c diff --git a/newlib/libc/machine/powerpc/access.c b/newlib/libc/machine/powerpc/access.c
new file mode 100644 new file mode 100644
@@ -8057,10 +8105,10 @@ index 95f1a7422..c797d2e64 100644
+ +
#endif #endif
diff --git a/newlib/libc/stdio/Makefile.in b/newlib/libc/stdio/Makefile.in diff --git a/newlib/libc/stdio/Makefile.in b/newlib/libc/stdio/Makefile.in
index aa22a0e3a..93e672b6a 100644 index 6d18a4443..01402f4de 100644
--- a/newlib/libc/stdio/Makefile.in --- a/newlib/libc/stdio/Makefile.in
+++ b/newlib/libc/stdio/Makefile.in +++ b/newlib/libc/stdio/Makefile.in
@@ -507,6 +507,7 @@ GENERAL_SOURCES = \ @@ -527,6 +527,7 @@ GENERAL_SOURCES = \
rename.c \ rename.c \
rewind.c \ rewind.c \
rget.c \ rget.c \
@@ -8068,9 +8116,9 @@ index aa22a0e3a..93e672b6a 100644
scanf.c \ scanf.c \
sccl.c \ sccl.c \
setbuf.c \ setbuf.c \
@@ -1176,6 +1177,12 @@ lib_a-rget.o: rget.c @@ -1196,6 +1197,12 @@ lib_a-rget.o: rget.c
lib_a-rget.obj: rget.c lib_a-rget.obj: rget.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-rget.obj `if test -f 'rget.c'; then $(CYGPATH_W) 'rget.c'; else $(CYGPATH_W) '$(srcdir)/rget.c'; fi` $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-rget.obj `if test -f 'rget.c'; then $(CYGPATH_W) 'rget.c'; else $(CYGPATH_W) '$(srcdir)/rget.c'; fi`
+lib_a-rmdir.o: rmdir.c +lib_a-rmdir.o: rmdir.c
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-rmdir.o `test -f 'rmdir.c' || echo '$(srcdir)/'`rmdir.c + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-rmdir.o `test -f 'rmdir.c' || echo '$(srcdir)/'`rmdir.c
@@ -8079,10 +8127,10 @@ index aa22a0e3a..93e672b6a 100644
+ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-rmdir.obj `if test -f 'rmdir.c'; then $(CYGPATH_W) 'rmdir.c'; else $(CYGPATH_W) '$(srcdir)/rmdir.c'; fi` + $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-rmdir.obj `if test -f 'rmdir.c'; then $(CYGPATH_W) 'rmdir.c'; else $(CYGPATH_W) '$(srcdir)/rmdir.c'; fi`
+ +
lib_a-scanf.o: scanf.c lib_a-scanf.o: scanf.c
$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-scanf.o `test -f 'scanf.c' || echo '$(srcdir)/'`scanf.c $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_a_CFLAGS) $(CFLAGS) -c -o lib_a-scanf.o `test -f 'scanf.c' || echo '$(srcdir)/'`scanf.c
diff --git a/newlib/libc/stdio/fopen.c b/newlib/libc/stdio/fopen.c diff --git a/newlib/libc/stdio/fopen.c b/newlib/libc/stdio/fopen.c
index 022992b8d..bdf4c7bb0 100644 index 1ac551fed..d293b7b0e 100644
--- a/newlib/libc/stdio/fopen.c --- a/newlib/libc/stdio/fopen.c
+++ b/newlib/libc/stdio/fopen.c +++ b/newlib/libc/stdio/fopen.c
@@ -139,6 +139,9 @@ _fopen_r (struct _reent *ptr, @@ -139,6 +139,9 @@ _fopen_r (struct _reent *ptr,
@@ -8096,7 +8144,7 @@ index 022992b8d..bdf4c7bb0 100644
fp->_flags = flags; fp->_flags = flags;
fp->_cookie = (void *) fp; fp->_cookie = (void *) fp;
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..78bb0df30 100644 index df8321461..eee4181cd 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
@@ -187,7 +187,6 @@ _fread_r (struct _reent * ptr, @@ -187,7 +187,6 @@ _fread_r (struct _reent * ptr,
@@ -8147,37 +8195,29 @@ index b358d2b4a..78bb0df30 100644
{ {
/* no more input: return partial result */ /* no more input: return partial result */
#ifdef __SCLE #ifdef __SCLE
diff --git a/newlib/libc/stdlib/aligned_alloc.c b/newlib/libc/stdlib/aligned_alloc.c diff --git a/newlib/libc/stdio/remove.c b/newlib/libc/stdio/remove.c
index 88413ce86..24029a6f7 100644 index d8dfdbd82..a85b5a99b 100644
--- a/newlib/libc/stdlib/aligned_alloc.c --- a/newlib/libc/stdio/remove.c
+++ b/newlib/libc/stdlib/aligned_alloc.c +++ b/newlib/libc/stdio/remove.c
@@ -1,5 +1,5 @@ @@ -57,13 +57,17 @@ Supporting OS subroutine required: <<unlink>>.
/*- #include <_ansi.h>
- * Copyright (c) 2015 embedded brains GmbH #include <reent.h>
+ * Copyright (c) 2018 Dave Murphy #include <stdio.h>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -25,14 +25,15 @@
*/
#include <stdlib.h>
+#include <malloc.h>
+#include <errno.h> +#include <errno.h>
void * int
aligned_alloc(size_t alignment, size_t size) _remove_r (struct _reent *ptr,
const char *filename)
{ {
- void *p; - if (_unlink_r (ptr, filename) == -1)
- int error; - return -1;
+ if ((alignment !=0) && !(alignment & (alignment - 1 )) && !(size & (alignment - 1))) + if (_unlink_r (ptr, filename) == -1) {
+ return memalign(alignment,size); + errno = 0;
+ if (_rmdir_r(ptr, filename) == -1)
+ return -1;
+ }
- error = posix_memalign(&p, alignment, size); return 0;
-
- 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

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

@@ -12,7 +12,7 @@ cd $target/binutils
if [ ! -f configured-binutils ] if [ ! -f configured-binutils ]
then then
CFLAGS=$cflags LDFLAGS=$ldflags ../../binutils-$BINUTILS_VER/configure \ ../../binutils-$BINUTILS_VER/configure \
--prefix=$prefix --target=$target --disable-nls --disable-shared --disable-debug \ --prefix=$prefix --target=$target --disable-nls --disable-shared --disable-debug \
--disable-werror \ --disable-werror \
--enable-poison-system-directories \ --enable-poison-system-directories \
@@ -48,7 +48,7 @@ cd mn10200/binutils
if [ ! -f configured-binutils ] if [ ! -f configured-binutils ]
then then
CFLAGS=$cflags LDFLAGS=$ldflags ../../binutils-$MN_BINUTILS_VER/configure \ ../../binutils-$MN_BINUTILS_VER/configure \
--prefix=$prefix --target=mn10200 --disable-nls --disable-debug \ --prefix=$prefix --target=mn10200 --disable-nls --disable-debug \
--disable-multilib \ --disable-multilib \
--disable-werror $CROSS_PARAMS \ --disable-werror $CROSS_PARAMS \
@@ -78,9 +78,6 @@ cd $target/gcc
if [ ! -f configured-gcc ] if [ ! -f configured-gcc ]
then then
CFLAGS="$cflags" \
CXXFLAGS="$cflags" \
LDFLAGS="$ldflags" \
CFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \ CFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \
CXXFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \ CXXFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \
LDFLAGS_FOR_TARGET="" \ LDFLAGS_FOR_TARGET="" \
@@ -94,15 +91,17 @@ then
--disable-libstdcxx-verbose \ --disable-libstdcxx-verbose \
--enable-libstdcxx-time=yes \ --enable-libstdcxx-time=yes \
--enable-libstdcxx-filesystem-ts \ --enable-libstdcxx-filesystem-ts \
--disable-tm-clone-registry \
--disable-__cxa_atexit \
--enable-cxx-flags='-ffunction-sections -fdata-sections' \ --enable-cxx-flags='-ffunction-sections -fdata-sections' \
--target=$target \ --target=$target \
--with-newlib \ --with-newlib \
--with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \ --with-headers=../../newlib-$NEWLIB_VER/newlib/libc/include \
--prefix=$prefix \ --prefix=$prefix \
--with-system-zlib\ --with-bugurl="https://github.com/devkitpro/buildscripts/issues" --with-pkgversion="devkitPPC release 41" \
--with-bugurl="https://github.com/devkitpro/buildscripts/issues" --with-pkgversion="devkitPPC release 38" \
$CROSS_PARAMS \ $CROSS_PARAMS \
$CROSS_GCC_PARAMS \ $CROSS_GCC_PARAMS \
$EXTRA_GCC_PARAMS \
CFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \ CFLAGS_FOR_TARGET="-O2 -ffunction-sections -fdata-sections" \
|| { echo "Error configuring gcc stage 1"; exit 1; } || { echo "Error configuring gcc stage 1"; exit 1; }
touch configured-gcc touch configured-gcc

View File

@@ -30,28 +30,28 @@ done
case "$VERSION" in case "$VERSION" in
"1" ) "1" )
GCC_VER=10.2.0 GCC_VER=12.1.0
BINUTILS_VER=2.34 BINUTILS_VER=2.38
NEWLIB_VER=3.3.0 NEWLIB_VER=4.2.0.20211231
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.2.0 GCC_VER=12.1.0
BINUTILS_VER=2.34 BINUTILS_VER=2.37
MN_BINUTILS_VER=2.17 MN_BINUTILS_VER=2.24
NEWLIB_VER=3.3.0 NEWLIB_VER=4.2.0.20211231
basedir='dkppc' basedir='dkppc'
package=devkitPPC package=devkitPPC
target=powerpc-eabi target=powerpc-eabi
toolchain=DEVKITPPC toolchain=DEVKITPPC
;; ;;
"3" ) "3" )
GCC_VER=10.2.0 GCC_VER=12.1.0
BINUTILS_VER=2.32 BINUTILS_VER=2.32
NEWLIB_VER=3.3.0 NEWLIB_VER=4.2.0.20211231
basedir='dka64' basedir='dka64'
package=devkitA64 package=devkitA64
target=aarch64-none-elf target=aarch64-none-elf