[PATCH v3] newlib: add dummy implementations of fe{get, set}prec for Aarch64 Cygwin

Radek Barton radek.barton@microsoft.com
Fri Jul 4 15:49:55 GMT 2025


Hello.

Sending a new version of the patch that combines both suggestions.

Radek

---
>From 87aebf36fca923569554b7d95adb4eb5d6c7d8c6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Radek=20Barto=C5=88?= <radek.barton@microsoft.com>
Date: Thu, 3 Jul 2025 12:02:03 +0200
Subject: [PATCH v3] newlib: add dummy implementations of fe{get,set}prec
 for Aarch64 Cygwin
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch introduces dummy implementation of fegetprec and fsetprec for Cygwin
build as those symbols are being exported by cygwin1.dll and AArch64 do not support
changing floating point precision at runtime.

Signed-off-by: Radek Bartoň <radek.barton@microsoft.com>
---
 newlib/Makefile.in                       | 40 ++++++++++++++++++++++++
 newlib/libc/machine/aarch64/sys/fenv.h   | 15 +++++++++
 newlib/libm/machine/aarch64/Makefile.inc |  2 ++
 newlib/libm/machine/aarch64/fegetprec.c  | 17 ++++++++++
 newlib/libm/machine/aarch64/fesetprec.c  | 22 +++++++++++++
 5 files changed, 96 insertions(+)
 create mode 100644 newlib/libm/machine/aarch64/fegetprec.c
 create mode 100644 newlib/libm/machine/aarch64/fesetprec.c

diff --git a/newlib/Makefile.in b/newlib/Makefile.in
index 5a1987bdd..f1b2252ad 100644
--- a/newlib/Makefile.in
+++ b/newlib/Makefile.in
@@ -3251,11 +3251,13 @@ am__objects_159 = libm/fenv/libm_a-feclearexcept.$(OBJEXT) \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-feclearexcept.$(OBJEXT) \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-fegetenv.$(OBJEXT) \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-fegetexceptflag.$(OBJEXT) \
+@HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-fegetprec.$(OBJEXT) \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-fegetround.$(OBJEXT) \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-feholdexcept.$(OBJEXT) \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-feraiseexcept.$(OBJEXT) \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-fesetenv.$(OBJEXT) \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-fesetexceptflag.$(OBJEXT) \
+@HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-fesetprec.$(OBJEXT) \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-fesetround.$(OBJEXT) \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-fetestexcept.$(OBJEXT) \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/libm_a-feupdateenv.$(OBJEXT)
@@ -5086,11 +5088,13 @@ libm_test_test_LDADD = $(CRT0) libm.a libc.a
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/feclearexcept.c \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/fegetenv.c \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/fegetexceptflag.c \
+@HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/fegetprec.c \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/fegetround.c \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/feholdexcept.c \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/feraiseexcept.c \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/fesetenv.c \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/fesetexceptflag.c \
+@HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/fesetprec.c \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/fesetround.c \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/fetestexcept.c \
 @HAVE_LIBM_MACHINE_AARCH64_TRUE@	libm/machine/aarch64/feupdateenv.c
@@ -11081,6 +11085,9 @@ libm/machine/aarch64/libm_a-fegetenv.$(OBJEXT):  \
 libm/machine/aarch64/libm_a-fegetexceptflag.$(OBJEXT):  \
 	libm/machine/aarch64/$(am__dirstamp) \
 	libm/machine/aarch64/$(DEPDIR)/$(am__dirstamp)
+libm/machine/aarch64/libm_a-fegetprec.$(OBJEXT):  \
+	libm/machine/aarch64/$(am__dirstamp) \
+	libm/machine/aarch64/$(DEPDIR)/$(am__dirstamp)
 libm/machine/aarch64/libm_a-fegetround.$(OBJEXT):  \
 	libm/machine/aarch64/$(am__dirstamp) \
 	libm/machine/aarch64/$(DEPDIR)/$(am__dirstamp)
@@ -11096,6 +11103,9 @@ libm/machine/aarch64/libm_a-fesetenv.$(OBJEXT):  \
 libm/machine/aarch64/libm_a-fesetexceptflag.$(OBJEXT):  \
 	libm/machine/aarch64/$(am__dirstamp) \
 	libm/machine/aarch64/$(DEPDIR)/$(am__dirstamp)
+libm/machine/aarch64/libm_a-fesetprec.$(OBJEXT):  \
+	libm/machine/aarch64/$(am__dirstamp) \
+	libm/machine/aarch64/$(DEPDIR)/$(am__dirstamp)
 libm/machine/aarch64/libm_a-fesetround.$(OBJEXT):  \
 	libm/machine/aarch64/$(am__dirstamp) \
 	libm/machine/aarch64/$(DEPDIR)/$(am__dirstamp)
