newlib: add 4.3.0.20230120

Add the 4.3.0.20230120 and update the required patches. As of this
release the newlib-global-atexit is mandatory so set this to default y.
Included is an upstream patch to support older GCC versions.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
This commit is contained in:
Chris Packham 2023-05-28 15:29:03 +12:00
parent 0160064f00
commit 227d99d7f3
7 changed files with 99 additions and 0 deletions

View File

@ -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

View File

@ -0,0 +1 @@
../newlib/4.3.0.20230120

View File

@ -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

View File

@ -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

View File

@ -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. */

4
packages/newlib/4.3.0.20230120/chksum vendored Normal file
View File

@ -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

View File