diff --git a/config/libc/newlib.in b/config/libc/newlib.in index 7bba2293..9b01fa15 100644 --- a/config/libc/newlib.in +++ b/config/libc/newlib.in @@ -113,6 +113,7 @@ config LIBC_NEWLIB_ATEXIT_DYNAMIC_ALLOC config LIBC_NEWLIB_GLOBAL_ATEXIT bool prompt "Enable atexit data structure as global variable" + default y help Enable atexit data structure as global variable. By doing so it is move out of _reent structure, and can be garbage collected if atexit diff --git a/packages/newlib-nano/4.3.0.20230120 b/packages/newlib-nano/4.3.0.20230120 new file mode 120000 index 00000000..2ff91cc9 --- /dev/null +++ b/packages/newlib-nano/4.3.0.20230120 @@ -0,0 +1 @@ +../newlib/4.3.0.20230120 \ No newline at end of file diff --git a/packages/newlib/4.3.0.20230120/0000-fix-unaligned-access-memcpy-m68k.patch b/packages/newlib/4.3.0.20230120/0000-fix-unaligned-access-memcpy-m68k.patch new file mode 100644 index 00000000..b6709d5a --- /dev/null +++ b/packages/newlib/4.3.0.20230120/0000-fix-unaligned-access-memcpy-m68k.patch @@ -0,0 +1,25 @@ +The m68k mcpu processor does not like unaligned access + +Disable at least mcpu32, m68010 and m68020. These processors certainly +do not like unaligned accesses. + +Signed-off-by: Remy Bohmer <linux@bohmer.net> +[yann.morin.1998@anciens.enib.fr: update for 1.19.0 from 1.18.0] +Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> +[austinpmorton@gmail.com: update for 1.20.0 from 1.19.0] +Signed-off-by: Austin Morton <austinpmorton@gmail.com> +--- + newlib/libc/machine/m68k/memcpy.S | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/newlib/libc/machine/m68k/memcpy.S ++++ b/newlib/libc/machine/m68k/memcpy.S +@@ -15,7 +15,7 @@ + + #include "m68kasm.h" + +-#if defined (__mcoldfire__) || defined (__mc68010__) || defined (__mc68020__) || defined (__mc68030__) || defined (__mc68040__) || defined (__mc68060__) ++#if defined (__mcoldfire__) || defined (__mc68030__) || defined (__mc68040__) || defined (__mc68060__) + # define MISALIGNED_OK 1 + #else + # define MISALIGNED_OK 0 diff --git a/packages/newlib/4.3.0.20230120/0001-fix-mt-cflags.patch b/packages/newlib/4.3.0.20230120/0001-fix-mt-cflags.patch new file mode 100644 index 00000000..24a9215d --- /dev/null +++ b/packages/newlib/4.3.0.20230120/0001-fix-mt-cflags.patch @@ -0,0 +1,13 @@ +--- + config/mt-d30v | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/config/mt-d30v ++++ b/config/mt-d30v +@@ -1,4 +1,4 @@ + # Build libraries optimizing for space, not speed. + # Turn off warnings about symbols named the same as registers +- CFLAGS_FOR_TARGET = -g -Os -Wa,-C +- CXXFLAGS_FOR_TARGET = -g -Os -Wa,-C ++ CFLAGS_FOR_TARGET += -g -Os -Wa,-C ++ CXXFLAGS_FOR_TARGET += -g -Os -Wa,-C diff --git a/packages/newlib/4.3.0.20230120/0002-libc-arm-Implement-setjmp-GCC-backwards-compatibilit.patch b/packages/newlib/4.3.0.20230120/0002-libc-arm-Implement-setjmp-GCC-backwards-compatibilit.patch new file mode 100644 index 00000000..b3276cc8 --- /dev/null +++ b/packages/newlib/4.3.0.20230120/0002-libc-arm-Implement-setjmp-GCC-backwards-compatibilit.patch @@ -0,0 +1,55 @@ +From c6e601de84ea9f2be2b026c609cc3c1fe82a3103 Mon Sep 17 00:00:00 2001 +From: "Victor L. Do Nascimento" <victor.donascimento@arm.com> +Date: Fri, 3 Feb 2023 11:15:26 +0000 +Subject: [PATCH] libc: arm: Implement setjmp GCC backwards compatibility. + +When compiling Newlib for arm targets with GCC 12.1 onward, the +passing of architecture extension information to the assembler is +automatic, making the use of .fpu and .arch_extension directives +in assembly files redundant. + +With older versions of GCC, however, these directives must be +hard-coded into the `arm/setjmp.S' file to allow the assembly of +instructions concerning the storage and subsequent reloading of the +floating point registers to/from the jump buffer, respectively. + +This patch conditionally adds the `.fpu vfpxd' and `.arch_extension +mve' directives based on compile-time preprocessor macros concerning +GCC version and target architectural features, such that both the +assembly and linking of setjmp.S succeeds for older versions of +Newlib. +--- + newlib/libc/machine/arm/setjmp.S | 22 ++++++++++++++++++++++ + 1 file changed, 22 insertions(+) + +--- a/newlib/libc/machine/arm/setjmp.S ++++ b/newlib/libc/machine/arm/setjmp.S +@@ -64,6 +64,28 @@ + + .syntax unified + ++/* GCC 12.1 and later will tell the assembler exactly which floating ++ point (or MVE) unit is required and we don't want to override ++ that. Conversely, older versions of the compiler don't pass this ++ information so we need to enable the VFP version that is most ++ appropriate. The choice here should support all suitable VFP ++ versions that the older toolchains can handle. */ ++#if __GNUC__ && __GNUC__ < 12 ++/* Ensure that FPU instructions are correctly compiled and, likewise, ++ the appropriate build attributes are added to the resulting object ++ file. Check whether the MVE extension is present and whether ++ we have support for hardware floating point-operations. VFPxd ++ covers all the cases we need in this file for hardware ++ floating-point and should be compatible with all required FPUs ++ that we need to support. */ ++# if __ARM_FP ++ .fpu vfpxd ++# endif ++# if __ARM_FEATURE_MVE ++ .arch_extension mve ++# endif ++#endif ++ + #if __ARM_ARCH_ISA_THUMB == 1 && !__ARM_ARCH_ISA_ARM + /* ARMv6-M-like has to be implemented in Thumb mode. */ + diff --git a/packages/newlib/4.3.0.20230120/chksum b/packages/newlib/4.3.0.20230120/chksum new file mode 100644 index 00000000..a2fa7528 --- /dev/null +++ b/packages/newlib/4.3.0.20230120/chksum @@ -0,0 +1,4 @@ +md5 newlib-4.3.0.20230120.tar.gz 6adcadd40af12376220b73f2574b4b6f +sha1 newlib-4.3.0.20230120.tar.gz 1fe9b5ba44a4dd0f1fc49831964053458a834ef6 +sha256 newlib-4.3.0.20230120.tar.gz 83a62a99af59e38eb9b0c58ed092ee24d700fff43a22c03e433955113ef35150 +sha512 newlib-4.3.0.20230120.tar.gz 4a06309d36c2255fef8fc8f2d133cafa850f1ed2eddfb27b5d45f5d16af69e0fca829a0b4c9b34af4ed3a28c6fcc929761e0ee823a4229f35c2853d432b5e7ef diff --git a/packages/newlib/4.3.0.20230120/version.desc b/packages/newlib/4.3.0.20230120/version.desc new file mode 100644 index 00000000..e69de29b