@@ -14544,12 +14554,14 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-feclearexcept.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fegetenv.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fegetexceptflag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fegetround.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-feholdexcept.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fenv.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-feraiseexcept.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fesetenv.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fesetexceptflag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fesetround.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-fetestexcept.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@libm/machine/aarch64/$(DEPDIR)/libm_a-feupdateenv.Po@am__quote@
@@ -44362,6 +44374,20 @@ libm/machine/aarch64/libm_a-fegetexceptflag.obj: libm/machine/aarch64/fegetexcep
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -c -o libm/machine/aarch64/libm_a-fegetexceptflag.obj `if test -f 'libm/machine/aarch64/fegetexceptflag.c'; then $(CYGPATH_W) 'libm/machine/aarch64/fegetexceptflag.c'; else $(CYGPATH_W) '$(srcdir)/libm/machine/aarch64/fegetexceptflag.c'; fi`
 
+libm/machine/aarch64/libm_a-fegetprec.o: libm/machine/aarch64/fegetprec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -MT libm/machine/aarch64/libm_a-fegetprec.o -MD -MP -MF libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Tpo -c -o libm/machine/aarch64/libm_a-fegetprec.o `test -f 'libm/machine/aarch64/fegetprec.c' || echo '$(srcdir)/'`libm/machine/aarch64/fegetprec.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Tpo libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libm/machine/aarch64/fegetprec.c' object='libm/machine/aarch64/libm_a-fegetprec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -c -o libm/machine/aarch64/libm_a-fegetprec.o `test -f 'libm/machine/aarch64/fegetprec.c' || echo '$(srcdir)/'`libm/machine/aarch64/fegetprec.c
+
+libm/machine/aarch64/libm_a-fegetprec.obj: libm/machine/aarch64/fegetprec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -MT libm/machine/aarch64/libm_a-fegetprec.obj -MD -MP -MF libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Tpo -c -o libm/machine/aarch64/libm_a-fegetprec.obj `if test -f 'libm/machine/aarch64/fegetprec.c'; then $(CYGPATH_W) 'libm/machine/aarch64/fegetprec.c'; else $(CYGPATH_W) '$(srcdir)/libm/machine/aarch64/fegetprec.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Tpo libm/machine/aarch64/$(DEPDIR)/libm_a-fegetprec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libm/machine/aarch64/fegetprec.c' object='libm/machine/aarch64/libm_a-fegetprec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -c -o libm/machine/aarch64/libm_a-fegetprec.obj `if test -f 'libm/machine/aarch64/fegetprec.c'; then $(CYGPATH_W) 'libm/machine/aarch64/fegetprec.c'; else $(CYGPATH_W) '$(srcdir)/libm/machine/aarch64/fegetprec.c'; fi`
+
 libm/machine/aarch64/libm_a-fegetround.o: libm/machine/aarch64/fegetround.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -MT libm/machine/aarch64/libm_a-fegetround.o -MD -MP -MF libm/machine/aarch64/$(DEPDIR)/libm_a-fegetround.Tpo -c -o libm/machine/aarch64/libm_a-fegetround.o `test -f 'libm/machine/aarch64/fegetround.c' || echo '$(srcdir)/'`libm/machine/aarch64/fegetround.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libm/machine/aarch64/$(DEPDIR)/libm_a-fegetround.Tpo libm/machine/aarch64/$(DEPDIR)/libm_a-fegetround.Po
@@ -44432,6 +44458,20 @@ libm/machine/aarch64/libm_a-fesetexceptflag.obj: libm/machine/aarch64/fesetexcep
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -c -o libm/machine/aarch64/libm_a-fesetexceptflag.obj `if test -f 'libm/machine/aarch64/fesetexceptflag.c'; then $(CYGPATH_W) 'libm/machine/aarch64/fesetexceptflag.c'; else $(CYGPATH_W) '$(srcdir)/libm/machine/aarch64/fesetexceptflag.c'; fi`
 
+libm/machine/aarch64/libm_a-fesetprec.o: libm/machine/aarch64/fesetprec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -MT libm/machine/aarch64/libm_a-fesetprec.o -MD -MP -MF libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Tpo -c -o libm/machine/aarch64/libm_a-fesetprec.o `test -f 'libm/machine/aarch64/fesetprec.c' || echo '$(srcdir)/'`libm/machine/aarch64/fesetprec.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Tpo libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libm/machine/aarch64/fesetprec.c' object='libm/machine/aarch64/libm_a-fesetprec.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -c -o libm/machine/aarch64/libm_a-fesetprec.o `test -f 'libm/machine/aarch64/fesetprec.c' || echo '$(srcdir)/'`libm/machine/aarch64/fesetprec.c
+
+libm/machine/aarch64/libm_a-fesetprec.obj: libm/machine/aarch64/fesetprec.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -MT libm/machine/aarch64/libm_a-fesetprec.obj -MD -MP -MF libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Tpo -c -o libm/machine/aarch64/libm_a-fesetprec.obj `if test -f 'libm/machine/aarch64/fesetprec.c'; then $(CYGPATH_W) 'libm/machine/aarch64/fesetprec.c'; else $(CYGPATH_W) '$(srcdir)/libm/machine/aarch64/fesetprec.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Tpo libm/machine/aarch64/$(DEPDIR)/libm_a-fesetprec.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='libm/machine/aarch64/fesetprec.c' object='libm/machine/aarch64/libm_a-fesetprec.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -c -o libm/machine/aarch64/libm_a-fesetprec.obj `if test -f 'libm/machine/aarch64/fesetprec.c'; then $(CYGPATH_W) 'libm/machine/aarch64/fesetprec.c'; else $(CYGPATH_W) '$(srcdir)/libm/machine/aarch64/fesetprec.c'; fi`
+
 libm/machine/aarch64/libm_a-fesetround.o: libm/machine/aarch64/fesetround.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libm_a_CPPFLAGS) $(CPPFLAGS) $(libm_a_CFLAGS) $(CFLAGS) -MT libm/machine/aarch64/libm_a-fesetround.o -MD -MP -MF libm/machine/aarch64/$(DEPDIR)/libm_a-fesetround.Tpo -c -o libm/machine/aarch64/libm_a-fesetround.o `test -f 'libm/machine/aarch64/fesetround.c' || echo '$(srcdir)/'`libm/machine/aarch64/fesetround.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) libm/machine/aarch64/$(DEPDIR)/libm_a-fesetround.Tpo libm/machine/aarch64/$(DEPDIR)/libm_a-fesetround.Po
