Compare commits

...

1 Commits

Author SHA1 Message Date
Dave Murphy
0add4d1b5c changes for devkitA64 r14 2019-12-11 01:18:57 +00:00
5 changed files with 128 additions and 119 deletions

View File

@@ -2,7 +2,7 @@
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
# devkitARM release 53-1 # devkitARM release 53-1
# devkitPPC release 35 # devkitPPC release 35
# devkitA64 release 13 # devkitA64 release 14
#--------------------------------------------------------------------------------- #---------------------------------------------------------------------------------
if [ 0 -eq 1 ] ; then if [ 0 -eq 1 ] ; then

View File

@@ -1,8 +1,8 @@
diff --git a/gcc/config.gcc b/gcc/config.gcc diff --git a/gcc/config.gcc b/gcc/config.gcc
index 7af8e028104..90a3a50f624 100644 index ddd3b8f4d9d..014df2e5a59 100644
--- a/gcc/config.gcc --- a/gcc/config.gcc
+++ b/gcc/config.gcc +++ b/gcc/config.gcc
@@ -945,6 +945,12 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*) @@ -985,6 +985,12 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
case $target in case $target in
aarch64-*-elf*) aarch64-*-elf*)
use_gcc_stdint=wrap use_gcc_stdint=wrap
@@ -16,7 +16,7 @@ index 7af8e028104..90a3a50f624 100644
aarch64-*-fuchsia*) aarch64-*-fuchsia*)
tm_file="${tm_file} fuchsia.h" tm_file="${tm_file} fuchsia.h"
diff --git a/gcc/config/aarch64/aarch64-elf-raw.h b/gcc/config/aarch64/aarch64-elf-raw.h diff --git a/gcc/config/aarch64/aarch64-elf-raw.h b/gcc/config/aarch64/aarch64-elf-raw.h
index c074238df06..ef503ddd5a6 100644 index bbebd0ef029..8f38510402f 100644
--- a/gcc/config/aarch64/aarch64-elf-raw.h --- a/gcc/config/aarch64/aarch64-elf-raw.h
+++ b/gcc/config/aarch64/aarch64-elf-raw.h +++ b/gcc/config/aarch64/aarch64-elf-raw.h
@@ -22,6 +22,7 @@ @@ -22,6 +22,7 @@
@@ -28,7 +28,7 @@ index c074238df06..ef503ddd5a6 100644
#define ENDFILE_SPEC \ #define ENDFILE_SPEC \
" crtend%O%s crtn%O%s " \ " crtend%O%s crtn%O%s " \
diff --git a/gcc/config/aarch64/aarch64-opts.h b/gcc/config/aarch64/aarch64-opts.h diff --git a/gcc/config/aarch64/aarch64-opts.h b/gcc/config/aarch64/aarch64-opts.h
index 7a5c6d7664f..687793841de 100644 index 4b07d296a11..037985f1d86 100644
--- a/gcc/config/aarch64/aarch64-opts.h --- a/gcc/config/aarch64/aarch64-opts.h
+++ b/gcc/config/aarch64/aarch64-opts.h +++ b/gcc/config/aarch64/aarch64-opts.h
@@ -48,6 +48,12 @@ enum aarch64_tls_type { @@ -48,6 +48,12 @@ enum aarch64_tls_type {
@@ -45,10 +45,10 @@ index 7a5c6d7664f..687793841de 100644
Most have a PIC and non-PIC variant. */ Most have a PIC and non-PIC variant. */
enum aarch64_code_model { enum aarch64_code_model {
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 349ca0c047b..5c03c42c28e 100644 index 6b25d9cbfae..39c7026a90c 100644
--- a/gcc/config/aarch64/aarch64.c --- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c
@@ -12005,8 +12005,24 @@ aarch64_load_tp (rtx target) @@ -13186,8 +13186,24 @@ aarch64_load_tp (rtx target)
|| !register_operand (target, Pmode)) || !register_operand (target, Pmode))
target = gen_reg_rtx (Pmode); target = gen_reg_rtx (Pmode);
@@ -76,10 +76,10 @@ index 349ca0c047b..5c03c42c28e 100644
} }
diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
index 976f9afae54..73263bcb5e7 100644 index fc6df970c2e..705c6de868f 100644
--- a/gcc/config/aarch64/aarch64.h --- a/gcc/config/aarch64/aarch64.h
+++ b/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h
@@ -957,6 +957,10 @@ typedef struct @@ -1006,6 +1006,10 @@ typedef struct
/* Check TLS Descriptors mechanism is selected. */ /* Check TLS Descriptors mechanism is selected. */
#define TARGET_TLS_DESC (aarch64_tls_dialect == TLS_DESCRIPTORS) #define TARGET_TLS_DESC (aarch64_tls_dialect == TLS_DESCRIPTORS)
@@ -91,10 +91,10 @@ index 976f9afae54..73263bcb5e7 100644
/* 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 diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index 32a0e1f3685..783c655acf0 100644 index 5a1894063a1..7c9d9452659 100644
--- a/gcc/config/aarch64/aarch64.md --- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md
@@ -5693,11 +5693,22 @@ @@ -6583,11 +6583,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))]
@@ -120,10 +120,10 @@ index 32a0e1f3685..783c655acf0 100644
;; instructions in the TLS stubs, in order to enable linker relaxation. ;; instructions in the TLS stubs, in order to enable linker relaxation.
;; Therefore we treat the stubs as an atomic sequence. ;; Therefore we treat the stubs as an atomic sequence.
diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt diff --git a/gcc/config/aarch64/aarch64.opt b/gcc/config/aarch64/aarch64.opt
index 52eaf8c6f40..52bccddc6e3 100644 index 7719c3b6352..cd32a639b16 100644
--- a/gcc/config/aarch64/aarch64.opt --- a/gcc/config/aarch64/aarch64.opt
+++ b/gcc/config/aarch64/aarch64.opt +++ b/gcc/config/aarch64/aarch64.opt
@@ -115,6 +115,20 @@ Enum(aarch64_tls_size) String(32) Value(32) @@ -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)
@@ -140,20 +140,23 @@ index 52eaf8c6f40..52bccddc6e3 100644
+ +
+EnumValue +EnumValue
+Enum(aarch64_tp_type) String(soft) Value(TP_SOFT) +Enum(aarch64_tp_type) String(soft) Value(TP_SOFT)
+
+ +
march= march=
Target RejectNegative ToLower Joined Var(aarch64_arch_string) Target RejectNegative ToLower Joined Var(aarch64_arch_string)
-march=ARCH Use features of architecture ARCH. Use features of architecture ARCH.
diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64 diff --git a/gcc/config/aarch64/t-aarch64 b/gcc/config/aarch64/t-aarch64
index 0be1f0d63aa..a54068bfd96 100644 index ee471f8983f..aedaefdd62d 100644
--- a/gcc/config/aarch64/t-aarch64 --- a/gcc/config/aarch64/t-aarch64
+++ b/gcc/config/aarch64/t-aarch64 +++ b/gcc/config/aarch64/t-aarch64
@@ -68,5 +68,7 @@ cortex-a57-fma-steering.o: $(srcdir)/config/aarch64/cortex-a57-fma-steering.c \ @@ -100,6 +100,8 @@ aarch64-bti-insert.o: $(srcdir)/config/aarch64/aarch64-bti-insert.c \
$(srcdir)/config/aarch64/cortex-a57-fma-steering.c $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \
$(srcdir)/config/aarch64/aarch64-bti-insert.c
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))))
-MULTILIB_DIRNAMES = $(subst $(comma), ,$(TM_MULTILIB_CONFIG)) -MULTILIB_DIRNAMES = $(subst $(comma), ,$(TM_MULTILIB_CONFIG))
+ comma=,
+MULTILIB_OPTIONS = mcmodel=large fPIC +MULTILIB_OPTIONS = mcmodel=large fPIC
+MULTILIB_DIRNAMES = large pic +MULTILIB_DIRNAMES = large pic
+MULTILIB_REQUIRED = mcmodel=large fPIC +MULTILIB_REQUIRED = mcmodel=large fPIC
@@ -231,10 +234,10 @@ index 00000000000..9acbbf9d27c
+ +
+; This comment is to ensure we retain the blank line above. +; This comment is to ensure we retain the blank line above.
diff --git a/gcc/gcc.c b/gcc/gcc.c diff --git a/gcc/gcc.c b/gcc/gcc.c
index a716f708259..6a11011dba7 100644 index 4f57765b012..2899202cc05 100644
--- a/gcc/gcc.c --- a/gcc/gcc.c
+++ b/gcc/gcc.c +++ b/gcc/gcc.c
@@ -786,6 +786,11 @@ proper position among the other output files. */ @@ -794,6 +794,11 @@ proper position among the other output files. */
#endif #endif
#endif #endif
@@ -246,7 +249,7 @@ index a716f708259..6a11011dba7 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 \
@@ -1081,6 +1086,7 @@ static const char *link_spec = LINK_SPEC; @@ -1086,6 +1091,7 @@ static const char *link_spec = LINK_SPEC;
static const char *lib_spec = LIB_SPEC; static const char *lib_spec = LIB_SPEC;
static const char *link_gomp_spec = ""; static const char *link_gomp_spec = "";
static const char *libgcc_spec = LIBGCC_SPEC; static const char *libgcc_spec = LIBGCC_SPEC;
@@ -254,7 +257,7 @@ index a716f708259..6a11011dba7 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;
@@ -1577,6 +1583,7 @@ static struct spec_list static_specs[] = @@ -1583,6 +1589,7 @@ static struct spec_list static_specs[] =
INIT_STATIC_SPEC ("lib", &lib_spec), INIT_STATIC_SPEC ("lib", &lib_spec),
INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec), INIT_STATIC_SPEC ("link_gomp", &link_gomp_spec),
INIT_STATIC_SPEC ("libgcc", &libgcc_spec), INIT_STATIC_SPEC ("libgcc", &libgcc_spec),
@@ -263,7 +266,7 @@ index a716f708259..6a11011dba7 100644
INIT_STATIC_SPEC ("cross_compile", &cross_compile), INIT_STATIC_SPEC ("cross_compile", &cross_compile),
INIT_STATIC_SPEC ("version", &compiler_version), INIT_STATIC_SPEC ("version", &compiler_version),
diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c diff --git a/libgcc/crtstuff.c b/libgcc/crtstuff.c
index 5e894455e16..f2347455de0 100644 index 4927a9f8977..8311b6a7f5e 100644
--- a/libgcc/crtstuff.c --- a/libgcc/crtstuff.c
+++ b/libgcc/crtstuff.c +++ b/libgcc/crtstuff.c
@@ -47,6 +47,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see @@ -47,6 +47,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -275,7 +278,7 @@ index 5e894455e16..f2347455de0 100644
/* FIXME: Including auto-host is incorrect, but until we have /* FIXME: Including auto-host is incorrect, but until we have
identified the set of defines that need to go into auto-target.h, identified the set of defines that need to go into auto-target.h,
diff --git a/libgcc/gthr.h b/libgcc/gthr.h diff --git a/libgcc/gthr.h b/libgcc/gthr.h
index 88b0178f9e3..e94fcf9d721 100644 index 67826419882..d9f01c6c371 100644
--- a/libgcc/gthr.h --- a/libgcc/gthr.h
+++ b/libgcc/gthr.h +++ b/libgcc/gthr.h
@@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see @@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -288,10 +291,10 @@ index 88b0178f9e3..e94fcf9d721 100644
#define GTHREAD_USE_WEAK 0 #define GTHREAD_USE_WEAK 0
#endif #endif
diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index 77e6dc2f6be..3a102997371 100644 index 1deacb80ca2..0de11c15a3a 100644
--- a/libstdc++-v3/include/Makefile.am --- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am +++ b/libstdc++-v3/include/Makefile.am
@@ -1293,6 +1293,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias} @@ -1338,6 +1338,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' \
@@ -300,10 +303,10 @@ index 77e6dc2f6be..3a102997371 100644
< $< > $@ < $< > $@
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index 948a5c1f1c5..ee8e240f6c5 100644 index bc475c6dd90..bfa3e71898a 100644
--- a/libstdc++-v3/include/Makefile.in --- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in
@@ -1719,6 +1719,7 @@ ${host_builddir}/gthr.h: ${toplevel_srcdir}/libgcc/gthr.h stamp-${host_alias} @@ -1817,6 +1817,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

@@ -6555,10 +6555,10 @@ index 000000000..13bd0fba1
+} +}
diff --git a/libgloss/libsysbase/link.c b/libgloss/libsysbase/link.c diff --git a/libgloss/libsysbase/link.c b/libgloss/libsysbase/link.c
new file mode 100644 new file mode 100644
index 000000000..1675e5c24 index 000000000..162f70f63
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/link.c +++ b/libgloss/libsysbase/link.c
@@ -0,0 +1,33 @@ @@ -0,0 +1,36 @@
+#include "config.h" +#include "config.h"
+#include <_ansi.h> +#include <_ansi.h>
+#include <_syslist.h> +#include <_syslist.h>
@@ -6572,11 +6572,14 @@ index 000000000..1675e5c24
+int _link(const char *existing, const char *new) { +int _link(const char *existing, const char *new) {
+ struct _reent *r = _REENT; + struct _reent *r = _REENT;
+#endif +#endif
+ int ret; + int ret = -1;
+ int sourceDev = FindDevice(existing); + int sourceDev = FindDevice(existing);
+ int destDev = FindDevice(new); + int destDev = FindDevice(new);
+ +
+ ret = -1; + if (sourceDev == -1 || destDev == -1 ) {
+ r->_errno = ENODEV;
+ return ret;
+ }
+ +
+ if ( sourceDev == destDev) { + if ( sourceDev == destDev) {
+ if (devoptab_list[destDev]->link_r) { + if (devoptab_list[destDev]->link_r) {
@@ -6854,26 +6857,30 @@ index 000000000..456590956
+char *fake_heap_start = (char*)0; +char *fake_heap_start = (char*)0;
diff --git a/libgloss/libsysbase/mkdir.c b/libgloss/libsysbase/mkdir.c diff --git a/libgloss/libsysbase/mkdir.c b/libgloss/libsysbase/mkdir.c
new file mode 100644 new file mode 100644
index 000000000..b4fcbd3d7 index 000000000..19742b774
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/mkdir.c +++ b/libgloss/libsysbase/mkdir.c
@@ -0,0 +1,19 @@ @@ -0,0 +1,23 @@
+#include <reent.h> +#include <reent.h>
+#include <sys/iosupport.h> +#include <sys/iosupport.h>
+#include <errno.h> +#include <errno.h>
+ +
+int mkdir (const char *path, mode_t mode) { +int mkdir (const char *path, mode_t mode) {
+ struct _reent *r = _REENT; + struct _reent *r = _REENT;
+ int ret; + int ret = -1;
+ int dev = FindDevice(path);
+ ret = -1;
+ +
+ if (devoptab_list[dev]->mkdir_r) { + int dev = FindDevice(path);
+ r->deviceData = devoptab_list[dev]->deviceData; +
+ ret = devoptab_list[dev]->mkdir_r(r, path, mode); + if(dev!=-1) {
+ } else { + if(devoptab_list[dev]->mkdir_r) {
+ r->_errno = ENOSYS; + r->deviceData = devoptab_list[dev]->deviceData;
+ } + ret = devoptab_list[dev]->mkdir_r(r,path,mode);
+ } else {
+ r->_errno = ENOSYS;
+ }
+ } else {
+ r->_errno = ENODEV;
+ }
+ +
+ return ret; + return ret;
+} +}
@@ -8092,10 +8099,10 @@ index 000000000..838a8c796
+ +
diff --git a/libgloss/libsysbase/rename.c b/libgloss/libsysbase/rename.c diff --git a/libgloss/libsysbase/rename.c b/libgloss/libsysbase/rename.c
new file mode 100644 new file mode 100644
index 000000000..97a056a72 index 000000000..b54e0ce7c
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/rename.c +++ b/libgloss/libsysbase/rename.c
@@ -0,0 +1,34 @@ @@ -0,0 +1,37 @@
+#include "config.h" +#include "config.h"
+#include <reent.h> +#include <reent.h>
+#include <sys/iosupport.h> +#include <sys/iosupport.h>
@@ -8111,11 +8118,14 @@ index 000000000..97a056a72
+#endif +#endif
+ struct _reent *r = _REENT; + struct _reent *r = _REENT;
+ +
+ int ret; + int ret = -1;
+ int sourceDev = FindDevice(existing); + int sourceDev = FindDevice(existing);
+ int destDev = FindDevice(newName); + int destDev = FindDevice(newName);
+ +
+ ret = -1; + if (sourceDev == -1 || destDev == -1 ) {
+ r->_errno = ENODEV;
+ return ret;
+ }
+ +
+ if ( sourceDev == destDev) { + if ( sourceDev == destDev) {
+ if (devoptab_list[destDev]->rename_r) { + if (devoptab_list[destDev]->rename_r) {
@@ -8229,10 +8239,10 @@ index 000000000..5dd550c5c
+} +}
diff --git a/libgloss/libsysbase/scandir.c b/libgloss/libsysbase/scandir.c diff --git a/libgloss/libsysbase/scandir.c b/libgloss/libsysbase/scandir.c
new file mode 100644 new file mode 100644
index 000000000..1333df4b2 index 000000000..5c673af52
--- /dev/null --- /dev/null
+++ b/libgloss/libsysbase/scandir.c +++ b/libgloss/libsysbase/scandir.c
@@ -0,0 +1,74 @@ @@ -0,0 +1,76 @@
+#include <sys/types.h> +#include <sys/types.h>
+#include <sys/stat.h> +#include <sys/stat.h>
+#include <stddef.h> +#include <stddef.h>
@@ -8262,6 +8272,8 @@ index 000000000..1333df4b2
+ int (*filter) __P((const struct dirent *)), + int (*filter) __P((const struct dirent *)),
+ int (*compar) __P((const struct dirent **, const struct dirent **))) + int (*compar) __P((const struct dirent **, const struct dirent **)))
+{ +{
+ errno = 0;
+
+ DIR *d = opendir(dirname); + DIR *d = opendir(dirname);
+ +
+ if (!d) return -1; + if (!d) return -1;
@@ -9330,10 +9342,10 @@ index 000000000..82d2e3576
+#endif // __iosupp_h__ +#endif // __iosupp_h__
+//--------------------------------------------------------------------------------- +//---------------------------------------------------------------------------------
diff --git a/newlib/libc/include/sys/lock.h b/newlib/libc/include/sys/lock.h diff --git a/newlib/libc/include/sys/lock.h b/newlib/libc/include/sys/lock.h
index 528904957..30cb099e6 100644 index 528904957..e49f77b75 100644
--- a/newlib/libc/include/sys/lock.h --- a/newlib/libc/include/sys/lock.h
+++ b/newlib/libc/include/sys/lock.h +++ b/newlib/libc/include/sys/lock.h
@@ -1,69 +1,97 @@ @@ -1,69 +1,105 @@
#ifndef __SYS_LOCK_H__ #ifndef __SYS_LOCK_H__
#define __SYS_LOCK_H__ #define __SYS_LOCK_H__
@@ -9342,19 +9354,68 @@ index 528904957..30cb099e6 100644
-#include <newlib.h> -#include <newlib.h>
#include <_ansi.h> #include <_ansi.h>
+#include <stdint.h> +#include <stdint.h>
+
-#if !defined(_RETARGETABLE_LOCKING)
+typedef int32_t _LOCK_T; +typedef int32_t _LOCK_T;
+
-typedef int _LOCK_T;
-typedef int _LOCK_RECURSIVE_T;
+struct __lock_t { +struct __lock_t {
+ _LOCK_T lock; + _LOCK_T lock;
+ uint32_t thread_tag; + uint32_t thread_tag;
+ uint32_t counter; + uint32_t counter;
+}; +};
+
-#define __LOCK_INIT(class,lock) static int lock = 0;
-#define __LOCK_INIT_RECURSIVE(class,lock) static int lock = 0;
-#define __lock_init(lock) ((void) 0)
-#define __lock_init_recursive(lock) ((void) 0)
-#define __lock_close(lock) ((void) 0)
-#define __lock_close_recursive(lock) ((void) 0)
-#define __lock_acquire(lock) ((void) 0)
-#define __lock_acquire_recursive(lock) ((void) 0)
-#define __lock_try_acquire(lock) ((void) 0)
-#define __lock_try_acquire_recursive(lock) ((void) 0)
-#define __lock_release(lock) ((void) 0)
-#define __lock_release_recursive(lock) ((void) 0)
+typedef struct __lock_t _LOCK_RECURSIVE_T; +typedef struct __lock_t _LOCK_RECURSIVE_T;
+
-#else
+typedef uint32_t _COND_T; +typedef uint32_t _COND_T;
+
#ifdef __cplusplus
extern "C" {
#endif
-struct __lock;
-typedef struct __lock * _LOCK_T;
-#define _LOCK_RECURSIVE_T _LOCK_T
-
-#define __LOCK_INIT(class,lock) extern struct __lock __lock_ ## lock; \
- class _LOCK_T lock = &__lock_ ## lock
-#define __LOCK_INIT_RECURSIVE(class,lock) __LOCK_INIT(class,lock)
-
-extern void __retarget_lock_init(_LOCK_T *lock);
-#define __lock_init(lock) __retarget_lock_init(&lock)
-extern void __retarget_lock_init_recursive(_LOCK_T *lock);
-#define __lock_init_recursive(lock) __retarget_lock_init_recursive(&lock)
-extern void __retarget_lock_close(_LOCK_T lock);
-#define __lock_close(lock) __retarget_lock_close(lock)
-extern void __retarget_lock_close_recursive(_LOCK_T lock);
-#define __lock_close_recursive(lock) __retarget_lock_close_recursive(lock)
-extern void __retarget_lock_acquire(_LOCK_T lock);
-#define __lock_acquire(lock) __retarget_lock_acquire(lock)
-extern void __retarget_lock_acquire_recursive(_LOCK_T lock);
-#define __lock_acquire_recursive(lock) __retarget_lock_acquire_recursive(lock)
-extern int __retarget_lock_try_acquire(_LOCK_T lock);
-#define __lock_try_acquire(lock) __retarget_lock_try_acquire(lock)
-extern int __retarget_lock_try_acquire_recursive(_LOCK_T lock);
-#define __lock_try_acquire_recursive(lock) \
- __retarget_lock_try_acquire_recursive(lock)
-extern void __retarget_lock_release(_LOCK_T lock);
-#define __lock_release(lock) __retarget_lock_release(lock)
-extern void __retarget_lock_release_recursive(_LOCK_T lock);
-#define __lock_release_recursive(lock) __retarget_lock_release_recursive(lock)
+extern void __libc_lock_init(_LOCK_T *lock); +extern void __libc_lock_init(_LOCK_T *lock);
+extern void __libc_lock_init_recursive(_LOCK_RECURSIVE_T *lock); +extern void __libc_lock_init_recursive(_LOCK_RECURSIVE_T *lock);
+extern void __libc_lock_close(_LOCK_T *lock); +extern void __libc_lock_close(_LOCK_T *lock);
@@ -9374,7 +9435,12 @@ index 528904957..30cb099e6 100644
+extern int __libc_cond_broadcast(_COND_T *cond); +extern int __libc_cond_broadcast(_COND_T *cond);
+extern int __libc_cond_wait(_COND_T *cond, _LOCK_T *lock, uint64_t timeout_ns); +extern int __libc_cond_wait(_COND_T *cond, _LOCK_T *lock, uint64_t timeout_ns);
+extern int __libc_cond_wait_recursive(_COND_T *cond, _LOCK_RECURSIVE_T *lock, uint64_t timeout_ns); +extern int __libc_cond_wait_recursive(_COND_T *cond, _LOCK_RECURSIVE_T *lock, uint64_t timeout_ns);
+
#ifdef __cplusplus
}
#endif
-#endif /* !defined(_RETARGETABLE_LOCKING) */
+#define __LOCK_INITIALIZER ((_LOCK_T)0) +#define __LOCK_INITIALIZER ((_LOCK_T)0)
+#define __LOCK_INITIALIZER_RECURSIVE ((_LOCK_RECURSIVE_T){__LOCK_INITIALIZER,0,0}) +#define __LOCK_INITIALIZER_RECURSIVE ((_LOCK_RECURSIVE_T){__LOCK_INITIALIZER,0,0})
+#define __COND_INITIALIZER ((_COND_T)0) +#define __COND_INITIALIZER ((_COND_T)0)
@@ -9433,66 +9499,6 @@ index 528904957..30cb099e6 100644
+#define __cond_wait_recursive(NAME, LOCK, TIMEOUT) \ +#define __cond_wait_recursive(NAME, LOCK, TIMEOUT) \
+ __libc_cond_wait_recursive(&(NAME), &(LOCK), (TIMEOUT)) + __libc_cond_wait_recursive(&(NAME), &(LOCK), (TIMEOUT))
-#if !defined(_RETARGETABLE_LOCKING)
-
-typedef int _LOCK_T;
-typedef int _LOCK_RECURSIVE_T;
-
-#define __LOCK_INIT(class,lock) static int lock = 0;
-#define __LOCK_INIT_RECURSIVE(class,lock) static int lock = 0;
-#define __lock_init(lock) ((void) 0)
-#define __lock_init_recursive(lock) ((void) 0)
-#define __lock_close(lock) ((void) 0)
-#define __lock_close_recursive(lock) ((void) 0)
-#define __lock_acquire(lock) ((void) 0)
-#define __lock_acquire_recursive(lock) ((void) 0)
-#define __lock_try_acquire(lock) ((void) 0)
-#define __lock_try_acquire_recursive(lock) ((void) 0)
-#define __lock_release(lock) ((void) 0)
-#define __lock_release_recursive(lock) ((void) 0)
-
-#else
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-struct __lock;
-typedef struct __lock * _LOCK_T;
-#define _LOCK_RECURSIVE_T _LOCK_T
-
-#define __LOCK_INIT(class,lock) extern struct __lock __lock_ ## lock; \
- class _LOCK_T lock = &__lock_ ## lock
-#define __LOCK_INIT_RECURSIVE(class,lock) __LOCK_INIT(class,lock)
-
-extern void __retarget_lock_init(_LOCK_T *lock);
-#define __lock_init(lock) __retarget_lock_init(&lock)
-extern void __retarget_lock_init_recursive(_LOCK_T *lock);
-#define __lock_init_recursive(lock) __retarget_lock_init_recursive(&lock)
-extern void __retarget_lock_close(_LOCK_T lock);
-#define __lock_close(lock) __retarget_lock_close(lock)
-extern void __retarget_lock_close_recursive(_LOCK_T lock);
-#define __lock_close_recursive(lock) __retarget_lock_close_recursive(lock)
-extern void __retarget_lock_acquire(_LOCK_T lock);
-#define __lock_acquire(lock) __retarget_lock_acquire(lock)
-extern void __retarget_lock_acquire_recursive(_LOCK_T lock);
-#define __lock_acquire_recursive(lock) __retarget_lock_acquire_recursive(lock)
-extern int __retarget_lock_try_acquire(_LOCK_T lock);
-#define __lock_try_acquire(lock) __retarget_lock_try_acquire(lock)
-extern int __retarget_lock_try_acquire_recursive(_LOCK_T lock);
-#define __lock_try_acquire_recursive(lock) \
- __retarget_lock_try_acquire_recursive(lock)
-extern void __retarget_lock_release(_LOCK_T lock);
-#define __lock_release(lock) __retarget_lock_release(lock)
-extern void __retarget_lock_release_recursive(_LOCK_T lock);
-#define __lock_release_recursive(lock) __retarget_lock_release_recursive(lock)
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* !defined(_RETARGETABLE_LOCKING) */
-
-#endif /* __SYS_LOCK_H__ */ -#endif /* __SYS_LOCK_H__ */
+#endif // __SYS_LOCK_H__ +#endif // __SYS_LOCK_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

View File

@@ -64,7 +64,7 @@ then
--prefix=$prefix \ --prefix=$prefix \
--enable-lto $plugin_ld\ --enable-lto $plugin_ld\
--with-system-zlib \ --with-system-zlib \
--with-bugurl="https://github.com/devkitPro/buildscripts/issues" --with-pkgversion="devkitA64 release 13" \ --with-bugurl="https://github.com/devkitPro/buildscripts/issues" --with-pkgversion="devkitA64 release 14" \
$CROSS_PARAMS \ $CROSS_PARAMS \
$CROSS_GCC_PARAMS \ $CROSS_GCC_PARAMS \
|| { echo "Error configuring gcc"; exit 1; } || { echo "Error configuring gcc"; exit 1; }

View File

@@ -51,7 +51,7 @@ case "$VERSION" in
toolchain=DEVKITPPC toolchain=DEVKITPPC
;; ;;
"3" ) "3" )
GCC_VER=8.3.0 GCC_VER=9.2.0
BINUTILS_VER=2.32 BINUTILS_VER=2.32
NEWLIB_VER=3.1.0 NEWLIB_VER=3.1.0
GDB_VER=8.2.1 GDB_VER=8.2.1