diff --git a/newlib/libc/machine/aarch64/sys/fenv.h b/newlib/libc/machine/aarch64/sys/fenv.h
index 1f97791a7..369cc4850 100644
--- a/newlib/libc/machine/aarch64/sys/fenv.h
+++ b/newlib/libc/machine/aarch64/sys/fenv.h
@@ -123,6 +123,21 @@ fegetexcept(void)
 
 #endif /* __BSD_VISIBLE */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __CYGWIN__
+
+#if __MISC_VISIBLE
+int fegetprec (void);
+int fesetprec (int __prec);
+#endif
+
+#endif /* __CYGWIN__ */
 
+#ifdef __cplusplus
+}
+#endif
 
 #endif	/* !_FENV_H_ */
diff --git a/newlib/libm/machine/aarch64/Makefile.inc b/newlib/libm/machine/aarch64/Makefile.inc
index 478aaeed8..0064363e7 100644
--- a/newlib/libm/machine/aarch64/Makefile.inc
+++ b/newlib/libm/machine/aarch64/Makefile.inc
@@ -33,11 +33,13 @@
 	%D%/feclearexcept.c \
 	%D%/fegetenv.c \
 	%D%/fegetexceptflag.c \
+	%D%/fegetprec.c \
 	%D%/fegetround.c \
 	%D%/feholdexcept.c \
 	%D%/feraiseexcept.c \
 	%D%/fesetenv.c \
 	%D%/fesetexceptflag.c \
+	%D%/fesetprec.c \
 	%D%/fesetround.c \
 	%D%/fetestexcept.c \
 	%D%/feupdateenv.c
diff --git a/newlib/libm/machine/aarch64/fegetprec.c b/newlib/libm/machine/aarch64/fegetprec.c
new file mode 100644
index 000000000..82e08fb96
--- /dev/null
+++ b/newlib/libm/machine/aarch64/fegetprec.c
@@ -0,0 +1,17 @@
+#if defined(__CYGWIN__)
+
+/* Returns the currently selected precision, represented by one of the
+   values of the defined precision macros. */
+int
+fegetprec (void)
+{
+  /* AArch64 doesn't have configurable precision.
+     Return a fixed value indicating double precision (most common). */
+  return -1;
+}
+
+#else
+
+#include "../../fenv/fenv_stub.c"
+
+#endif
diff --git a/newlib/libm/machine/aarch64/fesetprec.c b/newlib/libm/machine/aarch64/fesetprec.c
new file mode 100644
index 000000000..dd507001c
--- /dev/null
+++ b/newlib/libm/machine/aarch64/fesetprec.c
@@ -0,0 +1,22 @@
+#if defined(__CYGWIN__)
+
+/* http://www.open-std.org/jtc1/sc22//WG14/www/docs/n752.htm:
+
+   The fesetprec function establishes the precision represented by its
+   argument prec.  If the argument does not match a precision macro, the
+   precision is not changed.
+
+   The fesetprec function returns a nonzero value if and only if the
+   argument matches a precision macro (that is, if and only if the requested
+   precision can be established). */
+int
+fesetprec (int prec)
+{
+  /* Aarch64 doesn't support changing precision at runtime. */
+  return 0; // return failure
+}
+#else
+
+#include "../../fenv/fenv_stub.c"
+
+#endif
-- 
2.49.0.vfs.0.4
-------------- next part --------------
A non-text attachment was scrubbed...
Name: v3-0001-newlib-add-dummy-implementations-of-fe-get-set-prec-for-Aarch64-Cygwin.patch
Type: application/octet-stream
Size: 15785 bytes
Desc: v3-0001-newlib-add-dummy-implementations-of-fe-get-set-prec-for-Aarch64-Cygwin.patch
URL: <https://sourceware.org/pipermail/newlib/attachments/20250704/924d5864/attachment-0001.obj>


More information about the Newlib mailing list